aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/ABI/testing/sysfs-kernel-slab479
-rw-r--r--Documentation/DocBook/kgdb.tmpl2
-rw-r--r--Documentation/filesystems/tmpfs.txt2
-rw-r--r--Documentation/hwmon/sysfs-interface6
-rw-r--r--Documentation/input/multi-touch-protocol.txt103
-rw-r--r--Documentation/kernel-parameters.txt4
-rw-r--r--Documentation/networking/ip-sysctl.txt15
-rw-r--r--Documentation/sound/alsa/HD-Audio-Models.txt1
-rw-r--r--Documentation/sound/alsa/Procfile.txt5
-rw-r--r--Documentation/sysctl/vm.txt28
-rw-r--r--Documentation/sysfs-rules.txt2
-rw-r--r--MAINTAINERS49
-rw-r--r--Makefile6
-rw-r--r--arch/alpha/include/asm/percpu.h26
-rw-r--r--arch/arm/Kconfig6
-rw-r--r--arch/arm/common/gic.c4
-rw-r--r--arch/arm/include/asm/assembler.h13
-rw-r--r--arch/arm/include/asm/atomic.h61
-rw-r--r--arch/arm/include/asm/cache.h16
-rw-r--r--arch/arm/include/asm/flat.h3
-rw-r--r--arch/arm/include/asm/hardware/gic.h2
-rw-r--r--arch/arm/include/asm/page.h7
-rw-r--r--arch/arm/include/asm/smp.h12
-rw-r--r--arch/arm/include/asm/system.h176
-rw-r--r--arch/arm/kernel/elf.c9
-rw-r--r--arch/arm/kernel/entry-armv.S5
-rw-r--r--arch/arm/kernel/smp.c46
-rw-r--r--arch/arm/lib/bitops.h2
-rw-r--r--arch/arm/mach-davinci/include/mach/asp.h25
-rw-r--r--arch/arm/mach-ep93xx/clock.c69
-rw-r--r--arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h5
-rw-r--r--arch/arm/mach-gemini/include/mach/hardware.h3
-rw-r--r--arch/arm/mach-integrator/core.c2
-rw-r--r--arch/arm/mach-ixp4xx/ixp4xx_npe.c2
-rw-r--r--arch/arm/mach-kirkwood/common.c8
-rw-r--r--arch/arm/mach-kirkwood/ts219-setup.c6
-rw-r--r--arch/arm/mach-l7200/include/mach/sys-clock.h2
-rw-r--r--arch/arm/mach-loki/common.c6
-rw-r--r--arch/arm/mach-mmp/include/mach/mfp-pxa168.h5
-rw-r--r--arch/arm/mach-mmp/include/mach/mfp-pxa910.h5
-rw-r--r--arch/arm/mach-mmp/include/mach/mfp.h9
-rw-r--r--arch/arm/mach-mmp/time.c2
-rw-r--r--arch/arm/mach-mv78xx0/common.c16
-rw-r--r--arch/arm/mach-mx2/clock_imx21.c2
-rw-r--r--arch/arm/mach-mx2/clock_imx27.c2
-rw-r--r--arch/arm/mach-mx3/clock-imx35.c2
-rw-r--r--arch/arm/mach-mx3/clock.c2
-rw-r--r--arch/arm/mach-omap2/clock24xx.c10
-rw-r--r--arch/arm/mach-omap2/clock34xx.c12
-rw-r--r--arch/arm/mach-omap2/clock34xx.h12
-rw-r--r--arch/arm/mach-omap2/devices.c6
-rw-r--r--arch/arm/mach-omap2/prm-regbits-34xx.h2
-rw-r--r--arch/arm/mach-omap2/usb-tusb6010.c2
-rw-r--r--arch/arm/mach-orion5x/common.c5
-rw-r--r--arch/arm/mach-pxa/devices.c5
-rw-r--r--arch/arm/mach-pxa/ezx.c36
-rw-r--r--arch/arm/mach-pxa/imote2.c2
-rw-r--r--arch/arm/mach-pxa/include/mach/reset.h5
-rw-r--r--arch/arm/mach-pxa/mfp-pxa2xx.c6
-rw-r--r--arch/arm/mach-pxa/palmld.c2
-rw-r--r--arch/arm/mach-pxa/palmt5.c1
-rw-r--r--arch/arm/mach-pxa/palmtx.c1
-rw-r--r--arch/arm/mach-pxa/reset.c4
-rw-r--r--arch/arm/mach-pxa/spitz.c8
-rw-r--r--arch/arm/mach-pxa/tosa.c2
-rw-r--r--arch/arm/mach-pxa/viper.c1
-rw-r--r--arch/arm/mach-realview/core.c8
-rw-r--r--arch/arm/mach-realview/include/mach/smp.h11
-rw-r--r--arch/arm/mach-realview/localtimer.c6
-rw-r--r--arch/arm/mach-realview/platsmp.c15
-rw-r--r--arch/arm/mach-s3c2410/mach-bast.c3
-rw-r--r--arch/arm/mach-versatile/core.c2
-rw-r--r--arch/arm/mm/proc-v7.S36
-rw-r--r--arch/arm/nwfpe/fpa11.h4
-rw-r--r--arch/arm/nwfpe/fpa11_cprt.c4
-rw-r--r--arch/arm/nwfpe/softfloat.h2
-rw-r--r--arch/arm/plat-omap/fb.c5
-rw-r--r--arch/arm/plat-omap/gpio.c2
-rw-r--r--arch/arm/plat-s3c/clock.c2
-rw-r--r--arch/arm/plat-s3c24xx/dma.c2
-rw-r--r--arch/arm/plat-s3c64xx/gpiolib.c2
-rw-r--r--arch/arm/plat-s3c64xx/include/plat/gpio-bank-h.h20
-rw-r--r--arch/arm/tools/mach-types131
-rw-r--r--arch/blackfin/include/asm/.gitignore1
-rw-r--r--arch/blackfin/include/asm/flat.h1
-rw-r--r--arch/blackfin/include/asm/unistd.h4
-rw-r--r--arch/blackfin/kernel/.gitignore1
-rw-r--r--arch/blackfin/lib/strncmp.c3
-rw-r--r--arch/blackfin/mach-common/entry.S2
-rw-r--r--arch/cris/Makefile14
-rw-r--r--arch/cris/arch-v10/boot/Makefile20
-rw-r--r--arch/cris/arch-v10/boot/compressed/README25
-rw-r--r--arch/cris/arch-v10/boot/compressed/misc.c246
-rw-r--r--arch/cris/arch-v10/kernel/entry.S14
-rw-r--r--arch/cris/arch-v32/boot/compressed/Makefile26
-rw-r--r--arch/cris/arch-v32/boot/rescue/Makefile26
-rw-r--r--arch/cris/arch-v32/drivers/mach-a3/gpio.c4
-rw-r--r--arch/cris/arch-v32/kernel/Makefile2
-rw-r--r--arch/cris/arch-v32/kernel/entry.S8
-rw-r--r--arch/cris/boot/.gitignore (renamed from arch/cris/arch-v10/boot/.gitignore)0
-rw-r--r--arch/cris/boot/Makefile (renamed from arch/cris/arch-v32/boot/Makefile)8
-rw-r--r--arch/cris/boot/compressed/Makefile (renamed from arch/cris/arch-v10/boot/compressed/Makefile)19
-rw-r--r--arch/cris/boot/compressed/README (renamed from arch/cris/arch-v32/boot/compressed/README)0
-rw-r--r--arch/cris/boot/compressed/decompress_v10.lds (renamed from arch/cris/arch-v10/boot/compressed/decompress.lds)0
-rw-r--r--arch/cris/boot/compressed/decompress_v32.lds (renamed from arch/cris/arch-v32/boot/compressed/decompress.lds)0
-rw-r--r--arch/cris/boot/compressed/head_v10.S (renamed from arch/cris/arch-v10/boot/compressed/head.S)4
-rw-r--r--arch/cris/boot/compressed/head_v32.S (renamed from arch/cris/arch-v32/boot/compressed/head.S)10
-rw-r--r--arch/cris/boot/compressed/misc.c (renamed from arch/cris/arch-v32/boot/compressed/misc.c)193
-rw-r--r--arch/cris/boot/rescue/Makefile (renamed from arch/cris/arch-v10/boot/rescue/Makefile)22
-rw-r--r--arch/cris/boot/rescue/head_v10.S (renamed from arch/cris/arch-v10/boot/rescue/head.S)2
-rw-r--r--arch/cris/boot/rescue/head_v32.S (renamed from arch/cris/arch-v32/boot/rescue/head.S)0
-rw-r--r--arch/cris/boot/rescue/kimagerescue.S (renamed from arch/cris/arch-v10/boot/rescue/kimagerescue.S)0
-rw-r--r--arch/cris/boot/rescue/rescue_v10.lds (renamed from arch/cris/arch-v10/boot/rescue/rescue.lds)0
-rw-r--r--arch/cris/boot/rescue/rescue_v32.lds (renamed from arch/cris/arch-v32/boot/rescue/rescue.lds)0
-rw-r--r--arch/cris/boot/rescue/testrescue.S (renamed from arch/cris/arch-v10/boot/rescue/testrescue.S)0
-rw-r--r--arch/cris/boot/tools/build.c (renamed from arch/cris/arch-v10/boot/tools/build.c)0
-rw-r--r--arch/cris/include/asm/unistd.h12
-rw-r--r--arch/h8300/include/asm/flat.h1
-rw-r--r--arch/m32r/include/asm/flat.h1
-rw-r--r--arch/m68k/include/asm/flat.h1
-rw-r--r--arch/microblaze/configs/nommu_defconfig50
-rw-r--r--arch/microblaze/kernel/intc.c4
-rw-r--r--arch/mips/Kconfig25
-rw-r--r--arch/mips/Makefile11
-rw-r--r--arch/mips/alchemy/common/time.c2
-rw-r--r--arch/mips/cavium-octeon/csrc-octeon.c2
-rw-r--r--arch/mips/include/asm/bitops.h4
-rw-r--r--arch/mips/include/asm/checksum.h4
-rw-r--r--arch/mips/include/asm/compat.h1
-rw-r--r--arch/mips/include/asm/cpu-features.h9
-rw-r--r--arch/mips/include/asm/cpu-info.h4
-rw-r--r--arch/mips/include/asm/delay.h92
-rw-r--r--arch/mips/include/asm/div64.h142
-rw-r--r--arch/mips/include/asm/dma-mapping.h9
-rw-r--r--arch/mips/include/asm/fixmap.h3
-rw-r--r--arch/mips/include/asm/hazards.h5
-rw-r--r--arch/mips/include/asm/highmem.h6
-rw-r--r--arch/mips/include/asm/ioctl.h4
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1000.h6
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1xxx_ide.h17
-rw-r--r--arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h59
-rw-r--r--arch/mips/include/asm/mipsregs.h38
-rw-r--r--arch/mips/include/asm/page.h3
-rw-r--r--arch/mips/include/asm/pgtable-64.h6
-rw-r--r--arch/mips/include/asm/sn/addrs.h4
-rw-r--r--arch/mips/include/asm/sn/nmi.h4
-rw-r--r--arch/mips/include/asm/thread_info.h3
-rw-r--r--arch/mips/include/asm/time.h6
-rw-r--r--arch/mips/include/asm/uaccess.h68
-rw-r--r--arch/mips/kernel/cevt-smtc.c2
-rw-r--r--arch/mips/kernel/proc.c2
-rw-r--r--arch/mips/kernel/scall64-n32.S4
-rw-r--r--arch/mips/kernel/scall64-o32.S4
-rw-r--r--arch/mips/kernel/unaligned.c6
-rw-r--r--arch/mips/lib/Makefile4
-rw-r--r--arch/mips/lib/delay.c56
-rw-r--r--arch/mips/lib/dump_tlb.c9
-rw-r--r--arch/mips/mm/c-r4k.c2
-rw-r--r--arch/mips/mm/dma-default.c19
-rw-r--r--arch/mips/mm/highmem.c25
-rw-r--r--arch/mips/mm/init.c26
-rw-r--r--arch/mips/mm/sc-rm7k.c4
-rw-r--r--arch/mips/mm/tlb-r3k.c6
-rw-r--r--arch/mips/mm/tlb-r4k.c6
-rw-r--r--arch/mips/mm/tlb-r8k.c3
-rw-r--r--arch/mips/pmc-sierra/Kconfig12
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_prom.c60
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_setup.c8
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_time.c7
-rw-r--r--arch/mips/sgi-ip22/ip22-reset.c2
-rw-r--r--arch/mips/sgi-ip32/ip32-berr.c2
-rw-r--r--arch/mips/sgi-ip32/ip32-irq.c4
-rw-r--r--arch/mips/sgi-ip32/ip32-reset.c9
-rw-r--r--arch/mips/sibyte/bcm1480/irq.c7
-rw-r--r--arch/mips/sibyte/cfe/setup.c8
-rw-r--r--arch/mips/sibyte/sb1250/irq.c7
-rw-r--r--arch/mips/txx9/generic/setup_tx4927.c2
-rw-r--r--arch/mips/txx9/generic/setup_tx4938.c2
-rw-r--r--arch/mips/txx9/generic/setup_tx4939.c2
-rw-r--r--arch/mips/txx9/rbtx4939/setup.c2
-rw-r--r--arch/powerpc/Kconfig12
-rw-r--r--arch/powerpc/boot/Makefile2
-rw-r--r--arch/powerpc/boot/mktree.c10
-rw-r--r--arch/powerpc/configs/83xx/asp8347_defconfig104
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig114
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig114
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig107
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig113
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig108
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig108
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig103
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig108
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig96
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig104
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig111
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig96
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig86
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig82
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig89
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig88
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig84
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig83
-rw-r--r--arch/powerpc/configs/85xx/socrates_defconfig385
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig105
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig100
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig101
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig64
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig101
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig101
-rw-r--r--arch/powerpc/configs/86xx/gef_ppc9a_defconfig92
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc310_defconfig92
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc610_defconfig122
-rw-r--r--arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig100
-rw-r--r--arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig211
-rw-r--r--arch/powerpc/configs/86xx/sbc8641d_defconfig114
-rw-r--r--arch/powerpc/configs/adder875_defconfig65
-rw-r--r--arch/powerpc/configs/c2k_defconfig128
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig74
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig63
-rw-r--r--arch/powerpc/configs/linkstation_defconfig96
-rw-r--r--arch/powerpc/configs/mgcoge_defconfig74
-rw-r--r--arch/powerpc/configs/mgsuvd_defconfig72
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig91
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig77
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig115
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig77
-rw-r--r--arch/powerpc/configs/mpc86xx_defconfig211
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig63
-rw-r--r--arch/powerpc/configs/pmac32_defconfig278
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig90
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig120
-rw-r--r--arch/powerpc/configs/ps3_defconfig105
-rw-r--r--arch/powerpc/configs/storcenter_defconfig71
-rw-r--r--arch/powerpc/include/asm/dma-mapping.h6
-rw-r--r--arch/powerpc/include/asm/fixmap.h4
-rw-r--r--arch/powerpc/include/asm/iseries/iommu.h4
-rw-r--r--arch/powerpc/include/asm/pgtable-ppc32.h26
-rw-r--r--arch/powerpc/include/asm/system.h2
-rw-r--r--arch/powerpc/kernel/cputable.c2
-rw-r--r--arch/powerpc/kernel/dma.c2
-rw-r--r--arch/powerpc/kernel/ftrace.c22
-rw-r--r--arch/powerpc/kernel/machine_kexec.c4
-rw-r--r--arch/powerpc/kernel/pci-common.c21
-rw-r--r--arch/powerpc/kernel/pci_64.c15
-rw-r--r--arch/powerpc/kernel/prom.c8
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S1
-rw-r--r--arch/powerpc/lib/Makefile1
-rw-r--r--arch/powerpc/lib/dma-noncoherent.c237
-rw-r--r--arch/powerpc/mm/Makefile1
-rw-r--r--arch/powerpc/mm/dma-noncoherent.c400
-rw-r--r--arch/powerpc/mm/init_32.c8
-rw-r--r--arch/powerpc/mm/mem.c19
-rw-r--r--arch/powerpc/mm/mmu_context_nohash.c6
-rw-r--r--arch/powerpc/mm/pgtable.c3
-rw-r--r--arch/powerpc/mm/pgtable_32.c2
-rw-r--r--arch/powerpc/oprofile/op_model_power4.c9
-rw-r--r--arch/powerpc/platforms/40x/Kconfig1
-rw-r--r--arch/powerpc/platforms/44x/Kconfig1
-rw-r--r--arch/powerpc/platforms/cell/ras.c17
-rw-r--r--arch/powerpc/platforms/iseries/Kconfig1
-rw-r--r--arch/powerpc/platforms/iseries/iommu.c6
-rw-r--r--arch/powerpc/platforms/iseries/pci.c1
-rw-r--r--arch/powerpc/platforms/maple/pci.c14
-rw-r--r--arch/powerpc/sysdev/fsl_soc.c46
-rw-r--r--arch/powerpc/sysdev/mpic.c16
-rw-r--r--arch/powerpc/sysdev/xilinx_intc.c117
-rw-r--r--arch/sh/boards/board-ap325rxa.c3
-rw-r--r--arch/sh/include/asm/flat.h1
-rw-r--r--arch/sparc/include/asm/elf_64.h5
-rw-r--r--arch/sparc/lib/csum_copy_from_user.S2
-rw-r--r--arch/sparc/lib/csum_copy_to_user.S2
-rw-r--r--arch/x86/Kconfig13
-rw-r--r--arch/x86/boot/compressed/relocs.c7
-rw-r--r--arch/x86/boot/memory.c29
-rw-r--r--arch/x86/include/asm/paravirt.h2
-rw-r--r--arch/x86/include/asm/percpu.h10
-rw-r--r--arch/x86/include/asm/ptrace.h7
-rw-r--r--arch/x86/include/asm/spinlock.h4
-rw-r--r--arch/x86/kernel/Makefile3
-rw-r--r--arch/x86/kernel/apic/es7000_32.c8
-rw-r--r--arch/x86/kernel/cpu/common.c7
-rw-r--r--arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c6
-rw-r--r--arch/x86/kernel/cpu/cpufreq/p4-clockmod.c1
-rw-r--r--arch/x86/kernel/cpu/cpufreq/powernow-k7.c4
-rw-r--r--arch/x86/kernel/cpu/cpufreq/powernow-k8.c57
-rw-r--r--arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c2
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_64.c2
-rw-r--r--arch/x86/kernel/cpu/mtrr/generic.c6
-rw-r--r--arch/x86/kernel/ftrace.c2
-rw-r--r--arch/x86/kernel/kgdb.c3
-rw-r--r--arch/x86/kernel/paravirt.c2
-rw-r--r--arch/x86/kernel/reboot.c8
-rw-r--r--arch/x86/kernel/setup_percpu.c4
-rw-r--r--arch/x86/kernel/tlb_uv.c2
-rw-r--r--arch/x86/kvm/mmu.c3
-rw-r--r--arch/x86/kvm/svm.c8
-rw-r--r--arch/x86/kvm/x86.c12
-rw-r--r--arch/x86/lguest/Makefile1
-rw-r--r--arch/x86/lguest/boot.c17
-rw-r--r--arch/x86/mm/hugetlbpage.c6
-rw-r--r--arch/x86/mm/pageattr.c13
-rw-r--r--arch/x86/oprofile/backtrace.c2
-rw-r--r--arch/x86/pci/mmconfig-shared.c6
-rw-r--r--arch/x86/xen/Makefile5
-rw-r--r--arch/x86/xen/mmu.c1
-rw-r--r--arch/x86/xen/xen-ops.h19
-rw-r--r--arch/xtensa/Kconfig7
-rw-r--r--arch/xtensa/configs/s6105_defconfig3
-rw-r--r--arch/xtensa/include/asm/checksum.h6
-rw-r--r--arch/xtensa/include/asm/timex.h4
-rw-r--r--arch/xtensa/kernel/Makefile21
-rw-r--r--arch/xtensa/kernel/traps.c16
-rw-r--r--arch/xtensa/kernel/vmlinux.lds.S4
-rw-r--r--arch/xtensa/platforms/s6105/setup.c3
-rw-r--r--arch/xtensa/variants/s6000/Makefile1
-rw-r--r--arch/xtensa/variants/s6000/delay.c27
-rw-r--r--arch/xtensa/variants/s6000/gpio.c3
-rw-r--r--arch/xtensa/variants/s6000/include/variant/gpio.h6
-rw-r--r--block/blk-core.c4
-rw-r--r--block/bsg.c3
-rw-r--r--crypto/ahash.c7
-rw-r--r--crypto/api.c3
-rw-r--r--crypto/eseqiv.c3
-rw-r--r--drivers/acpi/acpica/Makefile27
-rw-r--r--drivers/acpi/acpica/aclocal.h7
-rw-r--r--drivers/acpi/bus.c2
-rw-r--r--drivers/acpi/pci_bind.c24
-rw-r--r--drivers/acpi/processor_core.c2
-rw-r--r--drivers/acpi/processor_idle.c50
-rw-r--r--drivers/acpi/processor_perflib.c12
-rw-r--r--drivers/acpi/processor_throttling.c25
-rw-r--r--drivers/acpi/video.c56
-rw-r--r--drivers/ata/ahci.c72
-rw-r--r--drivers/ata/ata_piix.c27
-rw-r--r--drivers/ata/libata-core.c4
-rw-r--r--drivers/ata/libata-eh.c34
-rw-r--r--drivers/ata/libata-scsi.c38
-rw-r--r--drivers/ata/pata_ali.c17
-rw-r--r--drivers/ata/pata_efar.c17
-rw-r--r--drivers/ata/pata_legacy.c2
-rw-r--r--drivers/ata/pata_netcell.c13
-rw-r--r--drivers/ata/pata_pdc202xx_old.c6
-rw-r--r--drivers/ata/sata_fsl.c15
-rw-r--r--drivers/ata/sata_mv.c69
-rw-r--r--drivers/ata/sata_sx4.c180
-rw-r--r--drivers/base/bus.c4
-rw-r--r--drivers/base/core.c5
-rw-r--r--drivers/base/driver.c4
-rw-r--r--drivers/base/platform.c22
-rw-r--r--drivers/base/power/main.c4
-rw-r--r--drivers/block/xen-blkfront.c10
-rw-r--r--drivers/cdrom/viocd.c2
-rw-r--r--drivers/char/ipmi/ipmi_msghandler.c13
-rw-r--r--drivers/char/mem.c3
-rw-r--r--drivers/char/mxser.c2
-rw-r--r--drivers/char/random.c2
-rw-r--r--drivers/char/sysrq.c4
-rw-r--r--drivers/char/tpm/tpm_bios.c3
-rw-r--r--drivers/cpufreq/cpufreq.c6
-rw-r--r--drivers/cpufreq/cpufreq_conservative.c5
-rw-r--r--drivers/cpufreq/cpufreq_ondemand.c5
-rw-r--r--drivers/crypto/ixp4xx_crypto.c33
-rw-r--r--drivers/crypto/padlock-aes.c2
-rw-r--r--drivers/dma/dmaengine.c17
-rw-r--r--drivers/dma/dmatest.c4
-rw-r--r--drivers/dma/fsldma.c71
-rw-r--r--drivers/dma/ioat_dma.c47
-rw-r--r--drivers/dma/ipu/ipu_idmac.c7
-rw-r--r--drivers/edac/Kconfig8
-rw-r--r--drivers/edac/Makefile2
-rw-r--r--drivers/edac/amd8111_edac.c4
-rw-r--r--drivers/edac/amd8131_edac.c2
-rw-r--r--drivers/gpu/drm/Kconfig9
-rw-r--r--drivers/gpu/drm/drm_bufs.c8
-rw-r--r--drivers/gpu/drm/drm_crtc.c7
-rw-r--r--drivers/gpu/drm/drm_crtc_helper.c109
-rw-r--r--drivers/gpu/drm/drm_drv.c2
-rw-r--r--drivers/gpu/drm/drm_edid.c5
-rw-r--r--drivers/gpu/drm/drm_irq.c8
-rw-r--r--drivers/gpu/drm/drm_sysfs.c7
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c25
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h14
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c77
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c14
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h21
-rw-r--r--drivers/gpu/drm/i915/i915_suspend.c24
-rw-r--r--drivers/gpu/drm/i915/intel_bios.c102
-rw-r--r--drivers/gpu/drm/i915/intel_bios.h17
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c157
-rw-r--r--drivers/gpu/drm/i915/intel_display.c57
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h4
-rw-r--r--drivers/gpu/drm/i915/intel_dvo.c1
-rw-r--r--drivers/gpu/drm/i915/intel_fb.c4
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c18
-rw-r--r--drivers/gpu/drm/i915/intel_i2c.c17
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c64
-rw-r--r--drivers/gpu/drm/i915/intel_modes.c6
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c138
-rw-r--r--drivers/gpu/drm/i915/intel_tv.c1
-rw-r--r--drivers/gpu/drm/radeon/radeon_cp.c4
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.h5
-rw-r--r--drivers/hid/hid-ids.h5
-rw-r--r--drivers/hid/usbhid/hid-core.c2
-rw-r--r--drivers/hid/usbhid/hid-quirks.c3
-rw-r--r--drivers/hwmon/lm78.c2
-rw-r--r--drivers/i2c/busses/Kconfig2
-rw-r--r--drivers/i2c/busses/i2c-cpm.c16
-rw-r--r--drivers/i2c/busses/i2c-mpc.c34
-rw-r--r--drivers/i2c/busses/i2c-pxa.c6
-rw-r--r--drivers/ide/icside.c2
-rw-r--r--drivers/ide/ide-io.c4
-rw-r--r--drivers/ide/ide-iops.c21
-rw-r--r--drivers/ide/ide-lib.c27
-rw-r--r--drivers/ide/ide-pci-generic.c11
-rw-r--r--drivers/ide/ide-probe.c9
-rw-r--r--drivers/ide/ide-tape.c6
-rw-r--r--drivers/ide/pdc202xx_old.c22
-rw-r--r--drivers/ide/piix.c1
-rw-r--r--drivers/ide/via82cxxx.c2
-rw-r--r--drivers/idle/i7300_idle.c6
-rw-r--r--drivers/infiniband/hw/cxgb3/cxio_hal.c1
-rw-r--r--drivers/infiniband/hw/ipath/ipath_fs.c2
-rw-r--r--drivers/infiniband/hw/mlx4/mlx4_ib.h1
-rw-r--r--drivers/infiniband/hw/mlx4/mr.c10
-rw-r--r--drivers/infiniband/hw/mlx4/qp.c2
-rw-r--r--drivers/input/ff-memless.c2
-rw-r--r--drivers/input/input.c1
-rw-r--r--drivers/input/joydev.c8
-rw-r--r--drivers/input/keyboard/atkbd.c16
-rw-r--r--drivers/input/serio/ambakmi.c2
-rw-r--r--drivers/input/serio/libps2.c2
-rw-r--r--drivers/input/touchscreen/tsc2007.c5
-rw-r--r--drivers/input/touchscreen/ucb1400_ts.c2
-rw-r--r--drivers/isdn/capi/capifs.c11
-rw-r--r--drivers/isdn/gigaset/isocdata.c2
-rw-r--r--drivers/lguest/x86/core.c19
-rw-r--r--drivers/md/bitmap.c13
-rw-r--r--drivers/md/md.c31
-rw-r--r--drivers/md/raid5.c34
-rw-r--r--drivers/media/radio/radio-sf16fmi.c2
-rw-r--r--drivers/media/radio/radio-sf16fmr2.c2
-rw-r--r--drivers/media/video/cafe_ccic.c1
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c9
-rw-r--r--drivers/media/video/ivtv/ivtv-gpio.c4
-rw-r--r--drivers/media/video/ivtv/ivtv-ioctl.c5
-rw-r--r--drivers/media/video/ivtv/ivtv-irq.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-queue.c3
-rw-r--r--drivers/media/video/ivtv/ivtv-yuv.c3
-rw-r--r--drivers/media/video/ivtv/ivtvfb.c3
-rw-r--r--drivers/media/video/uvc/uvc_driver.c9
-rw-r--r--drivers/media/video/uvc/uvc_video.c2
-rw-r--r--drivers/media/video/v4l2-ioctl.c45
-rw-r--r--drivers/media/video/zoran/zoran_driver.c28
-rw-r--r--drivers/mfd/pcf50633-core.c2
-rw-r--r--drivers/mfd/wm8350-core.c8
-rw-r--r--drivers/misc/enclosure.c6
-rw-r--r--drivers/mmc/host/mmci.c2
-rw-r--r--drivers/mmc/host/mvsdio.c35
-rw-r--r--drivers/mmc/host/mxcmmc.c47
-rw-r--r--drivers/mmc/host/omap.c2
-rw-r--r--drivers/mmc/host/omap_hsmmc.c2
-rw-r--r--drivers/mmc/host/sdhci-of.c9
-rw-r--r--drivers/mtd/devices/mtd_dataflash.c2
-rw-r--r--drivers/mtd/mtdsuper.c3
-rw-r--r--drivers/mtd/nand/davinci_nand.c7
-rw-r--r--drivers/mtd/nand/mxc_nand.c43
-rw-r--r--drivers/net/3c509.c4
-rw-r--r--drivers/net/Makefile2
-rw-r--r--drivers/net/arm/ixp4xx_eth.c31
-rw-r--r--drivers/net/atl1e/atl1e_main.c1
-rw-r--r--drivers/net/atlx/atl1.c6
-rw-r--r--drivers/net/atlx/atlx.h6
-rw-r--r--drivers/net/benet/be.h14
-rw-r--r--drivers/net/benet/be_main.c10
-rw-r--r--drivers/net/bfin_mac.c29
-rw-r--r--drivers/net/bnx2.c6
-rw-r--r--drivers/net/bonding/bond_3ad.c11
-rw-r--r--drivers/net/bonding/bond_main.c8
-rw-r--r--drivers/net/cxgb3/adapter.h4
-rw-r--r--drivers/net/cxgb3/cxgb3_main.c8
-rw-r--r--drivers/net/cxgb3/sge.c11
-rw-r--r--drivers/net/cxgb3/t3_hw.c5
-rw-r--r--drivers/net/e1000/e1000_main.c5
-rw-r--r--drivers/net/forcedeth.c15
-rw-r--r--drivers/net/gianfar.c11
-rw-r--r--drivers/net/gianfar.h2
-rw-r--r--drivers/net/igb/igb_main.c12
-rw-r--r--drivers/net/mac8390.c12
-rw-r--r--drivers/net/meth.c27
-rw-r--r--drivers/net/mlx4/en_cq.c4
-rw-r--r--drivers/net/mlx4/en_rx.c1
-rw-r--r--drivers/net/mlx4/en_tx.c8
-rw-r--r--drivers/net/mv643xx_eth.c41
-rw-r--r--drivers/net/r8169.c113
-rw-r--r--drivers/net/vxge/vxge-traffic.c2
-rw-r--r--drivers/net/wan/ixp4xx_hss.c4
-rw-r--r--drivers/net/wimax/i2400m/rx.c5
-rw-r--r--drivers/net/wimax/i2400m/usb.c35
-rw-r--r--drivers/net/wireless/Kconfig1
-rw-r--r--drivers/net/wireless/airo.c21
-rw-r--r--drivers/net/wireless/at76c50x-usb.c12
-rw-r--r--drivers/net/wireless/ath5k/base.c22
-rw-r--r--drivers/net/wireless/ath5k/phy.c49
-rw-r--r--drivers/net/wireless/ath5k/reset.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c9
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-scan.c7
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-sta.c21
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c10
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00debug.c2
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187.h57
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187_dev.c15
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187_rtl8225.c8
-rw-r--r--drivers/oprofile/cpu_buffer.c8
-rw-r--r--drivers/parport/parport_gsc.c4
-rw-r--r--drivers/parport/share.c13
-rw-r--r--drivers/pci/hotplug/acpiphp.h1
-rw-r--r--drivers/pci/hotplug/acpiphp_glue.c63
-rw-r--r--drivers/pci/intel-iommu.c13
-rw-r--r--drivers/pci/msi.c8
-rw-r--r--drivers/pci/pci.c3
-rw-r--r--drivers/pci/pcie/aer/aerdrv.h3
-rw-r--r--drivers/pci/pcie/portdrv_pci.c2
-rw-r--r--drivers/pci/probe.c2
-rw-r--r--drivers/platform/x86/asus-laptop.c6
-rw-r--r--drivers/platform/x86/eeepc-laptop.c47
-rw-r--r--drivers/pnp/pnpacpi/core.c8
-rw-r--r--drivers/regulator/da903x.c2
-rw-r--r--drivers/rtc/rtc-pl030.c2
-rw-r--r--drivers/rtc/rtc-pl031.c2
-rw-r--r--drivers/rtc/rtc-twl4030.c4
-rw-r--r--drivers/scsi/3w-9xxx.c3
-rw-r--r--drivers/scsi/3w-xxxx.c5
-rw-r--r--drivers/scsi/3w-xxxx.h2
-rw-r--r--drivers/scsi/Kconfig11
-rw-r--r--drivers/scsi/Makefile1
-rw-r--r--drivers/scsi/fnic/Makefile15
-rw-r--r--drivers/scsi/fnic/cq_desc.h78
-rw-r--r--drivers/scsi/fnic/cq_enet_desc.h167
-rw-r--r--drivers/scsi/fnic/cq_exch_desc.h182
-rw-r--r--drivers/scsi/fnic/fcpio.h780
-rw-r--r--drivers/scsi/fnic/fnic.h265
-rw-r--r--drivers/scsi/fnic/fnic_attrs.c56
-rw-r--r--drivers/scsi/fnic/fnic_fcs.c742
-rw-r--r--drivers/scsi/fnic/fnic_io.h67
-rw-r--r--drivers/scsi/fnic/fnic_isr.c332
-rw-r--r--drivers/scsi/fnic/fnic_main.c942
-rw-r--r--drivers/scsi/fnic/fnic_res.c444
-rw-r--r--drivers/scsi/fnic/fnic_res.h197
-rw-r--r--drivers/scsi/fnic/fnic_scsi.c1850
-rw-r--r--drivers/scsi/fnic/rq_enet_desc.h58
-rw-r--r--drivers/scsi/fnic/vnic_cq.c85
-rw-r--r--drivers/scsi/fnic/vnic_cq.h121
-rw-r--r--drivers/scsi/fnic/vnic_cq_copy.h62
-rw-r--r--drivers/scsi/fnic/vnic_dev.c690
-rw-r--r--drivers/scsi/fnic/vnic_dev.h161
-rw-r--r--drivers/scsi/fnic/vnic_devcmd.h281
-rw-r--r--drivers/scsi/fnic/vnic_intr.c60
-rw-r--r--drivers/scsi/fnic/vnic_intr.h118
-rw-r--r--drivers/scsi/fnic/vnic_nic.h69
-rw-r--r--drivers/scsi/fnic/vnic_resource.h61
-rw-r--r--drivers/scsi/fnic/vnic_rq.c196
-rw-r--r--drivers/scsi/fnic/vnic_rq.h235
-rw-r--r--drivers/scsi/fnic/vnic_scsi.h99
-rw-r--r--drivers/scsi/fnic/vnic_stats.h68
-rw-r--r--drivers/scsi/fnic/vnic_wq.c182
-rw-r--r--drivers/scsi/fnic/vnic_wq.h175
-rw-r--r--drivers/scsi/fnic/vnic_wq_copy.c117
-rw-r--r--drivers/scsi/fnic/vnic_wq_copy.h128
-rw-r--r--drivers/scsi/fnic/wq_enet_desc.h96
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.h2
-rw-r--r--drivers/scsi/osd/osd_uld.c20
-rw-r--r--drivers/scsi/scsi_scan.c1
-rw-r--r--drivers/scsi/scsi_transport_iscsi.c2
-rw-r--r--drivers/serial/8250.c15
-rw-r--r--drivers/serial/8250_gsc.c4
-rw-r--r--drivers/serial/amba-pl010.c2
-rw-r--r--drivers/serial/amba-pl011.c2
-rw-r--r--drivers/serial/icom.c2
-rw-r--r--drivers/serial/imx.c2
-rw-r--r--drivers/serial/mpc52xx_uart.c2
-rw-r--r--drivers/serial/nwpserial.c4
-rw-r--r--drivers/spi/pxa2xx_spi.c3
-rw-r--r--drivers/ssb/embedded.c1
-rw-r--r--drivers/staging/comedi/TODO1
-rw-r--r--drivers/staging/rt2870/rt2870.h1
-rw-r--r--drivers/staging/rtl8187se/r8180.h2
-rw-r--r--drivers/staging/rtl8187se/r8180_core.c46
-rw-r--r--drivers/staging/winbond/wbusb.c9
-rw-r--r--drivers/thermal/thermal_sys.c8
-rw-r--r--drivers/usb/Makefile3
-rw-r--r--drivers/usb/atm/cxacru.c10
-rw-r--r--drivers/usb/class/cdc-acm.c3
-rw-r--r--drivers/usb/gadget/atmel_usba_udc.c5
-rw-r--r--drivers/usb/gadget/usbstring.c6
-rw-r--r--drivers/usb/host/isp1760-hcd.c24
-rw-r--r--drivers/usb/serial/ftdi_sio.c27
-rw-r--r--drivers/usb/serial/ftdi_sio.h6
-rw-r--r--drivers/usb/serial/usb-serial.c1
-rw-r--r--drivers/usb/storage/unusual_devs.h5
-rw-r--r--drivers/video/Kconfig23
-rw-r--r--drivers/video/amba-clcd.c2
-rw-r--r--drivers/video/atmel_lcdfb.c10
-rw-r--r--drivers/video/gbefb.c14
-rw-r--r--drivers/video/omap/dispc.c14
-rw-r--r--drivers/video/omap/rfbi.c8
-rw-r--r--drivers/video/s3c-fb.c12
-rw-r--r--drivers/video/sh_mobile_lcdcfb.c7
-rw-r--r--drivers/video/via/viafbdev.c6
-rw-r--r--firmware/cis/.gitignore1
-rw-r--r--fs/9p/vfs_super.c12
-rw-r--r--fs/affs/super.c3
-rw-r--r--fs/afs/super.c7
-rw-r--r--fs/autofs4/waitq.c22
-rw-r--r--fs/binfmt_flat.c46
-rw-r--r--fs/btrfs/ctree.c39
-rw-r--r--fs/btrfs/disk-io.c2
-rw-r--r--fs/btrfs/extent-tree.c53
-rw-r--r--fs/btrfs/inode.c2
-rw-r--r--fs/btrfs/ioctl.c4
-rw-r--r--fs/btrfs/super.c16
-rw-r--r--fs/btrfs/volumes.c1
-rw-r--r--fs/buffer.c2
-rw-r--r--fs/cachefiles/internal.h18
-rw-r--r--fs/cifs/cifsfs.c6
-rw-r--r--fs/cifs/cifssmb.c14
-rw-r--r--fs/cifs/dir.c51
-rw-r--r--fs/cifs/file.c66
-rw-r--r--fs/cifs/link.c52
-rw-r--r--fs/dcache.c2
-rw-r--r--fs/devpts/inode.c23
-rw-r--r--fs/ecryptfs/main.c5
-rw-r--r--fs/eventpoll.c2
-rw-r--r--fs/exec.c79
-rw-r--r--fs/ext4/extents.c19
-rw-r--r--fs/ext4/inode.c26
-rw-r--r--fs/fcntl.c6
-rw-r--r--fs/fscache/internal.h18
-rw-r--r--fs/fuse/inode.c4
-rw-r--r--fs/gfs2/glock.c1
-rw-r--r--fs/gfs2/ops_fstype.c8
-rw-r--r--fs/hpfs/super.c3
-rw-r--r--fs/hugetlbfs/inode.c11
-rw-r--r--fs/inode.c113
-rw-r--r--fs/jbd/commit.c6
-rw-r--r--fs/jffs2/erase.c7
-rw-r--r--fs/libfs.c3
-rw-r--r--fs/lockd/svc.c15
-rw-r--r--fs/namei.c13
-rw-r--r--fs/namespace.c23
-rw-r--r--fs/nfs/dir.c3
-rw-r--r--fs/nfs/nfs4proc.c9
-rw-r--r--fs/nfs/nfsroot.c2
-rw-r--r--fs/nfs/super.c22
-rw-r--r--fs/nfsd/nfs4recover.c4
-rw-r--r--fs/nfsd/nfs4state.c1
-rw-r--r--fs/nfsd/nfs4xdr.c16
-rw-r--r--fs/nfsd/vfs.c6
-rw-r--r--fs/nilfs2/cpfile.c6
-rw-r--r--fs/nilfs2/ioctl.c281
-rw-r--r--fs/nilfs2/mdt.c15
-rw-r--r--fs/nilfs2/nilfs.h3
-rw-r--r--fs/nilfs2/page.c3
-rw-r--r--fs/nilfs2/recovery.c6
-rw-r--r--fs/nilfs2/segment.c5
-rw-r--r--fs/nilfs2/segment.h3
-rw-r--r--fs/ocfs2/symlink.c77
-rw-r--r--fs/open.c2
-rw-r--r--fs/proc/base.c2
-rw-r--r--fs/proc/root.c3
-rw-r--r--fs/reiserfs/dir.c24
-rw-r--r--fs/reiserfs/namei.c17
-rw-r--r--fs/reiserfs/super.c11
-rw-r--r--fs/reiserfs/xattr.c260
-rw-r--r--fs/reiserfs/xattr_security.c12
-rw-r--r--fs/romfs/super.c3
-rw-r--r--fs/squashfs/Makefile1
-rw-r--r--fs/squashfs/cache.c1
-rw-r--r--fs/squashfs/super.c10
-rw-r--r--fs/super.c48
-rw-r--r--fs/sysfs/file.c2
-rw-r--r--fs/ubifs/super.c3
-rw-r--r--fs/ufs/dir.c2
-rw-r--r--fs/ufs/file.c2
-rw-r--r--fs/ufs/ufs.h2
-rw-r--r--fs/xfs/linux-2.6/kmem.h2
-rw-r--r--fs/xfs/xfs_dfrag.c8
-rw-r--r--fs/xfs/xfs_fsops.c2
-rw-r--r--include/asm-generic/local.h2
-rw-r--r--include/drm/drmP.h24
-rw-r--r--include/drm/drm_crtc.h3
-rw-r--r--include/drm/drm_crtc_helper.h2
-rw-r--r--include/drm/i915_drm.h10
-rw-r--r--include/linux/Kbuild2
-rw-r--r--include/linux/amba/bus.h2
-rw-r--r--include/linux/amba/serial.h1
-rw-r--r--include/linux/ata.h28
-rw-r--r--include/linux/auto_fs.h3
-rw-r--r--include/linux/cpumask.h15
-rw-r--r--include/linux/cred.h1
-rw-r--r--include/linux/device.h9
-rw-r--r--include/linux/dmaengine.h6
-rw-r--r--include/linux/fs.h4
-rw-r--r--include/linux/i7300_idle.h20
-rw-r--r--include/linux/ide.h2
-rw-r--r--include/linux/input.h1
-rw-r--r--include/linux/mmzone.h26
-rw-r--r--include/linux/namei.h1
-rw-r--r--include/linux/net_dropmon.h1
-rw-r--r--include/linux/netfilter/nf_conntrack_tcp.h4
-rw-r--r--include/linux/netfilter/xt_LED.h2
-rw-r--r--include/linux/netfilter/xt_cluster.h2
-rw-r--r--include/linux/parport.h4
-rw-r--r--include/linux/pci_ids.h2
-rw-r--r--include/linux/platform_device.h1
-rw-r--r--include/linux/reiserfs_fs_sb.h3
-rw-r--r--include/linux/reiserfs_xattr.h7
-rw-r--r--include/linux/romfs_fs.h5
-rw-r--r--include/linux/swap.h5
-rw-r--r--include/linux/syscalls.h1
-rw-r--r--include/linux/tracehook.h11
-rw-r--r--include/linux/writeback.h2
-rw-r--r--include/scsi/scsi_transport_fc.h4
-rw-r--r--include/sound/version.h2
-rw-r--r--init/main.c3
-rw-r--r--ipc/shm.c7
-rw-r--r--kernel/async.c13
-rw-r--r--kernel/cgroup.c3
-rw-r--r--kernel/fork.c2
-rw-r--r--kernel/futex.c24
-rw-r--r--kernel/kexec.c2
-rw-r--r--kernel/kgdb.c4
-rw-r--r--kernel/kmod.c4
-rw-r--r--kernel/lockdep_internals.h4
-rw-r--r--kernel/panic.c35
-rw-r--r--kernel/power/disk.c25
-rw-r--r--kernel/power/main.c7
-rw-r--r--kernel/ptrace.c2
-rw-r--r--kernel/sched_clock.c3
-rw-r--r--kernel/sched_cpupri.c2
-rw-r--r--kernel/sched_rt.c2
-rw-r--r--kernel/smp.c2
-rw-r--r--kernel/sysctl.c23
-rw-r--r--kernel/trace/trace.c2
-rw-r--r--lib/Kconfig.debug1
-rw-r--r--lib/cpumask.c12
-rw-r--r--mm/filemap.c6
-rw-r--r--mm/hugetlb.c26
-rw-r--r--mm/madvise.c8
-rw-r--r--mm/memcontrol.c14
-rw-r--r--mm/mmzone.c15
-rw-r--r--mm/oom_kill.c24
-rw-r--r--mm/page-writeback.c6
-rw-r--r--mm/pdflush.c31
-rw-r--r--mm/rmap.c2
-rw-r--r--mm/slob.c5
-rw-r--r--mm/slub.c6
-rw-r--r--mm/swap_state.c4
-rw-r--r--mm/truncate.c1
-rw-r--r--mm/vmscan.c2
-rw-r--r--mm/vmstat.c19
-rw-r--r--net/Kconfig6
-rw-r--r--net/bluetooth/hci_conn.c6
-rw-r--r--net/bluetooth/hci_event.c2
-rw-r--r--net/bluetooth/hci_sysfs.c14
-rw-r--r--net/bridge/br_input.c5
-rw-r--r--net/bridge/br_stp.c3
-rw-r--r--net/core/gen_estimator.c13
-rw-r--r--net/core/netpoll.c8
-rw-r--r--net/core/pktgen.c2
-rw-r--r--net/core/skbuff.c4
-rw-r--r--net/ipv4/Kconfig4
-rw-r--r--net/ipv4/fib_trie.c6
-rw-r--r--net/ipv4/ipconfig.c12
-rw-r--r--net/ipv4/route.c60
-rw-r--r--net/ipv4/tcp.c5
-rw-r--r--net/ipv4/tcp_vegas.c11
-rw-r--r--net/ipv6/netfilter/ip6t_ipv6header.c6
-rw-r--r--net/ipv6/route.c3
-rw-r--r--net/mac80211/rc80211_minstrel.c4
-rw-r--r--net/mac80211/rc80211_pid_algo.c73
-rw-r--r--net/mac80211/tx.c2
-rw-r--r--net/netfilter/ipvs/ip_vs_conn.c9
-rw-r--r--net/netfilter/ipvs/ip_vs_core.c4
-rw-r--r--net/netfilter/nf_conntrack_netlink.c48
-rw-r--r--net/netfilter/nf_conntrack_proto_dccp.c4
-rw-r--r--net/netfilter/nf_conntrack_proto_tcp.c18
-rw-r--r--net/netfilter/nfnetlink_log.c6
-rw-r--r--net/netfilter/xt_cluster.c8
-rw-r--r--net/netfilter/xt_hashlimit.c2
-rw-r--r--net/rxrpc/ar-connection.c12
-rw-r--r--net/sched/cls_api.c23
-rw-r--r--net/sched/cls_cgroup.c25
-rw-r--r--net/sched/sch_fifo.c2
-rw-r--r--net/sched/sch_teql.c5
-rw-r--r--net/sunrpc/svcsock.c35
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_recvfrom.c2
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_sendto.c15
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_transport.c13
-rw-r--r--net/sunrpc/xprtrdma/verbs.c3
-rw-r--r--net/wimax/op-msg.c11
-rw-r--r--net/wimax/stack.c17
-rw-r--r--net/wireless/reg.c24
-rw-r--r--net/wireless/scan.c1
-rw-r--r--net/wireless/wext.c7
-rwxr-xr-xscripts/setlocalversion30
-rw-r--r--security/tomoyo/common.c6
-rw-r--r--security/tomoyo/realpath.c16
-rw-r--r--security/tomoyo/tomoyo.c6
-rw-r--r--sound/arm/aaci.c2
-rw-r--r--sound/arm/pxa2xx-ac97-lib.c2
-rw-r--r--sound/core/pcm_lib.c10
-rw-r--r--sound/core/pcm_native.c6
-rw-r--r--sound/drivers/pcsp/pcsp_mixer.c4
-rw-r--r--sound/drivers/serial-u16550.c11
-rw-r--r--sound/pci/ac97/ac97_patch.c7
-rw-r--r--sound/pci/ca0106/ca0106_mixer.c2
-rw-r--r--sound/pci/hda/hda_intel.c1
-rw-r--r--sound/pci/hda/patch_conexant.c1
-rw-r--r--sound/pci/hda/patch_realtek.c7
-rw-r--r--sound/pci/hda/patch_sigmatel.c17
-rw-r--r--sound/pci/riptide/riptide.c10
-rw-r--r--sound/pci/via82xx.c2
-rw-r--r--sound/soc/codecs/wm8990.c40
-rw-r--r--sound/soc/davinci/Kconfig7
-rw-r--r--sound/soc/davinci/davinci-evm.c63
-rw-r--r--sound/soc/davinci/davinci-i2s.c26
-rw-r--r--sound/soc/davinci/davinci-pcm.c71
-rw-r--r--sound/soc/soc-core.c3
-rw-r--r--sound/usb/usbaudio.c2
-rw-r--r--sound/usb/usbaudio.h2
-rw-r--r--sound/usb/usbmidi.c12
-rw-r--r--sound/usb/usbquirks.h2
-rw-r--r--virt/kvm/kvm_main.c3
836 files changed, 20536 insertions, 5722 deletions
diff --git a/Documentation/ABI/testing/sysfs-kernel-slab b/Documentation/ABI/testing/sysfs-kernel-slab
new file mode 100644
index 000000000000..6dcf75e594fb
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-kernel-slab
@@ -0,0 +1,479 @@
1What: /sys/kernel/slab
2Date: May 2007
3KernelVersion: 2.6.22
4Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
5 Christoph Lameter <cl@linux-foundation.org>
6Description:
7 The /sys/kernel/slab directory contains a snapshot of the
8 internal state of the SLUB allocator for each cache. Certain
9 files may be modified to change the behavior of the cache (and
10 any cache it aliases, if any).
11Users: kernel memory tuning tools
12
13What: /sys/kernel/slab/cache/aliases
14Date: May 2007
15KernelVersion: 2.6.22
16Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
17 Christoph Lameter <cl@linux-foundation.org>
18Description:
19 The aliases file is read-only and specifies how many caches
20 have merged into this cache.
21
22What: /sys/kernel/slab/cache/align
23Date: May 2007
24KernelVersion: 2.6.22
25Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
26 Christoph Lameter <cl@linux-foundation.org>
27Description:
28 The align file is read-only and specifies the cache's object
29 alignment in bytes.
30
31What: /sys/kernel/slab/cache/alloc_calls
32Date: May 2007
33KernelVersion: 2.6.22
34Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
35 Christoph Lameter <cl@linux-foundation.org>
36Description:
37 The alloc_calls file is read-only and lists the kernel code
38 locations from which allocations for this cache were performed.
39 The alloc_calls file only contains information if debugging is
40 enabled for that cache (see Documentation/vm/slub.txt).
41
42What: /sys/kernel/slab/cache/alloc_fastpath
43Date: February 2008
44KernelVersion: 2.6.25
45Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
46 Christoph Lameter <cl@linux-foundation.org>
47Description:
48 The alloc_fastpath file is read-only and specifies how many
49 objects have been allocated using the fast path.
50 Available when CONFIG_SLUB_STATS is enabled.
51
52What: /sys/kernel/slab/cache/alloc_from_partial
53Date: February 2008
54KernelVersion: 2.6.25
55Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
56 Christoph Lameter <cl@linux-foundation.org>
57Description:
58 The alloc_from_partial file is read-only and specifies how
59 many times a cpu slab has been full and it has been refilled
60 by using a slab from the list of partially used slabs.
61 Available when CONFIG_SLUB_STATS is enabled.
62
63What: /sys/kernel/slab/cache/alloc_refill
64Date: February 2008
65KernelVersion: 2.6.25
66Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
67 Christoph Lameter <cl@linux-foundation.org>
68Description:
69 The alloc_refill file is read-only and specifies how many
70 times the per-cpu freelist was empty but there were objects
71 available as the result of remote cpu frees.
72 Available when CONFIG_SLUB_STATS is enabled.
73
74What: /sys/kernel/slab/cache/alloc_slab
75Date: February 2008
76KernelVersion: 2.6.25
77Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
78 Christoph Lameter <cl@linux-foundation.org>
79Description:
80 The alloc_slab file is read-only and specifies how many times
81 a new slab had to be allocated from the page allocator.
82 Available when CONFIG_SLUB_STATS is enabled.
83
84What: /sys/kernel/slab/cache/alloc_slowpath
85Date: February 2008
86KernelVersion: 2.6.25
87Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
88 Christoph Lameter <cl@linux-foundation.org>
89Description:
90 The alloc_slowpath file is read-only and specifies how many
91 objects have been allocated using the slow path because of a
92 refill or allocation from a partial or new slab.
93 Available when CONFIG_SLUB_STATS is enabled.
94
95What: /sys/kernel/slab/cache/cache_dma
96Date: May 2007
97KernelVersion: 2.6.22
98Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
99 Christoph Lameter <cl@linux-foundation.org>
100Description:
101 The cache_dma file is read-only and specifies whether objects
102 are from ZONE_DMA.
103 Available when CONFIG_ZONE_DMA is enabled.
104
105What: /sys/kernel/slab/cache/cpu_slabs
106Date: May 2007
107KernelVersion: 2.6.22
108Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
109 Christoph Lameter <cl@linux-foundation.org>
110Description:
111 The cpu_slabs file is read-only and displays how many cpu slabs
112 are active and their NUMA locality.
113
114What: /sys/kernel/slab/cache/cpuslab_flush
115Date: April 2009
116KernelVersion: 2.6.31
117Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
118 Christoph Lameter <cl@linux-foundation.org>
119Description:
120 The file cpuslab_flush is read-only and specifies how many
121 times a cache's cpu slabs have been flushed as the result of
122 destroying or shrinking a cache, a cpu going offline, or as
123 the result of forcing an allocation from a certain node.
124 Available when CONFIG_SLUB_STATS is enabled.
125
126What: /sys/kernel/slab/cache/ctor
127Date: May 2007
128KernelVersion: 2.6.22
129Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
130 Christoph Lameter <cl@linux-foundation.org>
131Description:
132 The ctor file is read-only and specifies the cache's object
133 constructor function, which is invoked for each object when a
134 new slab is allocated.
135
136What: /sys/kernel/slab/cache/deactivate_empty
137Date: February 2008
138KernelVersion: 2.6.25
139Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
140 Christoph Lameter <cl@linux-foundation.org>
141Description:
142 The file deactivate_empty is read-only and specifies how many
143 times an empty cpu slab was deactivated.
144 Available when CONFIG_SLUB_STATS is enabled.
145
146What: /sys/kernel/slab/cache/deactivate_full
147Date: February 2008
148KernelVersion: 2.6.25
149Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
150 Christoph Lameter <cl@linux-foundation.org>
151Description:
152 The file deactivate_full is read-only and specifies how many
153 times a full cpu slab was deactivated.
154 Available when CONFIG_SLUB_STATS is enabled.
155
156What: /sys/kernel/slab/cache/deactivate_remote_frees
157Date: February 2008
158KernelVersion: 2.6.25
159Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
160 Christoph Lameter <cl@linux-foundation.org>
161Description:
162 The file deactivate_remote_frees is read-only and specifies how
163 many times a cpu slab has been deactivated and contained free
164 objects that were freed remotely.
165 Available when CONFIG_SLUB_STATS is enabled.
166
167What: /sys/kernel/slab/cache/deactivate_to_head
168Date: February 2008
169KernelVersion: 2.6.25
170Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
171 Christoph Lameter <cl@linux-foundation.org>
172Description:
173 The file deactivate_to_head is read-only and specifies how
174 many times a partial cpu slab was deactivated and added to the
175 head of its node's partial list.
176 Available when CONFIG_SLUB_STATS is enabled.
177
178What: /sys/kernel/slab/cache/deactivate_to_tail
179Date: February 2008
180KernelVersion: 2.6.25
181Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
182 Christoph Lameter <cl@linux-foundation.org>
183Description:
184 The file deactivate_to_tail is read-only and specifies how
185 many times a partial cpu slab was deactivated and added to the
186 tail of its node's partial list.
187 Available when CONFIG_SLUB_STATS is enabled.
188
189What: /sys/kernel/slab/cache/destroy_by_rcu
190Date: May 2007
191KernelVersion: 2.6.22
192Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
193 Christoph Lameter <cl@linux-foundation.org>
194Description:
195 The destroy_by_rcu file is read-only and specifies whether
196 slabs (not objects) are freed by rcu.
197
198What: /sys/kernel/slab/cache/free_add_partial
199Date: February 2008
200KernelVersion: 2.6.25
201Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
202 Christoph Lameter <cl@linux-foundation.org>
203Description:
204 The file free_add_partial is read-only and specifies how many
205 times an object has been freed in a full slab so that it had to
206 added to its node's partial list.
207 Available when CONFIG_SLUB_STATS is enabled.
208
209What: /sys/kernel/slab/cache/free_calls
210Date: May 2007
211KernelVersion: 2.6.22
212Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
213 Christoph Lameter <cl@linux-foundation.org>
214Description:
215 The free_calls file is read-only and lists the locations of
216 object frees if slab debugging is enabled (see
217 Documentation/vm/slub.txt).
218
219What: /sys/kernel/slab/cache/free_fastpath
220Date: February 2008
221KernelVersion: 2.6.25
222Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
223 Christoph Lameter <cl@linux-foundation.org>
224Description:
225 The free_fastpath file is read-only and specifies how many
226 objects have been freed using the fast path because it was an
227 object from the cpu slab.
228 Available when CONFIG_SLUB_STATS is enabled.
229
230What: /sys/kernel/slab/cache/free_frozen
231Date: February 2008
232KernelVersion: 2.6.25
233Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
234 Christoph Lameter <cl@linux-foundation.org>
235Description:
236 The free_frozen file is read-only and specifies how many
237 objects have been freed to a frozen slab (i.e. a remote cpu
238 slab).
239 Available when CONFIG_SLUB_STATS is enabled.
240
241What: /sys/kernel/slab/cache/free_remove_partial
242Date: February 2008
243KernelVersion: 2.6.25
244Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
245 Christoph Lameter <cl@linux-foundation.org>
246Description:
247 The file free_remove_partial is read-only and specifies how
248 many times an object has been freed to a now-empty slab so
249 that it had to be removed from its node's partial list.
250 Available when CONFIG_SLUB_STATS is enabled.
251
252What: /sys/kernel/slab/cache/free_slab
253Date: February 2008
254KernelVersion: 2.6.25
255Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
256 Christoph Lameter <cl@linux-foundation.org>
257Description:
258 The free_slab file is read-only and specifies how many times an
259 empty slab has been freed back to the page allocator.
260 Available when CONFIG_SLUB_STATS is enabled.
261
262What: /sys/kernel/slab/cache/free_slowpath
263Date: February 2008
264KernelVersion: 2.6.25
265Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
266 Christoph Lameter <cl@linux-foundation.org>
267Description:
268 The free_slowpath file is read-only and specifies how many
269 objects have been freed using the slow path (i.e. to a full or
270 partial slab).
271 Available when CONFIG_SLUB_STATS is enabled.
272
273What: /sys/kernel/slab/cache/hwcache_align
274Date: May 2007
275KernelVersion: 2.6.22
276Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
277 Christoph Lameter <cl@linux-foundation.org>
278Description:
279 The hwcache_align file is read-only and specifies whether
280 objects are aligned on cachelines.
281
282What: /sys/kernel/slab/cache/min_partial
283Date: February 2009
284KernelVersion: 2.6.30
285Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
286 David Rientjes <rientjes@google.com>
287Description:
288 The min_partial file specifies how many empty slabs shall
289 remain on a node's partial list to avoid the overhead of
290 allocating new slabs. Such slabs may be reclaimed by utilizing
291 the shrink file.
292
293What: /sys/kernel/slab/cache/object_size
294Date: May 2007
295KernelVersion: 2.6.22
296Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
297 Christoph Lameter <cl@linux-foundation.org>
298Description:
299 The object_size file is read-only and specifies the cache's
300 object size.
301
302What: /sys/kernel/slab/cache/objects
303Date: May 2007
304KernelVersion: 2.6.22
305Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
306 Christoph Lameter <cl@linux-foundation.org>
307Description:
308 The objects file is read-only and displays how many objects are
309 active and from which nodes they are from.
310
311What: /sys/kernel/slab/cache/objects_partial
312Date: April 2008
313KernelVersion: 2.6.26
314Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
315 Christoph Lameter <cl@linux-foundation.org>
316Description:
317 The objects_partial file is read-only and displays how many
318 objects are on partial slabs and from which nodes they are
319 from.
320
321What: /sys/kernel/slab/cache/objs_per_slab
322Date: May 2007
323KernelVersion: 2.6.22
324Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
325 Christoph Lameter <cl@linux-foundation.org>
326Description:
327 The file objs_per_slab is read-only and specifies how many
328 objects may be allocated from a single slab of the order
329 specified in /sys/kernel/slab/cache/order.
330
331What: /sys/kernel/slab/cache/order
332Date: May 2007
333KernelVersion: 2.6.22
334Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
335 Christoph Lameter <cl@linux-foundation.org>
336Description:
337 The order file specifies the page order at which new slabs are
338 allocated. It is writable and can be changed to increase the
339 number of objects per slab. If a slab cannot be allocated
340 because of fragmentation, SLUB will retry with the minimum order
341 possible depending on its characteristics.
342
343What: /sys/kernel/slab/cache/order_fallback
344Date: April 2008
345KernelVersion: 2.6.26
346Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
347 Christoph Lameter <cl@linux-foundation.org>
348Description:
349 The file order_fallback is read-only and specifies how many
350 times an allocation of a new slab has not been possible at the
351 cache's order and instead fallen back to its minimum possible
352 order.
353 Available when CONFIG_SLUB_STATS is enabled.
354
355What: /sys/kernel/slab/cache/partial
356Date: May 2007
357KernelVersion: 2.6.22
358Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
359 Christoph Lameter <cl@linux-foundation.org>
360Description:
361 The partial file is read-only and displays how long many
362 partial slabs there are and how long each node's list is.
363
364What: /sys/kernel/slab/cache/poison
365Date: May 2007
366KernelVersion: 2.6.22
367Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
368 Christoph Lameter <cl@linux-foundation.org>
369Description:
370 The poison file specifies whether objects should be poisoned
371 when a new slab is allocated.
372
373What: /sys/kernel/slab/cache/reclaim_account
374Date: May 2007
375KernelVersion: 2.6.22
376Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
377 Christoph Lameter <cl@linux-foundation.org>
378Description:
379 The reclaim_account file specifies whether the cache's objects
380 are reclaimable (and grouped by their mobility).
381
382What: /sys/kernel/slab/cache/red_zone
383Date: May 2007
384KernelVersion: 2.6.22
385Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
386 Christoph Lameter <cl@linux-foundation.org>
387Description:
388 The red_zone file specifies whether the cache's objects are red
389 zoned.
390
391What: /sys/kernel/slab/cache/remote_node_defrag_ratio
392Date: January 2008
393KernelVersion: 2.6.25
394Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
395 Christoph Lameter <cl@linux-foundation.org>
396Description:
397 The file remote_node_defrag_ratio specifies the percentage of
398 times SLUB will attempt to refill the cpu slab with a partial
399 slab from a remote node as opposed to allocating a new slab on
400 the local node. This reduces the amount of wasted memory over
401 the entire system but can be expensive.
402 Available when CONFIG_NUMA is enabled.
403
404What: /sys/kernel/slab/cache/sanity_checks
405Date: May 2007
406KernelVersion: 2.6.22
407Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
408 Christoph Lameter <cl@linux-foundation.org>
409Description:
410 The sanity_checks file specifies whether expensive checks
411 should be performed on free and, at minimum, enables double free
412 checks. Caches that enable sanity_checks cannot be merged with
413 caches that do not.
414
415What: /sys/kernel/slab/cache/shrink
416Date: May 2007
417KernelVersion: 2.6.22
418Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
419 Christoph Lameter <cl@linux-foundation.org>
420Description:
421 The shrink file is written when memory should be reclaimed from
422 a cache. Empty partial slabs are freed and the partial list is
423 sorted so the slabs with the fewest available objects are used
424 first.
425
426What: /sys/kernel/slab/cache/slab_size
427Date: May 2007
428KernelVersion: 2.6.22
429Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
430 Christoph Lameter <cl@linux-foundation.org>
431Description:
432 The slab_size file is read-only and specifies the object size
433 with metadata (debugging information and alignment) in bytes.
434
435What: /sys/kernel/slab/cache/slabs
436Date: May 2007
437KernelVersion: 2.6.22
438Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
439 Christoph Lameter <cl@linux-foundation.org>
440Description:
441 The slabs file is read-only and displays how long many slabs
442 there are (both cpu and partial) and from which nodes they are
443 from.
444
445What: /sys/kernel/slab/cache/store_user
446Date: May 2007
447KernelVersion: 2.6.22
448Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
449 Christoph Lameter <cl@linux-foundation.org>
450Description:
451 The store_user file specifies whether the location of
452 allocation or free should be tracked for a cache.
453
454What: /sys/kernel/slab/cache/total_objects
455Date: April 2008
456KernelVersion: 2.6.26
457Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
458 Christoph Lameter <cl@linux-foundation.org>
459Description:
460 The total_objects file is read-only and displays how many total
461 objects a cache has and from which nodes they are from.
462
463What: /sys/kernel/slab/cache/trace
464Date: May 2007
465KernelVersion: 2.6.22
466Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
467 Christoph Lameter <cl@linux-foundation.org>
468Description:
469 The trace file specifies whether object allocations and frees
470 should be traced.
471
472What: /sys/kernel/slab/cache/validate
473Date: May 2007
474KernelVersion: 2.6.22
475Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
476 Christoph Lameter <cl@linux-foundation.org>
477Description:
478 Writing to the validate file causes SLUB to traverse all of its
479 cache's objects and check the validity of metadata.
diff --git a/Documentation/DocBook/kgdb.tmpl b/Documentation/DocBook/kgdb.tmpl
index 372dec20c8da..5cff41a5fa7c 100644
--- a/Documentation/DocBook/kgdb.tmpl
+++ b/Documentation/DocBook/kgdb.tmpl
@@ -281,7 +281,7 @@
281 seriously wrong while debugging, it will most often be the case 281 seriously wrong while debugging, it will most often be the case
282 that you want to enable gdb to be verbose about its target 282 that you want to enable gdb to be verbose about its target
283 communications. You do this prior to issuing the <constant>target 283 communications. You do this prior to issuing the <constant>target
284 remote</constant> command by typing in: <constant>set remote debug 1</constant> 284 remote</constant> command by typing in: <constant>set debug remote 1</constant>
285 </para> 285 </para>
286 </chapter> 286 </chapter>
287 <chapter id="KGDBTestSuite"> 287 <chapter id="KGDBTestSuite">
diff --git a/Documentation/filesystems/tmpfs.txt b/Documentation/filesystems/tmpfs.txt
index 222437efd75a..3015da0c6b2a 100644
--- a/Documentation/filesystems/tmpfs.txt
+++ b/Documentation/filesystems/tmpfs.txt
@@ -133,4 +133,4 @@ RAM/SWAP in 10240 inodes and it is only accessible by root.
133Author: 133Author:
134 Christoph Rohland <cr@sap.com>, 1.12.01 134 Christoph Rohland <cr@sap.com>, 1.12.01
135Updated: 135Updated:
136 Hugh Dickins <hugh@veritas.com>, 4 June 2007 136 Hugh Dickins, 4 June 2007
diff --git a/Documentation/hwmon/sysfs-interface b/Documentation/hwmon/sysfs-interface
index 2f10ce6a879f..004ee161721e 100644
--- a/Documentation/hwmon/sysfs-interface
+++ b/Documentation/hwmon/sysfs-interface
@@ -150,6 +150,11 @@ fan[1-*]_min Fan minimum value
150 Unit: revolution/min (RPM) 150 Unit: revolution/min (RPM)
151 RW 151 RW
152 152
153fan[1-*]_max Fan maximum value
154 Unit: revolution/min (RPM)
155 Only rarely supported by the hardware.
156 RW
157
153fan[1-*]_input Fan input value. 158fan[1-*]_input Fan input value.
154 Unit: revolution/min (RPM) 159 Unit: revolution/min (RPM)
155 RO 160 RO
@@ -390,6 +395,7 @@ OR
390in[0-*]_min_alarm 395in[0-*]_min_alarm
391in[0-*]_max_alarm 396in[0-*]_max_alarm
392fan[1-*]_min_alarm 397fan[1-*]_min_alarm
398fan[1-*]_max_alarm
393temp[1-*]_min_alarm 399temp[1-*]_min_alarm
394temp[1-*]_max_alarm 400temp[1-*]_max_alarm
395temp[1-*]_crit_alarm 401temp[1-*]_crit_alarm
diff --git a/Documentation/input/multi-touch-protocol.txt b/Documentation/input/multi-touch-protocol.txt
index 9f09557aea39..a12ea3b586e6 100644
--- a/Documentation/input/multi-touch-protocol.txt
+++ b/Documentation/input/multi-touch-protocol.txt
@@ -18,8 +18,12 @@ Usage
18Anonymous finger details are sent sequentially as separate packets of ABS 18Anonymous finger details are sent sequentially as separate packets of ABS
19events. Only the ABS_MT events are recognized as part of a finger 19events. Only the ABS_MT events are recognized as part of a finger
20packet. The end of a packet is marked by calling the input_mt_sync() 20packet. The end of a packet is marked by calling the input_mt_sync()
21function, which generates a SYN_MT_REPORT event. The end of multi-touch 21function, which generates a SYN_MT_REPORT event. This instructs the
22transfer is marked by calling the usual input_sync() function. 22receiver to accept the data for the current finger and prepare to receive
23another. The end of a multi-touch transfer is marked by calling the usual
24input_sync() function. This instructs the receiver to act upon events
25accumulated since last EV_SYN/SYN_REPORT and prepare to receive a new
26set of events/packets.
23 27
24A set of ABS_MT events with the desired properties is defined. The events 28A set of ABS_MT events with the desired properties is defined. The events
25are divided into categories, to allow for partial implementation. The 29are divided into categories, to allow for partial implementation. The
@@ -27,11 +31,26 @@ minimum set consists of ABS_MT_TOUCH_MAJOR, ABS_MT_POSITION_X and
27ABS_MT_POSITION_Y, which allows for multiple fingers to be tracked. If the 31ABS_MT_POSITION_Y, which allows for multiple fingers to be tracked. If the
28device supports it, the ABS_MT_WIDTH_MAJOR may be used to provide the size 32device supports it, the ABS_MT_WIDTH_MAJOR may be used to provide the size
29of the approaching finger. Anisotropy and direction may be specified with 33of the approaching finger. Anisotropy and direction may be specified with
30ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and ABS_MT_ORIENTATION. Devices with 34ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and ABS_MT_ORIENTATION. The
31more granular information may specify general shapes as blobs, i.e., as a 35ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a
32sequence of rectangular shapes grouped together by an 36finger or a pen or something else. Devices with more granular information
33ABS_MT_BLOB_ID. Finally, the ABS_MT_TOOL_TYPE may be used to specify 37may specify general shapes as blobs, i.e., as a sequence of rectangular
34whether the touching tool is a finger or a pen or something else. 38shapes grouped together by an ABS_MT_BLOB_ID. Finally, for the few devices
39that currently support it, the ABS_MT_TRACKING_ID event may be used to
40report finger tracking from hardware [5].
41
42Here is what a minimal event sequence for a two-finger touch would look
43like:
44
45 ABS_MT_TOUCH_MAJOR
46 ABS_MT_POSITION_X
47 ABS_MT_POSITION_Y
48 SYN_MT_REPORT
49 ABS_MT_TOUCH_MAJOR
50 ABS_MT_POSITION_X
51 ABS_MT_POSITION_Y
52 SYN_MT_REPORT
53 SYN_REPORT
35 54
36 55
37Event Semantics 56Event Semantics
@@ -44,24 +63,24 @@ ABS_MT_TOUCH_MAJOR
44 63
45The length of the major axis of the contact. The length should be given in 64The length of the major axis of the contact. The length should be given in
46surface units. If the surface has an X times Y resolution, the largest 65surface units. If the surface has an X times Y resolution, the largest
47possible value of ABS_MT_TOUCH_MAJOR is sqrt(X^2 + Y^2), the diagonal. 66possible value of ABS_MT_TOUCH_MAJOR is sqrt(X^2 + Y^2), the diagonal [4].
48 67
49ABS_MT_TOUCH_MINOR 68ABS_MT_TOUCH_MINOR
50 69
51The length, in surface units, of the minor axis of the contact. If the 70The length, in surface units, of the minor axis of the contact. If the
52contact is circular, this event can be omitted. 71contact is circular, this event can be omitted [4].
53 72
54ABS_MT_WIDTH_MAJOR 73ABS_MT_WIDTH_MAJOR
55 74
56The length, in surface units, of the major axis of the approaching 75The length, in surface units, of the major axis of the approaching
57tool. This should be understood as the size of the tool itself. The 76tool. This should be understood as the size of the tool itself. The
58orientation of the contact and the approaching tool are assumed to be the 77orientation of the contact and the approaching tool are assumed to be the
59same. 78same [4].
60 79
61ABS_MT_WIDTH_MINOR 80ABS_MT_WIDTH_MINOR
62 81
63The length, in surface units, of the minor axis of the approaching 82The length, in surface units, of the minor axis of the approaching
64tool. Omit if circular. 83tool. Omit if circular [4].
65 84
66The above four values can be used to derive additional information about 85The above four values can be used to derive additional information about
67the contact. The ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR approximates 86the contact. The ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR approximates
@@ -70,14 +89,17 @@ different characteristic widths [1].
70 89
71ABS_MT_ORIENTATION 90ABS_MT_ORIENTATION
72 91
73The orientation of the ellipse. The value should describe half a revolution 92The orientation of the ellipse. The value should describe a signed quarter
74clockwise around the touch center. The scale of the value is arbitrary, but 93of a revolution clockwise around the touch center. The signed value range
75zero should be returned for an ellipse aligned along the Y axis of the 94is arbitrary, but zero should be returned for a finger aligned along the Y
76surface. As an example, an index finger placed straight onto the axis could 95axis of the surface, a negative value when finger is turned to the left, and
77return zero orientation, something negative when twisted to the left, and 96a positive value when finger turned to the right. When completely aligned with
78something positive when twisted to the right. This value can be omitted if 97the X axis, the range max should be returned. Orientation can be omitted
79the touching object is circular, or if the information is not available in 98if the touching object is circular, or if the information is not available
80the kernel driver. 99in the kernel driver. Partial orientation support is possible if the device
100can distinguish between the two axis, but not (uniquely) any values in
101between. In such cases, the range of ABS_MT_ORIENTATION should be [0, 1]
102[4].
81 103
82ABS_MT_POSITION_X 104ABS_MT_POSITION_X
83 105
@@ -98,8 +120,35 @@ ABS_MT_BLOB_ID
98 120
99The BLOB_ID groups several packets together into one arbitrarily shaped 121The BLOB_ID groups several packets together into one arbitrarily shaped
100contact. This is a low-level anonymous grouping, and should not be confused 122contact. This is a low-level anonymous grouping, and should not be confused
101with the high-level contactID, explained below. Most kernel drivers will 123with the high-level trackingID [5]. Most kernel drivers will not have blob
102not have this capability, and can safely omit the event. 124capability, and can safely omit the event.
125
126ABS_MT_TRACKING_ID
127
128The TRACKING_ID identifies an initiated contact throughout its life cycle
129[5]. There are currently only a few devices that support it, so this event
130should normally be omitted.
131
132
133Event Computation
134-----------------
135
136The flora of different hardware unavoidably leads to some devices fitting
137better to the MT protocol than others. To simplify and unify the mapping,
138this section gives recipes for how to compute certain events.
139
140For devices reporting contacts as rectangular shapes, signed orientation
141cannot be obtained. Assuming X and Y are the lengths of the sides of the
142touching rectangle, here is a simple formula that retains the most
143information possible:
144
145 ABS_MT_TOUCH_MAJOR := max(X, Y)
146 ABS_MT_TOUCH_MINOR := min(X, Y)
147 ABS_MT_ORIENTATION := bool(X > Y)
148
149The range of ABS_MT_ORIENTATION should be set to [0, 1], to indicate that
150the device can distinguish between a finger along the Y axis (0) and a
151finger along the X axis (1).
103 152
104 153
105Finger Tracking 154Finger Tracking
@@ -109,14 +158,18 @@ The kernel driver should generate an arbitrary enumeration of the set of
109anonymous contacts currently on the surface. The order in which the packets 158anonymous contacts currently on the surface. The order in which the packets
110appear in the event stream is not important. 159appear in the event stream is not important.
111 160
112The process of finger tracking, i.e., to assign a unique contactID to each 161The process of finger tracking, i.e., to assign a unique trackingID to each
113initiated contact on the surface, is left to user space; preferably the 162initiated contact on the surface, is left to user space; preferably the
114multi-touch X driver [3]. In that driver, the contactID stays the same and 163multi-touch X driver [3]. In that driver, the trackingID stays the same and
115unique until the contact vanishes (when the finger leaves the surface). The 164unique until the contact vanishes (when the finger leaves the surface). The
116problem of assigning a set of anonymous fingers to a set of identified 165problem of assigning a set of anonymous fingers to a set of identified
117fingers is a euclidian bipartite matching problem at each event update, and 166fingers is a euclidian bipartite matching problem at each event update, and
118relies on a sufficiently rapid update rate. 167relies on a sufficiently rapid update rate.
119 168
169There are a few devices that support trackingID in hardware. User space can
170make use of these native identifiers to reduce bandwidth and cpu usage.
171
172
120Notes 173Notes
121----- 174-----
122 175
@@ -136,5 +189,7 @@ could be used to derive tilt.
136time of writing (April 2009), the MT protocol is not yet merged, and the 189time of writing (April 2009), the MT protocol is not yet merged, and the
137prototype implements finger matching, basic mouse support and two-finger 190prototype implements finger matching, basic mouse support and two-finger
138scrolling. The project aims at improving the quality of current multi-touch 191scrolling. The project aims at improving the quality of current multi-touch
139functionality available in the synaptics X driver, and in addition 192functionality available in the Synaptics X driver, and in addition
140implement more advanced gestures. 193implement more advanced gestures.
194[4] See the section on event computation.
195[5] See the section on finger tracking.
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index e87bdbfbcc75..fd5cac013037 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1535,6 +1535,10 @@ and is between 256 and 4096 characters. It is defined in the file
1535 register save and restore. The kernel will only save 1535 register save and restore. The kernel will only save
1536 legacy floating-point registers on task switch. 1536 legacy floating-point registers on task switch.
1537 1537
1538 noxsave [BUGS=X86] Disables x86 extended register state save
1539 and restore using xsave. The kernel will fallback to
1540 enabling legacy floating-point and sse state.
1541
1538 nohlt [BUGS=ARM,SH] Tells the kernel that the sleep(SH) or 1542 nohlt [BUGS=ARM,SH] Tells the kernel that the sleep(SH) or
1539 wfi(ARM) instruction doesn't work correctly and not to 1543 wfi(ARM) instruction doesn't work correctly and not to
1540 use it. This is also useful when using JTAG debugger. 1544 use it. This is also useful when using JTAG debugger.
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index ec5de02f543f..b121c5db707f 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -1266,13 +1266,22 @@ sctp_rmem - vector of 3 INTEGERs: min, default, max
1266sctp_wmem - vector of 3 INTEGERs: min, default, max 1266sctp_wmem - vector of 3 INTEGERs: min, default, max
1267 See tcp_wmem for a description. 1267 See tcp_wmem for a description.
1268 1268
1269UNDOCUMENTED:
1270 1269
1271/proc/sys/net/core/* 1270/proc/sys/net/core/*
1272 dev_weight FIXME 1271dev_weight - INTEGER
1272 The maximum number of packets that kernel can handle on a NAPI
1273 interrupt, it's a Per-CPU variable.
1274
1275 Default: 64
1273 1276
1274/proc/sys/net/unix/* 1277/proc/sys/net/unix/*
1275 max_dgram_qlen FIXME 1278max_dgram_qlen - INTEGER
1279 The maximum length of dgram socket receive queue
1280
1281 Default: 10
1282
1283
1284UNDOCUMENTED:
1276 1285
1277/proc/sys/net/irda/* 1286/proc/sys/net/irda/*
1278 fast_poll_increase FIXME 1287 fast_poll_increase FIXME
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt
index 8eec05bc079e..322869fc8a9e 100644
--- a/Documentation/sound/alsa/HD-Audio-Models.txt
+++ b/Documentation/sound/alsa/HD-Audio-Models.txt
@@ -334,6 +334,7 @@ STAC9227/9228/9229/927x
334 ref-no-jd Reference board without HP/Mic jack detection 334 ref-no-jd Reference board without HP/Mic jack detection
335 3stack D965 3stack 335 3stack D965 3stack
336 5stack D965 5stack + SPDIF 336 5stack D965 5stack + SPDIF
337 5stack-no-fp D965 5stack without front panel
337 dell-3stack Dell Dimension E520 338 dell-3stack Dell Dimension E520
338 dell-bios Fixes with Dell BIOS setup 339 dell-bios Fixes with Dell BIOS setup
339 auto BIOS setup (default) 340 auto BIOS setup (default)
diff --git a/Documentation/sound/alsa/Procfile.txt b/Documentation/sound/alsa/Procfile.txt
index bba2dbb79d81..cfac20cf9e33 100644
--- a/Documentation/sound/alsa/Procfile.txt
+++ b/Documentation/sound/alsa/Procfile.txt
@@ -104,6 +104,11 @@ card*/pcm*/xrun_debug
104 When this value is greater than 1, the driver will show the 104 When this value is greater than 1, the driver will show the
105 stack trace additionally. This may help the debugging. 105 stack trace additionally. This may help the debugging.
106 106
107 Since 2.6.30, this option also enables the hwptr check using
108 jiffies. This detects spontaneous invalid pointer callback
109 values, but can be lead to too much corrections for a (mostly
110 buggy) hardware that doesn't give smooth pointer updates.
111
107card*/pcm*/sub*/info 112card*/pcm*/sub*/info
108 The general information of this PCM sub-stream. 113 The general information of this PCM sub-stream.
109 114
diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt
index b716d33912d8..c302ddf629a0 100644
--- a/Documentation/sysctl/vm.txt
+++ b/Documentation/sysctl/vm.txt
@@ -39,8 +39,6 @@ Currently, these files are in /proc/sys/vm:
39- nr_hugepages 39- nr_hugepages
40- nr_overcommit_hugepages 40- nr_overcommit_hugepages
41- nr_pdflush_threads 41- nr_pdflush_threads
42- nr_pdflush_threads_min
43- nr_pdflush_threads_max
44- nr_trim_pages (only if CONFIG_MMU=n) 42- nr_trim_pages (only if CONFIG_MMU=n)
45- numa_zonelist_order 43- numa_zonelist_order
46- oom_dump_tasks 44- oom_dump_tasks
@@ -469,32 +467,6 @@ The default value is 0.
469 467
470============================================================== 468==============================================================
471 469
472nr_pdflush_threads_min
473
474This value controls the minimum number of pdflush threads.
475
476At boot time, the kernel will create and maintain 'nr_pdflush_threads_min'
477threads for the kernel's lifetime.
478
479The default value is 2. The minimum value you can specify is 1, and
480the maximum value is the current setting of 'nr_pdflush_threads_max'.
481
482See 'nr_pdflush_threads_max' below for more information.
483
484==============================================================
485
486nr_pdflush_threads_max
487
488This value controls the maximum number of pdflush threads that can be
489created. The pdflush algorithm will create a new pdflush thread (up to
490this maximum) if no pdflush threads have been available for >= 1 second.
491
492The default value is 8. The minimum value you can specify is the
493current value of 'nr_pdflush_threads_min' and the
494maximum is 1000.
495
496==============================================================
497
498overcommit_memory: 470overcommit_memory:
499 471
500This value contains a flag that enables memory overcommitment. 472This value contains a flag that enables memory overcommitment.
diff --git a/Documentation/sysfs-rules.txt b/Documentation/sysfs-rules.txt
index 6049a2a84dda..5d8bc2cd250c 100644
--- a/Documentation/sysfs-rules.txt
+++ b/Documentation/sysfs-rules.txt
@@ -113,7 +113,7 @@ versions of the sysfs interface.
113 "devices" directory at /sys/subsystem/<name>/devices. 113 "devices" directory at /sys/subsystem/<name>/devices.
114 114
115 If /sys/subsystem exists, /sys/bus, /sys/class and /sys/block can be 115 If /sys/subsystem exists, /sys/bus, /sys/class and /sys/block can be
116 ignored. If it does not exist, you have always to scan all three 116 ignored. If it does not exist, you always have to scan all three
117 places, as the kernel is free to move a subsystem from one place to 117 places, as the kernel is free to move a subsystem from one place to
118 the other, as long as the devices are still reachable by the same 118 the other, as long as the devices are still reachable by the same
119 subsystem name. 119 subsystem name.
diff --git a/MAINTAINERS b/MAINTAINERS
index 2b349ba4add4..cf4abddfc8a4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -434,7 +434,7 @@ F: arch/alpha/
434 434
435AMD GEODE CS5536 USB DEVICE CONTROLLER DRIVER 435AMD GEODE CS5536 USB DEVICE CONTROLLER DRIVER
436P: Thomas Dahlmann 436P: Thomas Dahlmann
437M: thomas.dahlmann@amd.com 437M: dahlmann.thomas@arcor.de
438L: linux-geode@lists.infradead.org (moderated for non-subscribers) 438L: linux-geode@lists.infradead.org (moderated for non-subscribers)
439S: Supported 439S: Supported
440F: drivers/usb/gadget/amd5536udc.* 440F: drivers/usb/gadget/amd5536udc.*
@@ -624,6 +624,7 @@ M: paulius.zaleckas@teltonika.lt
624L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 624L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
625T: git git://gitorious.org/linux-gemini/mainline.git 625T: git git://gitorious.org/linux-gemini/mainline.git
626S: Maintained 626S: Maintained
627F: arch/arm/mach-gemini/
627 628
628ARM/EBSA110 MACHINE SUPPORT 629ARM/EBSA110 MACHINE SUPPORT
629P: Russell King 630P: Russell King
@@ -650,6 +651,7 @@ P: Paulius Zaleckas
650M: paulius.zaleckas@teltonika.lt 651M: paulius.zaleckas@teltonika.lt
651L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 652L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
652S: Maintained 653S: Maintained
654F: arch/arm/mm/*-fa*
653 655
654ARM/FOOTBRIDGE ARCHITECTURE 656ARM/FOOTBRIDGE ARCHITECTURE
655P: Russell King 657P: Russell King
@@ -1132,17 +1134,17 @@ F: fs/bfs/
1132F: include/linux/bfs_fs.h 1134F: include/linux/bfs_fs.h
1133 1135
1134BLACKFIN ARCHITECTURE 1136BLACKFIN ARCHITECTURE
1135P: Bryan Wu 1137P: Mike Frysinger
1136M: cooloney@kernel.org 1138M: vapier@gentoo.org
1137L: uclinux-dist-devel@blackfin.uclinux.org 1139L: uclinux-dist-devel@blackfin.uclinux.org
1138W: http://blackfin.uclinux.org 1140W: http://blackfin.uclinux.org
1139S: Supported 1141S: Supported
1140F: arch/blackfin/ 1142F: arch/blackfin/
1141 1143
1142BLACKFIN EMAC DRIVER 1144BLACKFIN EMAC DRIVER
1143P: Bryan Wu 1145P: Michael Hennerich
1144M: cooloney@kernel.org 1146M: michael.hennerich@analog.com
1145L: uclinux-dist-devel@blackfin.uclinux.org (subscribers-only) 1147L: uclinux-dist-devel@blackfin.uclinux.org
1146W: http://blackfin.uclinux.org 1148W: http://blackfin.uclinux.org
1147S: Supported 1149S: Supported
1148F: drivers/net/bfin_mac.* 1150F: drivers/net/bfin_mac.*
@@ -1150,7 +1152,7 @@ F: drivers/net/bfin_mac.*
1150BLACKFIN RTC DRIVER 1152BLACKFIN RTC DRIVER
1151P: Mike Frysinger 1153P: Mike Frysinger
1152M: vapier.adi@gmail.com 1154M: vapier.adi@gmail.com
1153L: uclinux-dist-devel@blackfin.uclinux.org (subscribers-only) 1155L: uclinux-dist-devel@blackfin.uclinux.org
1154W: http://blackfin.uclinux.org 1156W: http://blackfin.uclinux.org
1155S: Supported 1157S: Supported
1156F: drivers/rtc/rtc-bfin.c 1158F: drivers/rtc/rtc-bfin.c
@@ -1158,7 +1160,7 @@ F: drivers/rtc/rtc-bfin.c
1158BLACKFIN SERIAL DRIVER 1160BLACKFIN SERIAL DRIVER
1159P: Sonic Zhang 1161P: Sonic Zhang
1160M: sonic.zhang@analog.com 1162M: sonic.zhang@analog.com
1161L: uclinux-dist-devel@blackfin.uclinux.org (subscribers-only) 1163L: uclinux-dist-devel@blackfin.uclinux.org
1162W: http://blackfin.uclinux.org 1164W: http://blackfin.uclinux.org
1163S: Supported 1165S: Supported
1164F: drivers/serial/bfin_5xx.c 1166F: drivers/serial/bfin_5xx.c
@@ -1166,7 +1168,7 @@ F: drivers/serial/bfin_5xx.c
1166BLACKFIN WATCHDOG DRIVER 1168BLACKFIN WATCHDOG DRIVER
1167P: Mike Frysinger 1169P: Mike Frysinger
1168M: vapier.adi@gmail.com 1170M: vapier.adi@gmail.com
1169L: uclinux-dist-devel@blackfin.uclinux.org (subscribers-only) 1171L: uclinux-dist-devel@blackfin.uclinux.org
1170W: http://blackfin.uclinux.org 1172W: http://blackfin.uclinux.org
1171S: Supported 1173S: Supported
1172F: drivers/watchdog/bfin_wdt.c 1174F: drivers/watchdog/bfin_wdt.c
@@ -1174,7 +1176,7 @@ F: drivers/watchdog/bfin_wdt.c
1174BLACKFIN I2C TWI DRIVER 1176BLACKFIN I2C TWI DRIVER
1175P: Sonic Zhang 1177P: Sonic Zhang
1176M: sonic.zhang@analog.com 1178M: sonic.zhang@analog.com
1177L: uclinux-dist-devel@blackfin.uclinux.org (subscribers-only) 1179L: uclinux-dist-devel@blackfin.uclinux.org
1178W: http://blackfin.uclinux.org/ 1180W: http://blackfin.uclinux.org/
1179S: Supported 1181S: Supported
1180F: drivers/i2c/busses/i2c-bfin-twi.c 1182F: drivers/i2c/busses/i2c-bfin-twi.c
@@ -1431,6 +1433,14 @@ P: Russell King
1431M: linux@arm.linux.org.uk 1433M: linux@arm.linux.org.uk
1432F: include/linux/clk.h 1434F: include/linux/clk.h
1433 1435
1436CISCO FCOE HBA DRIVER
1437P: Abhijeet Joglekar
1438M: abjoglek@cisco.com
1439P: Joe Eykholt
1440M: jeykholt@cisco.com
1441L: linux-scsi@vger.kernel.org
1442S: Supported
1443
1434CODA FILE SYSTEM 1444CODA FILE SYSTEM
1435P: Jan Harkes 1445P: Jan Harkes
1436M: jaharkes@cs.cmu.edu 1446M: jaharkes@cs.cmu.edu
@@ -1532,6 +1542,13 @@ W: http://www.fi.muni.cz/~kas/cosa/
1532S: Maintained 1542S: Maintained
1533F: drivers/net/wan/cosa* 1543F: drivers/net/wan/cosa*
1534 1544
1545CPMAC ETHERNET DRIVER
1546P: Florian Fainelli
1547M: florian@openwrt.org
1548L: netdev@vger.kernel.org
1549S: Maintained
1550F: drivers/net/cpmac.c
1551
1535CPU FREQUENCY DRIVERS 1552CPU FREQUENCY DRIVERS
1536P: Dave Jones 1553P: Dave Jones
1537M: davej@redhat.com 1554M: davej@redhat.com
@@ -1963,8 +1980,8 @@ F: include/linux/edac.h
1963 1980
1964EDAC-E752X 1981EDAC-E752X
1965P: Mark Gross 1982P: Mark Gross
1966P: Doug Thompson
1967M: mark.gross@intel.com 1983M: mark.gross@intel.com
1984P: Doug Thompson
1968M: dougthompson@xmission.com 1985M: dougthompson@xmission.com
1969L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1986L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1970W: bluesmoke.sourceforge.net 1987W: bluesmoke.sourceforge.net
@@ -2241,7 +2258,7 @@ P: Li Yang
2241M: leoli@freescale.com 2258M: leoli@freescale.com
2242P: Zhang Wei 2259P: Zhang Wei
2243M: zw@zh-kernel.org 2260M: zw@zh-kernel.org
2244L: linuxppc-embedded@ozlabs.org 2261L: linuxppc-dev@ozlabs.org
2245L: linux-kernel@vger.kernel.org 2262L: linux-kernel@vger.kernel.org
2246S: Maintained 2263S: Maintained
2247F: drivers/dma/fsldma.* 2264F: drivers/dma/fsldma.*
@@ -5579,6 +5596,14 @@ M: ian@mnementh.co.uk
5579S: Maintained 5596S: Maintained
5580F: drivers/mmc/host/tmio_mmc.* 5597F: drivers/mmc/host/tmio_mmc.*
5581 5598
5599TMPFS (SHMEM FILESYSTEM)
5600P: Hugh Dickins
5601M: hugh.dickins@tiscali.co.uk
5602L: linux-mm@kvack.org
5603S: Maintained
5604F: include/linux/shmem_fs.h
5605F: mm/shmem.c
5606
5582TPM DEVICE DRIVER 5607TPM DEVICE DRIVER
5583P: Debora Velarde 5608P: Debora Velarde
5584M: debora@linux.vnet.ibm.com 5609M: debora@linux.vnet.ibm.com
diff --git a/Makefile b/Makefile
index 9b2b58c3b3db..03373bb703ca 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 30 3SUBLEVEL = 30
4EXTRAVERSION = -rc5 4EXTRAVERSION =
5NAME = Vindictive Armadillo 5NAME = Man-Eating Seals of Antiquity
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"
@@ -533,7 +533,7 @@ endif
533 533
534include $(srctree)/arch/$(SRCARCH)/Makefile 534include $(srctree)/arch/$(SRCARCH)/Makefile
535 535
536ifneq (CONFIG_FRAME_WARN,0) 536ifneq ($(CONFIG_FRAME_WARN),0)
537KBUILD_CFLAGS += $(call cc-option,-Wframe-larger-than=${CONFIG_FRAME_WARN}) 537KBUILD_CFLAGS += $(call cc-option,-Wframe-larger-than=${CONFIG_FRAME_WARN})
538endif 538endif
539 539
diff --git a/arch/alpha/include/asm/percpu.h b/arch/alpha/include/asm/percpu.h
index e9e0bb5a23bf..06c5c7a4afd3 100644
--- a/arch/alpha/include/asm/percpu.h
+++ b/arch/alpha/include/asm/percpu.h
@@ -1,7 +1,9 @@
1#ifndef __ALPHA_PERCPU_H 1#ifndef __ALPHA_PERCPU_H
2#define __ALPHA_PERCPU_H 2#define __ALPHA_PERCPU_H
3
3#include <linux/compiler.h> 4#include <linux/compiler.h>
4#include <linux/threads.h> 5#include <linux/threads.h>
6#include <linux/percpu-defs.h>
5 7
6/* 8/*
7 * Determine the real variable name from the name visible in the 9 * Determine the real variable name from the name visible in the
@@ -73,6 +75,28 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
73 75
74#endif /* SMP */ 76#endif /* SMP */
75 77
76#include <asm-generic/percpu.h> 78#ifdef CONFIG_SMP
79#define PER_CPU_BASE_SECTION ".data.percpu"
80#else
81#define PER_CPU_BASE_SECTION ".data"
82#endif
83
84#ifdef CONFIG_SMP
85
86#ifdef MODULE
87#define PER_CPU_SHARED_ALIGNED_SECTION ""
88#else
89#define PER_CPU_SHARED_ALIGNED_SECTION ".shared_aligned"
90#endif
91#define PER_CPU_FIRST_SECTION ".first"
92
93#else
94
95#define PER_CPU_SHARED_ALIGNED_SECTION ""
96#define PER_CPU_FIRST_SECTION ""
97
98#endif
99
100#define PER_CPU_ATTRIBUTES
77 101
78#endif /* __ALPHA_PERCPU_H */ 102#endif /* __ALPHA_PERCPU_H */
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e60ec54df334..9d02cdb15b23 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -273,6 +273,7 @@ config ARCH_EP93XX
273 select HAVE_CLK 273 select HAVE_CLK
274 select COMMON_CLKDEV 274 select COMMON_CLKDEV
275 select ARCH_REQUIRE_GPIOLIB 275 select ARCH_REQUIRE_GPIOLIB
276 select ARCH_HAS_HOLES_MEMORYMODEL
276 help 277 help
277 This enables support for the Cirrus EP93xx series of CPUs. 278 This enables support for the Cirrus EP93xx series of CPUs.
278 279
@@ -976,10 +977,9 @@ config OABI_COMPAT
976 UNPREDICTABLE (in fact it can be predicted that it won't work 977 UNPREDICTABLE (in fact it can be predicted that it won't work
977 at all). If in doubt say Y. 978 at all). If in doubt say Y.
978 979
979config ARCH_FLATMEM_HAS_HOLES 980config ARCH_HAS_HOLES_MEMORYMODEL
980 bool 981 bool
981 default y 982 default n
982 depends on FLATMEM
983 983
984# Discontigmem is deprecated 984# Discontigmem is deprecated
985config ARCH_DISCONTIGMEM_ENABLE 985config ARCH_DISCONTIGMEM_ENABLE
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index c6884ba1d5ed..3e1714c6523f 100644
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -253,9 +253,9 @@ void __cpuinit gic_cpu_init(unsigned int gic_nr, void __iomem *base)
253} 253}
254 254
255#ifdef CONFIG_SMP 255#ifdef CONFIG_SMP
256void gic_raise_softirq(cpumask_t cpumask, unsigned int irq) 256void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
257{ 257{
258 unsigned long map = *cpus_addr(cpumask); 258 unsigned long map = *cpus_addr(*mask);
259 259
260 /* this always happens on GIC0 */ 260 /* this always happens on GIC0 */
261 writel(map << 16 | irq, gic_data[0].dist_base + GIC_DIST_SOFTINT); 261 writel(map << 16 | irq, gic_data[0].dist_base + GIC_DIST_SOFTINT);
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
index 6116e4893c0a..15f8a092b700 100644
--- a/arch/arm/include/asm/assembler.h
+++ b/arch/arm/include/asm/assembler.h
@@ -114,3 +114,16 @@
114 .align 3; \ 114 .align 3; \
115 .long 9999b,9001f; \ 115 .long 9999b,9001f; \
116 .previous 116 .previous
117
118/*
119 * SMP data memory barrier
120 */
121 .macro smp_dmb
122#ifdef CONFIG_SMP
123#if __LINUX_ARM_ARCH__ >= 7
124 dmb
125#elif __LINUX_ARM_ARCH__ == 6
126 mcr p15, 0, r0, c7, c10, 5 @ dmb
127#endif
128#endif
129 .endm
diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
index ee99723b3a6c..16b52f397983 100644
--- a/arch/arm/include/asm/atomic.h
+++ b/arch/arm/include/asm/atomic.h
@@ -44,11 +44,29 @@ static inline void atomic_set(atomic_t *v, int i)
44 : "cc"); 44 : "cc");
45} 45}
46 46
47static inline void atomic_add(int i, atomic_t *v)
48{
49 unsigned long tmp;
50 int result;
51
52 __asm__ __volatile__("@ atomic_add\n"
53"1: ldrex %0, [%2]\n"
54" add %0, %0, %3\n"
55" strex %1, %0, [%2]\n"
56" teq %1, #0\n"
57" bne 1b"
58 : "=&r" (result), "=&r" (tmp)
59 : "r" (&v->counter), "Ir" (i)
60 : "cc");
61}
62
47static inline int atomic_add_return(int i, atomic_t *v) 63static inline int atomic_add_return(int i, atomic_t *v)
48{ 64{
49 unsigned long tmp; 65 unsigned long tmp;
50 int result; 66 int result;
51 67
68 smp_mb();
69
52 __asm__ __volatile__("@ atomic_add_return\n" 70 __asm__ __volatile__("@ atomic_add_return\n"
53"1: ldrex %0, [%2]\n" 71"1: ldrex %0, [%2]\n"
54" add %0, %0, %3\n" 72" add %0, %0, %3\n"
@@ -59,14 +77,34 @@ static inline int atomic_add_return(int i, atomic_t *v)
59 : "r" (&v->counter), "Ir" (i) 77 : "r" (&v->counter), "Ir" (i)
60 : "cc"); 78 : "cc");
61 79
80 smp_mb();
81
62 return result; 82 return result;
63} 83}
64 84
85static inline void atomic_sub(int i, atomic_t *v)
86{
87 unsigned long tmp;
88 int result;
89
90 __asm__ __volatile__("@ atomic_sub\n"
91"1: ldrex %0, [%2]\n"
92" sub %0, %0, %3\n"
93" strex %1, %0, [%2]\n"
94" teq %1, #0\n"
95" bne 1b"
96 : "=&r" (result), "=&r" (tmp)
97 : "r" (&v->counter), "Ir" (i)
98 : "cc");
99}
100
65static inline int atomic_sub_return(int i, atomic_t *v) 101static inline int atomic_sub_return(int i, atomic_t *v)
66{ 102{
67 unsigned long tmp; 103 unsigned long tmp;
68 int result; 104 int result;
69 105
106 smp_mb();
107
70 __asm__ __volatile__("@ atomic_sub_return\n" 108 __asm__ __volatile__("@ atomic_sub_return\n"
71"1: ldrex %0, [%2]\n" 109"1: ldrex %0, [%2]\n"
72" sub %0, %0, %3\n" 110" sub %0, %0, %3\n"
@@ -77,6 +115,8 @@ static inline int atomic_sub_return(int i, atomic_t *v)
77 : "r" (&v->counter), "Ir" (i) 115 : "r" (&v->counter), "Ir" (i)
78 : "cc"); 116 : "cc");
79 117
118 smp_mb();
119
80 return result; 120 return result;
81} 121}
82 122
@@ -84,6 +124,8 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
84{ 124{
85 unsigned long oldval, res; 125 unsigned long oldval, res;
86 126
127 smp_mb();
128
87 do { 129 do {
88 __asm__ __volatile__("@ atomic_cmpxchg\n" 130 __asm__ __volatile__("@ atomic_cmpxchg\n"
89 "ldrex %1, [%2]\n" 131 "ldrex %1, [%2]\n"
@@ -95,6 +137,8 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
95 : "cc"); 137 : "cc");
96 } while (res); 138 } while (res);
97 139
140 smp_mb();
141
98 return oldval; 142 return oldval;
99} 143}
100 144
@@ -135,6 +179,7 @@ static inline int atomic_add_return(int i, atomic_t *v)
135 179
136 return val; 180 return val;
137} 181}
182#define atomic_add(i, v) (void) atomic_add_return(i, v)
138 183
139static inline int atomic_sub_return(int i, atomic_t *v) 184static inline int atomic_sub_return(int i, atomic_t *v)
140{ 185{
@@ -148,6 +193,7 @@ static inline int atomic_sub_return(int i, atomic_t *v)
148 193
149 return val; 194 return val;
150} 195}
196#define atomic_sub(i, v) (void) atomic_sub_return(i, v)
151 197
152static inline int atomic_cmpxchg(atomic_t *v, int old, int new) 198static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
153{ 199{
@@ -187,10 +233,8 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
187} 233}
188#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) 234#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
189 235
190#define atomic_add(i, v) (void) atomic_add_return(i, v) 236#define atomic_inc(v) atomic_add(1, v)
191#define atomic_inc(v) (void) atomic_add_return(1, v) 237#define atomic_dec(v) atomic_sub(1, v)
192#define atomic_sub(i, v) (void) atomic_sub_return(i, v)
193#define atomic_dec(v) (void) atomic_sub_return(1, v)
194 238
195#define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0) 239#define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0)
196#define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0) 240#define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0)
@@ -200,11 +244,10 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
200 244
201#define atomic_add_negative(i,v) (atomic_add_return(i, v) < 0) 245#define atomic_add_negative(i,v) (atomic_add_return(i, v) < 0)
202 246
203/* Atomic operations are already serializing on ARM */ 247#define smp_mb__before_atomic_dec() smp_mb()
204#define smp_mb__before_atomic_dec() barrier() 248#define smp_mb__after_atomic_dec() smp_mb()
205#define smp_mb__after_atomic_dec() barrier() 249#define smp_mb__before_atomic_inc() smp_mb()
206#define smp_mb__before_atomic_inc() barrier() 250#define smp_mb__after_atomic_inc() smp_mb()
207#define smp_mb__after_atomic_inc() barrier()
208 251
209#include <asm-generic/atomic.h> 252#include <asm-generic/atomic.h>
210#endif 253#endif
diff --git a/arch/arm/include/asm/cache.h b/arch/arm/include/asm/cache.h
index cb7a9e97fd7e..feaa75f0013e 100644
--- a/arch/arm/include/asm/cache.h
+++ b/arch/arm/include/asm/cache.h
@@ -7,4 +7,20 @@
7#define L1_CACHE_SHIFT 5 7#define L1_CACHE_SHIFT 5
8#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) 8#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
9 9
10/*
11 * Memory returned by kmalloc() may be used for DMA, so we must make
12 * sure that all such allocations are cache aligned. Otherwise,
13 * unrelated code may cause parts of the buffer to be read into the
14 * cache before the transfer is done, causing old data to be seen by
15 * the CPU.
16 */
17#define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES
18
19/*
20 * With EABI on ARMv5 and above we must have 64-bit aligned slab pointers.
21 */
22#if defined(CONFIG_AEABI) && (__LINUX_ARM_ARCH__ >= 5)
23#define ARCH_SLAB_MINALIGN 8
24#endif
25
10#endif 26#endif
diff --git a/arch/arm/include/asm/flat.h b/arch/arm/include/asm/flat.h
index 1d77e51907f6..59426a4595c9 100644
--- a/arch/arm/include/asm/flat.h
+++ b/arch/arm/include/asm/flat.h
@@ -5,9 +5,6 @@
5#ifndef __ARM_FLAT_H__ 5#ifndef __ARM_FLAT_H__
6#define __ARM_FLAT_H__ 6#define __ARM_FLAT_H__
7 7
8/* An odd number of words will be pushed after this alignment, so
9 deliberately misalign the value. */
10#define flat_stack_align(sp) sp = (void *)(((unsigned long)(sp) - 4) | 4)
11#define flat_argvp_envp_on_stack() 1 8#define flat_argvp_envp_on_stack() 1
12#define flat_old_ram_flag(flags) (flags) 9#define flat_old_ram_flag(flags) (flags)
13#define flat_reloc_valid(reloc, size) ((reloc) <= (size)) 10#define flat_reloc_valid(reloc, size) ((reloc) <= (size))
diff --git a/arch/arm/include/asm/hardware/gic.h b/arch/arm/include/asm/hardware/gic.h
index 4924914af188..7f34333bb545 100644
--- a/arch/arm/include/asm/hardware/gic.h
+++ b/arch/arm/include/asm/hardware/gic.h
@@ -36,7 +36,7 @@
36void gic_dist_init(unsigned int gic_nr, void __iomem *base, unsigned int irq_start); 36void gic_dist_init(unsigned int gic_nr, void __iomem *base, unsigned int irq_start);
37void gic_cpu_init(unsigned int gic_nr, void __iomem *base); 37void gic_cpu_init(unsigned int gic_nr, void __iomem *base);
38void gic_cascade_irq(unsigned int gic_nr, unsigned int irq); 38void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);
39void gic_raise_softirq(cpumask_t cpumask, unsigned int irq); 39void gic_raise_softirq(const struct cpumask *mask, unsigned int irq);
40#endif 40#endif
41 41
42#endif 42#endif
diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h
index e6eb8a67b807..7b522770f29d 100644
--- a/arch/arm/include/asm/page.h
+++ b/arch/arm/include/asm/page.h
@@ -202,13 +202,6 @@ typedef struct page *pgtable_t;
202 (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \ 202 (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
203 VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) 203 VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
204 204
205/*
206 * With EABI on ARMv5 and above we must have 64-bit aligned slab pointers.
207 */
208#if defined(CONFIG_AEABI) && (__LINUX_ARM_ARCH__ >= 5)
209#define ARCH_SLAB_MINALIGN 8
210#endif
211
212#include <asm-generic/page.h> 205#include <asm-generic/page.h>
213 206
214#endif 207#endif
diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
index fad70da5911d..5995935338e1 100644
--- a/arch/arm/include/asm/smp.h
+++ b/arch/arm/include/asm/smp.h
@@ -53,17 +53,12 @@ extern void smp_store_cpu_info(unsigned int cpuid);
53/* 53/*
54 * Raise an IPI cross call on CPUs in callmap. 54 * Raise an IPI cross call on CPUs in callmap.
55 */ 55 */
56extern void smp_cross_call(cpumask_t callmap); 56extern void smp_cross_call(const struct cpumask *mask);
57
58/*
59 * Broadcast a timer interrupt to the other CPUs.
60 */
61extern void smp_send_timer(void);
62 57
63/* 58/*
64 * Broadcast a clock event to other CPUs. 59 * Broadcast a clock event to other CPUs.
65 */ 60 */
66extern void smp_timer_broadcast(cpumask_t mask); 61extern void smp_timer_broadcast(const struct cpumask *mask);
67 62
68/* 63/*
69 * Boot a secondary CPU, and assign it the specified idle task. 64 * Boot a secondary CPU, and assign it the specified idle task.
@@ -102,7 +97,8 @@ extern int platform_cpu_kill(unsigned int cpu);
102extern void platform_cpu_enable(unsigned int cpu); 97extern void platform_cpu_enable(unsigned int cpu);
103 98
104extern void arch_send_call_function_single_ipi(int cpu); 99extern void arch_send_call_function_single_ipi(int cpu);
105extern void arch_send_call_function_ipi(cpumask_t mask); 100extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
101#define arch_send_call_function_ipi_mask arch_send_call_function_ipi_mask
106 102
107/* 103/*
108 * Local timer interrupt handling function (can be IPI'ed). 104 * Local timer interrupt handling function (can be IPI'ed).
diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
index bd4dc8ed53d5..d65b2f5bf41f 100644
--- a/arch/arm/include/asm/system.h
+++ b/arch/arm/include/asm/system.h
@@ -248,6 +248,8 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
248 unsigned int tmp; 248 unsigned int tmp;
249#endif 249#endif
250 250
251 smp_mb();
252
251 switch (size) { 253 switch (size) {
252#if __LINUX_ARM_ARCH__ >= 6 254#if __LINUX_ARM_ARCH__ >= 6
253 case 1: 255 case 1:
@@ -307,6 +309,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
307 __bad_xchg(ptr, size), ret = 0; 309 __bad_xchg(ptr, size), ret = 0;
308 break; 310 break;
309 } 311 }
312 smp_mb();
310 313
311 return ret; 314 return ret;
312} 315}
@@ -316,6 +319,12 @@ extern void enable_hlt(void);
316 319
317#include <asm-generic/cmpxchg-local.h> 320#include <asm-generic/cmpxchg-local.h>
318 321
322#if __LINUX_ARM_ARCH__ < 6
323
324#ifdef CONFIG_SMP
325#error "SMP is not supported on this platform"
326#endif
327
319/* 328/*
320 * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make 329 * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make
321 * them available. 330 * them available.
@@ -329,6 +338,173 @@ extern void enable_hlt(void);
329#include <asm-generic/cmpxchg.h> 338#include <asm-generic/cmpxchg.h>
330#endif 339#endif
331 340
341#else /* __LINUX_ARM_ARCH__ >= 6 */
342
343extern void __bad_cmpxchg(volatile void *ptr, int size);
344
345/*
346 * cmpxchg only support 32-bits operands on ARMv6.
347 */
348
349static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
350 unsigned long new, int size)
351{
352 unsigned long oldval, res;
353
354 switch (size) {
355#ifdef CONFIG_CPU_32v6K
356 case 1:
357 do {
358 asm volatile("@ __cmpxchg1\n"
359 " ldrexb %1, [%2]\n"
360 " mov %0, #0\n"
361 " teq %1, %3\n"
362 " strexbeq %0, %4, [%2]\n"
363 : "=&r" (res), "=&r" (oldval)
364 : "r" (ptr), "Ir" (old), "r" (new)
365 : "memory", "cc");
366 } while (res);
367 break;
368 case 2:
369 do {
370 asm volatile("@ __cmpxchg1\n"
371 " ldrexh %1, [%2]\n"
372 " mov %0, #0\n"
373 " teq %1, %3\n"
374 " strexheq %0, %4, [%2]\n"
375 : "=&r" (res), "=&r" (oldval)
376 : "r" (ptr), "Ir" (old), "r" (new)
377 : "memory", "cc");
378 } while (res);
379 break;
380#endif /* CONFIG_CPU_32v6K */
381 case 4:
382 do {
383 asm volatile("@ __cmpxchg4\n"
384 " ldrex %1, [%2]\n"
385 " mov %0, #0\n"
386 " teq %1, %3\n"
387 " strexeq %0, %4, [%2]\n"
388 : "=&r" (res), "=&r" (oldval)
389 : "r" (ptr), "Ir" (old), "r" (new)
390 : "memory", "cc");
391 } while (res);
392 break;
393 default:
394 __bad_cmpxchg(ptr, size);
395 oldval = 0;
396 }
397
398 return oldval;
399}
400
401static inline unsigned long __cmpxchg_mb(volatile void *ptr, unsigned long old,
402 unsigned long new, int size)
403{
404 unsigned long ret;
405
406 smp_mb();
407 ret = __cmpxchg(ptr, old, new, size);
408 smp_mb();
409
410 return ret;
411}
412
413#define cmpxchg(ptr,o,n) \
414 ((__typeof__(*(ptr)))__cmpxchg_mb((ptr), \
415 (unsigned long)(o), \
416 (unsigned long)(n), \
417 sizeof(*(ptr))))
418
419static inline unsigned long __cmpxchg_local(volatile void *ptr,
420 unsigned long old,
421 unsigned long new, int size)
422{
423 unsigned long ret;
424
425 switch (size) {
426#ifndef CONFIG_CPU_32v6K
427 case 1:
428 case 2:
429 ret = __cmpxchg_local_generic(ptr, old, new, size);
430 break;
431#endif /* !CONFIG_CPU_32v6K */
432 default:
433 ret = __cmpxchg(ptr, old, new, size);
434 }
435
436 return ret;
437}
438
439#define cmpxchg_local(ptr,o,n) \
440 ((__typeof__(*(ptr)))__cmpxchg_local((ptr), \
441 (unsigned long)(o), \
442 (unsigned long)(n), \
443 sizeof(*(ptr))))
444
445#ifdef CONFIG_CPU_32v6K
446
447/*
448 * Note : ARMv7-M (currently unsupported by Linux) does not support
449 * ldrexd/strexd. If ARMv7-M is ever supported by the Linux kernel, it should
450 * not be allowed to use __cmpxchg64.
451 */
452static inline unsigned long long __cmpxchg64(volatile void *ptr,
453 unsigned long long old,
454 unsigned long long new)
455{
456 register unsigned long long oldval asm("r0");
457 register unsigned long long __old asm("r2") = old;
458 register unsigned long long __new asm("r4") = new;
459 unsigned long res;
460
461 do {
462 asm volatile(
463 " @ __cmpxchg8\n"
464 " ldrexd %1, %H1, [%2]\n"
465 " mov %0, #0\n"
466 " teq %1, %3\n"
467 " teqeq %H1, %H3\n"
468 " strexdeq %0, %4, %H4, [%2]\n"
469 : "=&r" (res), "=&r" (oldval)
470 : "r" (ptr), "Ir" (__old), "r" (__new)
471 : "memory", "cc");
472 } while (res);
473
474 return oldval;
475}
476
477static inline unsigned long long __cmpxchg64_mb(volatile void *ptr,
478 unsigned long long old,
479 unsigned long long new)
480{
481 unsigned long long ret;
482
483 smp_mb();
484 ret = __cmpxchg64(ptr, old, new);
485 smp_mb();
486
487 return ret;
488}
489
490#define cmpxchg64(ptr,o,n) \
491 ((__typeof__(*(ptr)))__cmpxchg64_mb((ptr), \
492 (unsigned long long)(o), \
493 (unsigned long long)(n)))
494
495#define cmpxchg64_local(ptr,o,n) \
496 ((__typeof__(*(ptr)))__cmpxchg64((ptr), \
497 (unsigned long long)(o), \
498 (unsigned long long)(n)))
499
500#else /* !CONFIG_CPU_32v6K */
501
502#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
503
504#endif /* CONFIG_CPU_32v6K */
505
506#endif /* __LINUX_ARM_ARCH__ >= 6 */
507
332#endif /* __ASSEMBLY__ */ 508#endif /* __ASSEMBLY__ */
333 509
334#define arch_align_stack(x) (x) 510#define arch_align_stack(x) (x)
diff --git a/arch/arm/kernel/elf.c b/arch/arm/kernel/elf.c
index d4a0da1e48f4..950391f194c4 100644
--- a/arch/arm/kernel/elf.c
+++ b/arch/arm/kernel/elf.c
@@ -78,6 +78,15 @@ int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
78 return 1; 78 return 1;
79 if (cpu_architecture() < CPU_ARCH_ARMv6) 79 if (cpu_architecture() < CPU_ARCH_ARMv6)
80 return 1; 80 return 1;
81#if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT)
82 /*
83 * If we have support for OABI programs, we can never allow NX
84 * support - our signal syscall restart mechanism relies upon
85 * being able to execute code placed on the user stack.
86 */
87 return 1;
88#else
81 return 0; 89 return 0;
90#endif
82} 91}
83EXPORT_SYMBOL(arm_elf_read_implies_exec); 92EXPORT_SYMBOL(arm_elf_read_implies_exec);
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index d662a2f1fd85..83b1da6b7baa 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -815,10 +815,7 @@ __kuser_helper_start:
815 */ 815 */
816 816
817__kuser_memory_barrier: @ 0xffff0fa0 817__kuser_memory_barrier: @ 0xffff0fa0
818 818 smp_dmb
819#if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_SMP)
820 mcr p15, 0, r0, c7, c10, 5 @ dmb
821#endif
822 usr_ret lr 819 usr_ret lr
823 820
824 .align 5 821 .align 5
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 7801aac3c043..6014dfd22af4 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -326,14 +326,14 @@ void __init smp_prepare_boot_cpu(void)
326 per_cpu(cpu_data, cpu).idle = current; 326 per_cpu(cpu_data, cpu).idle = current;
327} 327}
328 328
329static void send_ipi_message(cpumask_t callmap, enum ipi_msg_type msg) 329static void send_ipi_message(const struct cpumask *mask, enum ipi_msg_type msg)
330{ 330{
331 unsigned long flags; 331 unsigned long flags;
332 unsigned int cpu; 332 unsigned int cpu;
333 333
334 local_irq_save(flags); 334 local_irq_save(flags);
335 335
336 for_each_cpu_mask(cpu, callmap) { 336 for_each_cpu(cpu, mask) {
337 struct ipi_data *ipi = &per_cpu(ipi_data, cpu); 337 struct ipi_data *ipi = &per_cpu(ipi_data, cpu);
338 338
339 spin_lock(&ipi->lock); 339 spin_lock(&ipi->lock);
@@ -344,19 +344,19 @@ static void send_ipi_message(cpumask_t callmap, enum ipi_msg_type msg)
344 /* 344 /*
345 * Call the platform specific cross-CPU call function. 345 * Call the platform specific cross-CPU call function.
346 */ 346 */
347 smp_cross_call(callmap); 347 smp_cross_call(mask);
348 348
349 local_irq_restore(flags); 349 local_irq_restore(flags);
350} 350}
351 351
352void arch_send_call_function_ipi(cpumask_t mask) 352void arch_send_call_function_ipi_mask(const struct cpumask *mask)
353{ 353{
354 send_ipi_message(mask, IPI_CALL_FUNC); 354 send_ipi_message(mask, IPI_CALL_FUNC);
355} 355}
356 356
357void arch_send_call_function_single_ipi(int cpu) 357void arch_send_call_function_single_ipi(int cpu)
358{ 358{
359 send_ipi_message(cpumask_of_cpu(cpu), IPI_CALL_FUNC_SINGLE); 359 send_ipi_message(cpumask_of(cpu), IPI_CALL_FUNC_SINGLE);
360} 360}
361 361
362void show_ipi_list(struct seq_file *p) 362void show_ipi_list(struct seq_file *p)
@@ -498,17 +498,10 @@ asmlinkage void __exception do_IPI(struct pt_regs *regs)
498 498
499void smp_send_reschedule(int cpu) 499void smp_send_reschedule(int cpu)
500{ 500{
501 send_ipi_message(cpumask_of_cpu(cpu), IPI_RESCHEDULE); 501 send_ipi_message(cpumask_of(cpu), IPI_RESCHEDULE);
502} 502}
503 503
504void smp_send_timer(void) 504void smp_timer_broadcast(const struct cpumask *mask)
505{
506 cpumask_t mask = cpu_online_map;
507 cpu_clear(smp_processor_id(), mask);
508 send_ipi_message(mask, IPI_TIMER);
509}
510
511void smp_timer_broadcast(cpumask_t mask)
512{ 505{
513 send_ipi_message(mask, IPI_TIMER); 506 send_ipi_message(mask, IPI_TIMER);
514} 507}
@@ -517,7 +510,7 @@ void smp_send_stop(void)
517{ 510{
518 cpumask_t mask = cpu_online_map; 511 cpumask_t mask = cpu_online_map;
519 cpu_clear(smp_processor_id(), mask); 512 cpu_clear(smp_processor_id(), mask);
520 send_ipi_message(mask, IPI_CPU_STOP); 513 send_ipi_message(&mask, IPI_CPU_STOP);
521} 514}
522 515
523/* 516/*
@@ -528,20 +521,17 @@ int setup_profiling_timer(unsigned int multiplier)
528 return -EINVAL; 521 return -EINVAL;
529} 522}
530 523
531static int 524static void
532on_each_cpu_mask(void (*func)(void *), void *info, int wait, cpumask_t mask) 525on_each_cpu_mask(void (*func)(void *), void *info, int wait,
526 const struct cpumask *mask)
533{ 527{
534 int ret = 0;
535
536 preempt_disable(); 528 preempt_disable();
537 529
538 ret = smp_call_function_mask(mask, func, info, wait); 530 smp_call_function_many(mask, func, info, wait);
539 if (cpu_isset(smp_processor_id(), mask)) 531 if (cpumask_test_cpu(smp_processor_id(), mask))
540 func(info); 532 func(info);
541 533
542 preempt_enable(); 534 preempt_enable();
543
544 return ret;
545} 535}
546 536
547/**********************************************************************/ 537/**********************************************************************/
@@ -602,20 +592,17 @@ void flush_tlb_all(void)
602 592
603void flush_tlb_mm(struct mm_struct *mm) 593void flush_tlb_mm(struct mm_struct *mm)
604{ 594{
605 cpumask_t mask = mm->cpu_vm_mask; 595 on_each_cpu_mask(ipi_flush_tlb_mm, mm, 1, &mm->cpu_vm_mask);
606
607 on_each_cpu_mask(ipi_flush_tlb_mm, mm, 1, mask);
608} 596}
609 597
610void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) 598void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr)
611{ 599{
612 cpumask_t mask = vma->vm_mm->cpu_vm_mask;
613 struct tlb_args ta; 600 struct tlb_args ta;
614 601
615 ta.ta_vma = vma; 602 ta.ta_vma = vma;
616 ta.ta_start = uaddr; 603 ta.ta_start = uaddr;
617 604
618 on_each_cpu_mask(ipi_flush_tlb_page, &ta, 1, mask); 605 on_each_cpu_mask(ipi_flush_tlb_page, &ta, 1, &vma->vm_mm->cpu_vm_mask);
619} 606}
620 607
621void flush_tlb_kernel_page(unsigned long kaddr) 608void flush_tlb_kernel_page(unsigned long kaddr)
@@ -630,14 +617,13 @@ void flush_tlb_kernel_page(unsigned long kaddr)
630void flush_tlb_range(struct vm_area_struct *vma, 617void flush_tlb_range(struct vm_area_struct *vma,
631 unsigned long start, unsigned long end) 618 unsigned long start, unsigned long end)
632{ 619{
633 cpumask_t mask = vma->vm_mm->cpu_vm_mask;
634 struct tlb_args ta; 620 struct tlb_args ta;
635 621
636 ta.ta_vma = vma; 622 ta.ta_vma = vma;
637 ta.ta_start = start; 623 ta.ta_start = start;
638 ta.ta_end = end; 624 ta.ta_end = end;
639 625
640 on_each_cpu_mask(ipi_flush_tlb_range, &ta, 1, mask); 626 on_each_cpu_mask(ipi_flush_tlb_range, &ta, 1, &vma->vm_mm->cpu_vm_mask);
641} 627}
642 628
643void flush_tlb_kernel_range(unsigned long start, unsigned long end) 629void flush_tlb_kernel_range(unsigned long start, unsigned long end)
diff --git a/arch/arm/lib/bitops.h b/arch/arm/lib/bitops.h
index 2e787d40d599..c7f2627385e7 100644
--- a/arch/arm/lib/bitops.h
+++ b/arch/arm/lib/bitops.h
@@ -18,12 +18,14 @@
18 mov r2, #1 18 mov r2, #1
19 add r1, r1, r0, lsr #3 @ Get byte offset 19 add r1, r1, r0, lsr #3 @ Get byte offset
20 mov r3, r2, lsl r3 @ create mask 20 mov r3, r2, lsl r3 @ create mask
21 smp_dmb
211: ldrexb r2, [r1] 221: ldrexb r2, [r1]
22 ands r0, r2, r3 @ save old value of bit 23 ands r0, r2, r3 @ save old value of bit
23 \instr r2, r2, r3 @ toggle bit 24 \instr r2, r2, r3 @ toggle bit
24 strexb ip, r2, [r1] 25 strexb ip, r2, [r1]
25 cmp ip, #0 26 cmp ip, #0
26 bne 1b 27 bne 1b
28 smp_dmb
27 cmp r0, #0 29 cmp r0, #0
28 movne r0, #1 30 movne r0, #1
292: mov pc, lr 312: mov pc, lr
diff --git a/arch/arm/mach-davinci/include/mach/asp.h b/arch/arm/mach-davinci/include/mach/asp.h
new file mode 100644
index 000000000000..e0abc437d796
--- /dev/null
+++ b/arch/arm/mach-davinci/include/mach/asp.h
@@ -0,0 +1,25 @@
1/*
2 * <mach/asp.h> - DaVinci Audio Serial Port support
3 */
4#ifndef __ASM_ARCH_DAVINCI_ASP_H
5#define __ASM_ARCH_DAVINCI_ASP_H
6
7#include <mach/irqs.h>
8
9/* Bases of register banks */
10#define DAVINCI_ASP0_BASE 0x01E02000
11#define DAVINCI_ASP1_BASE 0x01E04000
12
13/* EDMA channels */
14#define DAVINCI_DMA_ASP0_TX 2
15#define DAVINCI_DMA_ASP0_RX 3
16#define DAVINCI_DMA_ASP1_TX 8
17#define DAVINCI_DMA_ASP1_RX 9
18
19/* Interrupts */
20#define DAVINCI_ASP0_RX_INT IRQ_MBRINT
21#define DAVINCI_ASP0_TX_INT IRQ_MBXINT
22#define DAVINCI_ASP1_RX_INT IRQ_MBRINT
23#define DAVINCI_ASP1_TX_INT IRQ_MBXINT
24
25#endif /* __ASM_ARCH_DAVINCI_ASP_H */
diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c
index e8ebeaea6c48..b2eede5531c8 100644
--- a/arch/arm/mach-ep93xx/clock.c
+++ b/arch/arm/mach-ep93xx/clock.c
@@ -21,15 +21,50 @@
21#include <asm/div64.h> 21#include <asm/div64.h>
22#include <mach/hardware.h> 22#include <mach/hardware.h>
23 23
24
25/*
26 * The EP93xx has two external crystal oscillators. To generate the
27 * required high-frequency clocks, the processor uses two phase-locked-
28 * loops (PLLs) to multiply the incoming external clock signal to much
29 * higher frequencies that are then divided down by programmable dividers
30 * to produce the needed clocks. The PLLs operate independently of one
31 * another.
32 */
33#define EP93XX_EXT_CLK_RATE 14745600
34#define EP93XX_EXT_RTC_RATE 32768
35
36
24struct clk { 37struct clk {
25 unsigned long rate; 38 unsigned long rate;
26 int users; 39 int users;
40 int sw_locked;
27 u32 enable_reg; 41 u32 enable_reg;
28 u32 enable_mask; 42 u32 enable_mask;
43
44 unsigned long (*get_rate)(struct clk *clk);
29}; 45};
30 46
31static struct clk clk_uart = { 47
32 .rate = 14745600, 48static unsigned long get_uart_rate(struct clk *clk);
49
50
51static struct clk clk_uart1 = {
52 .sw_locked = 1,
53 .enable_reg = EP93XX_SYSCON_DEVICE_CONFIG,
54 .enable_mask = EP93XX_SYSCON_DEVICE_CONFIG_U1EN,
55 .get_rate = get_uart_rate,
56};
57static struct clk clk_uart2 = {
58 .sw_locked = 1,
59 .enable_reg = EP93XX_SYSCON_DEVICE_CONFIG,
60 .enable_mask = EP93XX_SYSCON_DEVICE_CONFIG_U2EN,
61 .get_rate = get_uart_rate,
62};
63static struct clk clk_uart3 = {
64 .sw_locked = 1,
65 .enable_reg = EP93XX_SYSCON_DEVICE_CONFIG,
66 .enable_mask = EP93XX_SYSCON_DEVICE_CONFIG_U3EN,
67 .get_rate = get_uart_rate,
33}; 68};
34static struct clk clk_pll1; 69static struct clk clk_pll1;
35static struct clk clk_f; 70static struct clk clk_f;
@@ -95,9 +130,9 @@ static struct clk clk_m2m1 = {
95 { .dev_id = dev, .con_id = con, .clk = ck } 130 { .dev_id = dev, .con_id = con, .clk = ck }
96 131
97static struct clk_lookup clocks[] = { 132static struct clk_lookup clocks[] = {
98 INIT_CK("apb:uart1", NULL, &clk_uart), 133 INIT_CK("apb:uart1", NULL, &clk_uart1),
99 INIT_CK("apb:uart2", NULL, &clk_uart), 134 INIT_CK("apb:uart2", NULL, &clk_uart2),
100 INIT_CK("apb:uart3", NULL, &clk_uart), 135 INIT_CK("apb:uart3", NULL, &clk_uart3),
101 INIT_CK(NULL, "pll1", &clk_pll1), 136 INIT_CK(NULL, "pll1", &clk_pll1),
102 INIT_CK(NULL, "fclk", &clk_f), 137 INIT_CK(NULL, "fclk", &clk_f),
103 INIT_CK(NULL, "hclk", &clk_h), 138 INIT_CK(NULL, "hclk", &clk_h),
@@ -125,6 +160,8 @@ int clk_enable(struct clk *clk)
125 u32 value; 160 u32 value;
126 161
127 value = __raw_readl(clk->enable_reg); 162 value = __raw_readl(clk->enable_reg);
163 if (clk->sw_locked)
164 __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
128 __raw_writel(value | clk->enable_mask, clk->enable_reg); 165 __raw_writel(value | clk->enable_mask, clk->enable_reg);
129 } 166 }
130 167
@@ -138,13 +175,29 @@ void clk_disable(struct clk *clk)
138 u32 value; 175 u32 value;
139 176
140 value = __raw_readl(clk->enable_reg); 177 value = __raw_readl(clk->enable_reg);
178 if (clk->sw_locked)
179 __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
141 __raw_writel(value & ~clk->enable_mask, clk->enable_reg); 180 __raw_writel(value & ~clk->enable_mask, clk->enable_reg);
142 } 181 }
143} 182}
144EXPORT_SYMBOL(clk_disable); 183EXPORT_SYMBOL(clk_disable);
145 184
185static unsigned long get_uart_rate(struct clk *clk)
186{
187 u32 value;
188
189 value = __raw_readl(EP93XX_SYSCON_CLOCK_CONTROL);
190 if (value & EP93XX_SYSCON_CLOCK_UARTBAUD)
191 return EP93XX_EXT_CLK_RATE;
192 else
193 return EP93XX_EXT_CLK_RATE / 2;
194}
195
146unsigned long clk_get_rate(struct clk *clk) 196unsigned long clk_get_rate(struct clk *clk)
147{ 197{
198 if (clk->get_rate)
199 return clk->get_rate(clk);
200
148 return clk->rate; 201 return clk->rate;
149} 202}
150EXPORT_SYMBOL(clk_get_rate); 203EXPORT_SYMBOL(clk_get_rate);
@@ -162,7 +215,7 @@ static unsigned long calc_pll_rate(u32 config_word)
162 unsigned long long rate; 215 unsigned long long rate;
163 int i; 216 int i;
164 217
165 rate = 14745600; 218 rate = EP93XX_EXT_CLK_RATE;
166 rate *= ((config_word >> 11) & 0x1f) + 1; /* X1FBD */ 219 rate *= ((config_word >> 11) & 0x1f) + 1; /* X1FBD */
167 rate *= ((config_word >> 5) & 0x3f) + 1; /* X2FBD */ 220 rate *= ((config_word >> 5) & 0x3f) + 1; /* X2FBD */
168 do_div(rate, (config_word & 0x1f) + 1); /* X2IPD */ 221 do_div(rate, (config_word & 0x1f) + 1); /* X2IPD */
@@ -195,7 +248,7 @@ static int __init ep93xx_clock_init(void)
195 248
196 value = __raw_readl(EP93XX_SYSCON_CLOCK_SET1); 249 value = __raw_readl(EP93XX_SYSCON_CLOCK_SET1);
197 if (!(value & 0x00800000)) { /* PLL1 bypassed? */ 250 if (!(value & 0x00800000)) { /* PLL1 bypassed? */
198 clk_pll1.rate = 14745600; 251 clk_pll1.rate = EP93XX_EXT_CLK_RATE;
199 } else { 252 } else {
200 clk_pll1.rate = calc_pll_rate(value); 253 clk_pll1.rate = calc_pll_rate(value);
201 } 254 }
@@ -206,7 +259,7 @@ static int __init ep93xx_clock_init(void)
206 259
207 value = __raw_readl(EP93XX_SYSCON_CLOCK_SET2); 260 value = __raw_readl(EP93XX_SYSCON_CLOCK_SET2);
208 if (!(value & 0x00080000)) { /* PLL2 bypassed? */ 261 if (!(value & 0x00080000)) { /* PLL2 bypassed? */
209 clk_pll2.rate = 14745600; 262 clk_pll2.rate = EP93XX_EXT_CLK_RATE;
210 } else if (value & 0x00040000) { /* PLL2 enabled? */ 263 } else if (value & 0x00040000) { /* PLL2 enabled? */
211 clk_pll2.rate = calc_pll_rate(value); 264 clk_pll2.rate = calc_pll_rate(value);
212 } else { 265 } else {
diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
index f66be12b856e..1732de7629a5 100644
--- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
+++ b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
@@ -159,7 +159,10 @@
159#define EP93XX_SYSCON_CLOCK_SET1 EP93XX_SYSCON_REG(0x20) 159#define EP93XX_SYSCON_CLOCK_SET1 EP93XX_SYSCON_REG(0x20)
160#define EP93XX_SYSCON_CLOCK_SET2 EP93XX_SYSCON_REG(0x24) 160#define EP93XX_SYSCON_CLOCK_SET2 EP93XX_SYSCON_REG(0x24)
161#define EP93XX_SYSCON_DEVICE_CONFIG EP93XX_SYSCON_REG(0x80) 161#define EP93XX_SYSCON_DEVICE_CONFIG EP93XX_SYSCON_REG(0x80)
162#define EP93XX_SYSCON_DEVICE_CONFIG_CRUNCH_ENABLE 0x00800000 162#define EP93XX_SYSCON_DEVICE_CONFIG_U3EN (1<<24)
163#define EP93XX_SYSCON_DEVICE_CONFIG_CRUNCH_ENABLE (1<<23)
164#define EP93XX_SYSCON_DEVICE_CONFIG_U2EN (1<<20)
165#define EP93XX_SYSCON_DEVICE_CONFIG_U1EN (1<<18)
163#define EP93XX_SYSCON_SWLOCK EP93XX_SYSCON_REG(0xc0) 166#define EP93XX_SYSCON_SWLOCK EP93XX_SYSCON_REG(0xc0)
164 167
165#define EP93XX_WATCHDOG_BASE (EP93XX_APB_VIRT_BASE + 0x00140000) 168#define EP93XX_WATCHDOG_BASE (EP93XX_APB_VIRT_BASE + 0x00140000)
diff --git a/arch/arm/mach-gemini/include/mach/hardware.h b/arch/arm/mach-gemini/include/mach/hardware.h
index de6752674c05..213a4fcfeb1c 100644
--- a/arch/arm/mach-gemini/include/mach/hardware.h
+++ b/arch/arm/mach-gemini/include/mach/hardware.h
@@ -15,10 +15,9 @@
15/* 15/*
16 * Memory Map definitions 16 * Memory Map definitions
17 */ 17 */
18/* FIXME: Does it really swap SRAM like this? */
19#ifdef CONFIG_GEMINI_MEM_SWAP 18#ifdef CONFIG_GEMINI_MEM_SWAP
20# define GEMINI_DRAM_BASE 0x00000000 19# define GEMINI_DRAM_BASE 0x00000000
21# define GEMINI_SRAM_BASE 0x20000000 20# define GEMINI_SRAM_BASE 0x70000000
22#else 21#else
23# define GEMINI_SRAM_BASE 0x00000000 22# define GEMINI_SRAM_BASE 0x00000000
24# define GEMINI_DRAM_BASE 0x10000000 23# define GEMINI_DRAM_BASE 0x10000000
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c
index 6f8872913073..a0f60e55da6a 100644
--- a/arch/arm/mach-integrator/core.c
+++ b/arch/arm/mach-integrator/core.c
@@ -121,7 +121,7 @@ static struct clk uartclk = {
121 .rate = 14745600, 121 .rate = 14745600,
122}; 122};
123 123
124static struct clk_lookup lookups[] __initdata = { 124static struct clk_lookup lookups[] = {
125 { /* UART0 */ 125 { /* UART0 */
126 .dev_id = "mb:16", 126 .dev_id = "mb:16",
127 .clk = &uartclk, 127 .clk = &uartclk,
diff --git a/arch/arm/mach-ixp4xx/ixp4xx_npe.c b/arch/arm/mach-ixp4xx/ixp4xx_npe.c
index 252310234903..7bb8e778e4b6 100644
--- a/arch/arm/mach-ixp4xx/ixp4xx_npe.c
+++ b/arch/arm/mach-ixp4xx/ixp4xx_npe.c
@@ -714,7 +714,7 @@ static int __init npe_init_module(void)
714 } 714 }
715 715
716 if (!found) 716 if (!found)
717 return -ENOSYS; 717 return -ENODEV;
718 return 0; 718 return 0;
719} 719}
720 720
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
index eeb00240d784..be1ca28fed3f 100644
--- a/arch/arm/mach-kirkwood/common.c
+++ b/arch/arm/mach-kirkwood/common.c
@@ -144,6 +144,9 @@ static struct platform_device kirkwood_ge00 = {
144 .id = 0, 144 .id = 0,
145 .num_resources = 1, 145 .num_resources = 1,
146 .resource = kirkwood_ge00_resources, 146 .resource = kirkwood_ge00_resources,
147 .dev = {
148 .coherent_dma_mask = 0xffffffff,
149 },
147}; 150};
148 151
149void __init kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data) 152void __init kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data)
@@ -202,6 +205,9 @@ static struct platform_device kirkwood_ge01 = {
202 .id = 1, 205 .id = 1,
203 .num_resources = 1, 206 .num_resources = 1,
204 .resource = kirkwood_ge01_resources, 207 .resource = kirkwood_ge01_resources,
208 .dev = {
209 .coherent_dma_mask = 0xffffffff,
210 },
205}; 211};
206 212
207void __init kirkwood_ge01_init(struct mv643xx_eth_platform_data *eth_data) 213void __init kirkwood_ge01_init(struct mv643xx_eth_platform_data *eth_data)
@@ -386,12 +392,10 @@ static struct mv64xxx_i2c_pdata kirkwood_i2c_pdata = {
386 392
387static struct resource kirkwood_i2c_resources[] = { 393static struct resource kirkwood_i2c_resources[] = {
388 { 394 {
389 .name = "i2c",
390 .start = I2C_PHYS_BASE, 395 .start = I2C_PHYS_BASE,
391 .end = I2C_PHYS_BASE + 0x1f, 396 .end = I2C_PHYS_BASE + 0x1f,
392 .flags = IORESOURCE_MEM, 397 .flags = IORESOURCE_MEM,
393 }, { 398 }, {
394 .name = "i2c",
395 .start = IRQ_KIRKWOOD_TWSI, 399 .start = IRQ_KIRKWOOD_TWSI,
396 .end = IRQ_KIRKWOOD_TWSI, 400 .end = IRQ_KIRKWOOD_TWSI,
397 .flags = IORESOURCE_IRQ, 401 .flags = IORESOURCE_IRQ,
diff --git a/arch/arm/mach-kirkwood/ts219-setup.c b/arch/arm/mach-kirkwood/ts219-setup.c
index dda5743cf3e0..01aa213c0a6f 100644
--- a/arch/arm/mach-kirkwood/ts219-setup.c
+++ b/arch/arm/mach-kirkwood/ts219-setup.c
@@ -142,6 +142,8 @@ static unsigned int qnap_ts219_mpp_config[] __initdata = {
142 MPP1_SPI_MOSI, 142 MPP1_SPI_MOSI,
143 MPP2_SPI_SCK, 143 MPP2_SPI_SCK,
144 MPP3_SPI_MISO, 144 MPP3_SPI_MISO,
145 MPP4_SATA1_ACTn,
146 MPP5_SATA0_ACTn,
145 MPP8_TW_SDA, 147 MPP8_TW_SDA,
146 MPP9_TW_SCK, 148 MPP9_TW_SCK,
147 MPP10_UART0_TXD, 149 MPP10_UART0_TXD,
@@ -150,10 +152,6 @@ static unsigned int qnap_ts219_mpp_config[] __initdata = {
150 MPP14_UART1_RXD, /* PIC controller */ 152 MPP14_UART1_RXD, /* PIC controller */
151 MPP15_GPIO, /* USB Copy button */ 153 MPP15_GPIO, /* USB Copy button */
152 MPP16_GPIO, /* Reset button */ 154 MPP16_GPIO, /* Reset button */
153 MPP20_SATA1_ACTn,
154 MPP21_SATA0_ACTn,
155 MPP22_SATA1_PRESENTn,
156 MPP23_SATA0_PRESENTn,
157 0 155 0
158}; 156};
159 157
diff --git a/arch/arm/mach-l7200/include/mach/sys-clock.h b/arch/arm/mach-l7200/include/mach/sys-clock.h
index 2d7722be60ea..e9729a35751d 100644
--- a/arch/arm/mach-l7200/include/mach/sys-clock.h
+++ b/arch/arm/mach-l7200/include/mach/sys-clock.h
@@ -18,7 +18,7 @@
18 18
19/* IO_START and IO_BASE are defined in hardware.h */ 19/* IO_START and IO_BASE are defined in hardware.h */
20 20
21#define SYS_CLOCK_START (IO_START + SYS_CLCOK_OFF) /* Physical address */ 21#define SYS_CLOCK_START (IO_START + SYS_CLOCK_OFF) /* Physical address */
22#define SYS_CLOCK_BASE (IO_BASE + SYS_CLOCK_OFF) /* Virtual address */ 22#define SYS_CLOCK_BASE (IO_BASE + SYS_CLOCK_OFF) /* Virtual address */
23 23
24/* Define the interface to the SYS_CLOCK */ 24/* Define the interface to the SYS_CLOCK */
diff --git a/arch/arm/mach-loki/common.c b/arch/arm/mach-loki/common.c
index c0d2d9d12e74..818f19d7ab1f 100644
--- a/arch/arm/mach-loki/common.c
+++ b/arch/arm/mach-loki/common.c
@@ -82,6 +82,9 @@ static struct platform_device loki_ge0 = {
82 .id = 0, 82 .id = 0,
83 .num_resources = 1, 83 .num_resources = 1,
84 .resource = loki_ge0_resources, 84 .resource = loki_ge0_resources,
85 .dev = {
86 .coherent_dma_mask = 0xffffffff,
87 },
85}; 88};
86 89
87void __init loki_ge0_init(struct mv643xx_eth_platform_data *eth_data) 90void __init loki_ge0_init(struct mv643xx_eth_platform_data *eth_data)
@@ -136,6 +139,9 @@ static struct platform_device loki_ge1 = {
136 .id = 1, 139 .id = 1,
137 .num_resources = 1, 140 .num_resources = 1,
138 .resource = loki_ge1_resources, 141 .resource = loki_ge1_resources,
142 .dev = {
143 .coherent_dma_mask = 0xffffffff,
144 },
139}; 145};
140 146
141void __init loki_ge1_init(struct mv643xx_eth_platform_data *eth_data) 147void __init loki_ge1_init(struct mv643xx_eth_platform_data *eth_data)
diff --git a/arch/arm/mach-mmp/include/mach/mfp-pxa168.h b/arch/arm/mach-mmp/include/mach/mfp-pxa168.h
index d0bdb6e3682b..2e914649b9e4 100644
--- a/arch/arm/mach-mmp/include/mach/mfp-pxa168.h
+++ b/arch/arm/mach-mmp/include/mach/mfp-pxa168.h
@@ -3,6 +3,11 @@
3 3
4#include <mach/mfp.h> 4#include <mach/mfp.h>
5 5
6#define MFP_DRIVE_VERY_SLOW (0x0 << 13)
7#define MFP_DRIVE_SLOW (0x1 << 13)
8#define MFP_DRIVE_MEDIUM (0x2 << 13)
9#define MFP_DRIVE_FAST (0x3 << 13)
10
6/* GPIO */ 11/* GPIO */
7#define GPIO0_GPIO MFP_CFG(GPIO0, AF5) 12#define GPIO0_GPIO MFP_CFG(GPIO0, AF5)
8#define GPIO1_GPIO MFP_CFG(GPIO1, AF5) 13#define GPIO1_GPIO MFP_CFG(GPIO1, AF5)
diff --git a/arch/arm/mach-mmp/include/mach/mfp-pxa910.h b/arch/arm/mach-mmp/include/mach/mfp-pxa910.h
index 48a1cbc7c56b..d97de36c50ad 100644
--- a/arch/arm/mach-mmp/include/mach/mfp-pxa910.h
+++ b/arch/arm/mach-mmp/include/mach/mfp-pxa910.h
@@ -3,6 +3,11 @@
3 3
4#include <mach/mfp.h> 4#include <mach/mfp.h>
5 5
6#define MFP_DRIVE_VERY_SLOW (0x0 << 13)
7#define MFP_DRIVE_SLOW (0x2 << 13)
8#define MFP_DRIVE_MEDIUM (0x4 << 13)
9#define MFP_DRIVE_FAST (0x8 << 13)
10
6/* UART2 */ 11/* UART2 */
7#define GPIO47_UART2_RXD MFP_CFG(GPIO47, AF6) 12#define GPIO47_UART2_RXD MFP_CFG(GPIO47, AF6)
8#define GPIO48_UART2_TXD MFP_CFG(GPIO48, AF6) 13#define GPIO48_UART2_TXD MFP_CFG(GPIO48, AF6)
diff --git a/arch/arm/mach-mmp/include/mach/mfp.h b/arch/arm/mach-mmp/include/mach/mfp.h
index 277ea4cd0f9f..62e510e80a58 100644
--- a/arch/arm/mach-mmp/include/mach/mfp.h
+++ b/arch/arm/mach-mmp/include/mach/mfp.h
@@ -12,16 +12,13 @@
12 * possible, we make the following compromise: 12 * possible, we make the following compromise:
13 * 13 *
14 * 1. SLEEP_OE_N will always be programmed to '1' (by MFP_LPM_FLOAT) 14 * 1. SLEEP_OE_N will always be programmed to '1' (by MFP_LPM_FLOAT)
15 * 2. DRIVE strength definitions redefined to include the reserved bit10 15 * 2. DRIVE strength definitions redefined to include the reserved bit
16 * - the reserved bit differs between pxa168 and pxa910, and the
17 * MFP_DRIVE_* macros are individually defined in mfp-pxa{168,910}.h
16 * 3. Override MFP_CFG() and MFP_CFG_DRV() 18 * 3. Override MFP_CFG() and MFP_CFG_DRV()
17 * 4. Drop the use of MFP_CFG_LPM() and MFP_CFG_X() 19 * 4. Drop the use of MFP_CFG_LPM() and MFP_CFG_X()
18 */ 20 */
19 21
20#define MFP_DRIVE_VERY_SLOW (0x0 << 13)
21#define MFP_DRIVE_SLOW (0x2 << 13)
22#define MFP_DRIVE_MEDIUM (0x4 << 13)
23#define MFP_DRIVE_FAST (0x8 << 13)
24
25#undef MFP_CFG 22#undef MFP_CFG
26#undef MFP_CFG_DRV 23#undef MFP_CFG_DRV
27#undef MFP_CFG_LPM 24#undef MFP_CFG_LPM
diff --git a/arch/arm/mach-mmp/time.c b/arch/arm/mach-mmp/time.c
index b03a6eda7419..a8400bb891e7 100644
--- a/arch/arm/mach-mmp/time.c
+++ b/arch/arm/mach-mmp/time.c
@@ -136,7 +136,7 @@ static struct clock_event_device ckevt = {
136 .set_mode = timer_set_mode, 136 .set_mode = timer_set_mode,
137}; 137};
138 138
139static cycle_t clksrc_read(void) 139static cycle_t clksrc_read(struct clocksource *cs)
140{ 140{
141 return timer_read(); 141 return timer_read();
142} 142}
diff --git a/arch/arm/mach-mv78xx0/common.c b/arch/arm/mach-mv78xx0/common.c
index 9ba595083dab..1b22e4af8791 100644
--- a/arch/arm/mach-mv78xx0/common.c
+++ b/arch/arm/mach-mv78xx0/common.c
@@ -321,6 +321,9 @@ static struct platform_device mv78xx0_ge00 = {
321 .id = 0, 321 .id = 0,
322 .num_resources = 1, 322 .num_resources = 1,
323 .resource = mv78xx0_ge00_resources, 323 .resource = mv78xx0_ge00_resources,
324 .dev = {
325 .coherent_dma_mask = 0xffffffff,
326 },
324}; 327};
325 328
326void __init mv78xx0_ge00_init(struct mv643xx_eth_platform_data *eth_data) 329void __init mv78xx0_ge00_init(struct mv643xx_eth_platform_data *eth_data)
@@ -375,6 +378,9 @@ static struct platform_device mv78xx0_ge01 = {
375 .id = 1, 378 .id = 1,
376 .num_resources = 1, 379 .num_resources = 1,
377 .resource = mv78xx0_ge01_resources, 380 .resource = mv78xx0_ge01_resources,
381 .dev = {
382 .coherent_dma_mask = 0xffffffff,
383 },
378}; 384};
379 385
380void __init mv78xx0_ge01_init(struct mv643xx_eth_platform_data *eth_data) 386void __init mv78xx0_ge01_init(struct mv643xx_eth_platform_data *eth_data)
@@ -429,6 +435,9 @@ static struct platform_device mv78xx0_ge10 = {
429 .id = 2, 435 .id = 2,
430 .num_resources = 1, 436 .num_resources = 1,
431 .resource = mv78xx0_ge10_resources, 437 .resource = mv78xx0_ge10_resources,
438 .dev = {
439 .coherent_dma_mask = 0xffffffff,
440 },
432}; 441};
433 442
434void __init mv78xx0_ge10_init(struct mv643xx_eth_platform_data *eth_data) 443void __init mv78xx0_ge10_init(struct mv643xx_eth_platform_data *eth_data)
@@ -496,6 +505,9 @@ static struct platform_device mv78xx0_ge11 = {
496 .id = 3, 505 .id = 3,
497 .num_resources = 1, 506 .num_resources = 1,
498 .resource = mv78xx0_ge11_resources, 507 .resource = mv78xx0_ge11_resources,
508 .dev = {
509 .coherent_dma_mask = 0xffffffff,
510 },
499}; 511};
500 512
501void __init mv78xx0_ge11_init(struct mv643xx_eth_platform_data *eth_data) 513void __init mv78xx0_ge11_init(struct mv643xx_eth_platform_data *eth_data)
@@ -532,12 +544,10 @@ static struct mv64xxx_i2c_pdata mv78xx0_i2c_0_pdata = {
532 544
533static struct resource mv78xx0_i2c_0_resources[] = { 545static struct resource mv78xx0_i2c_0_resources[] = {
534 { 546 {
535 .name = "i2c 0 base",
536 .start = I2C_0_PHYS_BASE, 547 .start = I2C_0_PHYS_BASE,
537 .end = I2C_0_PHYS_BASE + 0x1f, 548 .end = I2C_0_PHYS_BASE + 0x1f,
538 .flags = IORESOURCE_MEM, 549 .flags = IORESOURCE_MEM,
539 }, { 550 }, {
540 .name = "i2c 0 irq",
541 .start = IRQ_MV78XX0_I2C_0, 551 .start = IRQ_MV78XX0_I2C_0,
542 .end = IRQ_MV78XX0_I2C_0, 552 .end = IRQ_MV78XX0_I2C_0,
543 .flags = IORESOURCE_IRQ, 553 .flags = IORESOURCE_IRQ,
@@ -567,12 +577,10 @@ static struct mv64xxx_i2c_pdata mv78xx0_i2c_1_pdata = {
567 577
568static struct resource mv78xx0_i2c_1_resources[] = { 578static struct resource mv78xx0_i2c_1_resources[] = {
569 { 579 {
570 .name = "i2c 1 base",
571 .start = I2C_1_PHYS_BASE, 580 .start = I2C_1_PHYS_BASE,
572 .end = I2C_1_PHYS_BASE + 0x1f, 581 .end = I2C_1_PHYS_BASE + 0x1f,
573 .flags = IORESOURCE_MEM, 582 .flags = IORESOURCE_MEM,
574 }, { 583 }, {
575 .name = "i2c 1 irq",
576 .start = IRQ_MV78XX0_I2C_1, 584 .start = IRQ_MV78XX0_I2C_1,
577 .end = IRQ_MV78XX0_I2C_1, 585 .end = IRQ_MV78XX0_I2C_1,
578 .flags = IORESOURCE_IRQ, 586 .flags = IORESOURCE_IRQ,
diff --git a/arch/arm/mach-mx2/clock_imx21.c b/arch/arm/mach-mx2/clock_imx21.c
index 999d013e06e3..e4b08ca804ea 100644
--- a/arch/arm/mach-mx2/clock_imx21.c
+++ b/arch/arm/mach-mx2/clock_imx21.c
@@ -890,7 +890,7 @@ static struct clk clko_clk = {
890 .con_id = n, \ 890 .con_id = n, \
891 .clk = &c, \ 891 .clk = &c, \
892 }, 892 },
893static struct clk_lookup lookups[] __initdata = { 893static struct clk_lookup lookups[] = {
894/* It's unlikely that any driver wants one of them directly: 894/* It's unlikely that any driver wants one of them directly:
895 _REGISTER_CLOCK(NULL, "ckih", ckih_clk) 895 _REGISTER_CLOCK(NULL, "ckih", ckih_clk)
896 _REGISTER_CLOCK(NULL, "ckil", ckil_clk) 896 _REGISTER_CLOCK(NULL, "ckil", ckil_clk)
diff --git a/arch/arm/mach-mx2/clock_imx27.c b/arch/arm/mach-mx2/clock_imx27.c
index 3f7280c490f0..2c971442f3f2 100644
--- a/arch/arm/mach-mx2/clock_imx27.c
+++ b/arch/arm/mach-mx2/clock_imx27.c
@@ -621,7 +621,7 @@ DEFINE_CLOCK1(csi_clk, 0, 0, 0, parent, &csi_clk1, &per4_clk);
621 .clk = &c, \ 621 .clk = &c, \
622 }, 622 },
623 623
624static struct clk_lookup lookups[] __initdata = { 624static struct clk_lookup lookups[] = {
625 _REGISTER_CLOCK("imx-uart.0", NULL, uart1_clk) 625 _REGISTER_CLOCK("imx-uart.0", NULL, uart1_clk)
626 _REGISTER_CLOCK("imx-uart.1", NULL, uart2_clk) 626 _REGISTER_CLOCK("imx-uart.1", NULL, uart2_clk)
627 _REGISTER_CLOCK("imx-uart.2", NULL, uart3_clk) 627 _REGISTER_CLOCK("imx-uart.2", NULL, uart3_clk)
diff --git a/arch/arm/mach-mx3/clock-imx35.c b/arch/arm/mach-mx3/clock-imx35.c
index 53a112d4e04a..3c1e06f56dd6 100644
--- a/arch/arm/mach-mx3/clock-imx35.c
+++ b/arch/arm/mach-mx3/clock-imx35.c
@@ -404,7 +404,7 @@ DEFINE_CLOCK(gpu2d_clk, 0, CCM_CGR3, 4, NULL, NULL);
404 .clk = &c, \ 404 .clk = &c, \
405 }, 405 },
406 406
407static struct clk_lookup lookups[] __initdata = { 407static struct clk_lookup lookups[] = {
408 _REGISTER_CLOCK(NULL, "asrc", asrc_clk) 408 _REGISTER_CLOCK(NULL, "asrc", asrc_clk)
409 _REGISTER_CLOCK(NULL, "ata", ata_clk) 409 _REGISTER_CLOCK(NULL, "ata", ata_clk)
410 _REGISTER_CLOCK(NULL, "audmux", audmux_clk) 410 _REGISTER_CLOCK(NULL, "audmux", audmux_clk)
diff --git a/arch/arm/mach-mx3/clock.c b/arch/arm/mach-mx3/clock.c
index 9957a11533a4..a68fcf981edf 100644
--- a/arch/arm/mach-mx3/clock.c
+++ b/arch/arm/mach-mx3/clock.c
@@ -516,7 +516,7 @@ DEFINE_CLOCK(ipg_clk, 0, NULL, 0, ipg_get_rate, NULL, &ahb_clk);
516 .clk = &c, \ 516 .clk = &c, \
517 }, 517 },
518 518
519static struct clk_lookup lookups[] __initdata = { 519static struct clk_lookup lookups[] = {
520 _REGISTER_CLOCK(NULL, "emi", emi_clk) 520 _REGISTER_CLOCK(NULL, "emi", emi_clk)
521 _REGISTER_CLOCK(NULL, "cspi", cspi1_clk) 521 _REGISTER_CLOCK(NULL, "cspi", cspi1_clk)
522 _REGISTER_CLOCK(NULL, "cspi", cspi2_clk) 522 _REGISTER_CLOCK(NULL, "cspi", cspi2_clk)
diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c
index efc59c49341b..e4cef333e291 100644
--- a/arch/arm/mach-omap2/clock24xx.c
+++ b/arch/arm/mach-omap2/clock24xx.c
@@ -103,10 +103,10 @@ static struct omap_clk omap24xx_clks[] = {
103 CLK(NULL, "mdm_ick", &mdm_ick, CK_243X), 103 CLK(NULL, "mdm_ick", &mdm_ick, CK_243X),
104 CLK(NULL, "mdm_osc_ck", &mdm_osc_ck, CK_243X), 104 CLK(NULL, "mdm_osc_ck", &mdm_osc_ck, CK_243X),
105 /* DSS domain clocks */ 105 /* DSS domain clocks */
106 CLK(NULL, "dss_ick", &dss_ick, CK_243X | CK_242X), 106 CLK("omapfb", "ick", &dss_ick, CK_243X | CK_242X),
107 CLK(NULL, "dss1_fck", &dss1_fck, CK_243X | CK_242X), 107 CLK("omapfb", "dss1_fck", &dss1_fck, CK_243X | CK_242X),
108 CLK(NULL, "dss2_fck", &dss2_fck, CK_243X | CK_242X), 108 CLK("omapfb", "dss2_fck", &dss2_fck, CK_243X | CK_242X),
109 CLK(NULL, "dss_54m_fck", &dss_54m_fck, CK_243X | CK_242X), 109 CLK("omapfb", "tv_fck", &dss_54m_fck, CK_243X | CK_242X),
110 /* L3 domain clocks */ 110 /* L3 domain clocks */
111 CLK(NULL, "core_l3_ck", &core_l3_ck, CK_243X | CK_242X), 111 CLK(NULL, "core_l3_ck", &core_l3_ck, CK_243X | CK_242X),
112 CLK(NULL, "ssi_fck", &ssi_ssr_sst_fck, CK_243X | CK_242X), 112 CLK(NULL, "ssi_fck", &ssi_ssr_sst_fck, CK_243X | CK_242X),
@@ -206,7 +206,7 @@ static struct omap_clk omap24xx_clks[] = {
206 CLK(NULL, "aes_ick", &aes_ick, CK_243X | CK_242X), 206 CLK(NULL, "aes_ick", &aes_ick, CK_243X | CK_242X),
207 CLK(NULL, "pka_ick", &pka_ick, CK_243X | CK_242X), 207 CLK(NULL, "pka_ick", &pka_ick, CK_243X | CK_242X),
208 CLK(NULL, "usb_fck", &usb_fck, CK_243X | CK_242X), 208 CLK(NULL, "usb_fck", &usb_fck, CK_243X | CK_242X),
209 CLK(NULL, "usbhs_ick", &usbhs_ick, CK_243X), 209 CLK("musb_hdrc", "ick", &usbhs_ick, CK_243X),
210 CLK("mmci-omap-hs.0", "ick", &mmchs1_ick, CK_243X), 210 CLK("mmci-omap-hs.0", "ick", &mmchs1_ick, CK_243X),
211 CLK("mmci-omap-hs.0", "fck", &mmchs1_fck, CK_243X), 211 CLK("mmci-omap-hs.0", "fck", &mmchs1_fck, CK_243X),
212 CLK("mmci-omap-hs.1", "ick", &mmchs2_ick, CK_243X), 212 CLK("mmci-omap-hs.1", "ick", &mmchs2_ick, CK_243X),
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
index 0a14dca31e30..ba05aa42bd8e 100644
--- a/arch/arm/mach-omap2/clock34xx.c
+++ b/arch/arm/mach-omap2/clock34xx.c
@@ -157,7 +157,7 @@ static struct omap_clk omap34xx_clks[] = {
157 CLK(NULL, "ssi_ssr_fck", &ssi_ssr_fck, CK_343X), 157 CLK(NULL, "ssi_ssr_fck", &ssi_ssr_fck, CK_343X),
158 CLK(NULL, "ssi_sst_fck", &ssi_sst_fck, CK_343X), 158 CLK(NULL, "ssi_sst_fck", &ssi_sst_fck, CK_343X),
159 CLK(NULL, "core_l3_ick", &core_l3_ick, CK_343X), 159 CLK(NULL, "core_l3_ick", &core_l3_ick, CK_343X),
160 CLK(NULL, "hsotgusb_ick", &hsotgusb_ick, CK_343X), 160 CLK("musb_hdrc", "ick", &hsotgusb_ick, CK_343X),
161 CLK(NULL, "sdrc_ick", &sdrc_ick, CK_343X), 161 CLK(NULL, "sdrc_ick", &sdrc_ick, CK_343X),
162 CLK(NULL, "gpmc_fck", &gpmc_fck, CK_343X), 162 CLK(NULL, "gpmc_fck", &gpmc_fck, CK_343X),
163 CLK(NULL, "security_l3_ick", &security_l3_ick, CK_343X), 163 CLK(NULL, "security_l3_ick", &security_l3_ick, CK_343X),
@@ -197,11 +197,11 @@ static struct omap_clk omap34xx_clks[] = {
197 CLK("omap_rng", "ick", &rng_ick, CK_343X), 197 CLK("omap_rng", "ick", &rng_ick, CK_343X),
198 CLK(NULL, "sha11_ick", &sha11_ick, CK_343X), 198 CLK(NULL, "sha11_ick", &sha11_ick, CK_343X),
199 CLK(NULL, "des1_ick", &des1_ick, CK_343X), 199 CLK(NULL, "des1_ick", &des1_ick, CK_343X),
200 CLK(NULL, "dss1_alwon_fck", &dss1_alwon_fck, CK_343X), 200 CLK("omapfb", "dss1_fck", &dss1_alwon_fck, CK_343X),
201 CLK(NULL, "dss_tv_fck", &dss_tv_fck, CK_343X), 201 CLK("omapfb", "tv_fck", &dss_tv_fck, CK_343X),
202 CLK(NULL, "dss_96m_fck", &dss_96m_fck, CK_343X), 202 CLK("omapfb", "video_fck", &dss_96m_fck, CK_343X),
203 CLK(NULL, "dss2_alwon_fck", &dss2_alwon_fck, CK_343X), 203 CLK("omapfb", "dss2_fck", &dss2_alwon_fck, CK_343X),
204 CLK(NULL, "dss_ick", &dss_ick, CK_343X), 204 CLK("omapfb", "ick", &dss_ick, CK_343X),
205 CLK(NULL, "cam_mclk", &cam_mclk, CK_343X), 205 CLK(NULL, "cam_mclk", &cam_mclk, CK_343X),
206 CLK(NULL, "cam_ick", &cam_ick, CK_343X), 206 CLK(NULL, "cam_ick", &cam_ick, CK_343X),
207 CLK(NULL, "csi2_96m_fck", &csi2_96m_fck, CK_343X), 207 CLK(NULL, "csi2_96m_fck", &csi2_96m_fck, CK_343X),
diff --git a/arch/arm/mach-omap2/clock34xx.h b/arch/arm/mach-omap2/clock34xx.h
index 6763b8f73028..017a30e9aa1d 100644
--- a/arch/arm/mach-omap2/clock34xx.h
+++ b/arch/arm/mach-omap2/clock34xx.h
@@ -2182,7 +2182,7 @@ static struct clk wkup_32k_fck = {
2182 2182
2183static struct clk gpio1_dbck = { 2183static struct clk gpio1_dbck = {
2184 .name = "gpio1_dbck", 2184 .name = "gpio1_dbck",
2185 .ops = &clkops_omap2_dflt_wait, 2185 .ops = &clkops_omap2_dflt,
2186 .parent = &wkup_32k_fck, 2186 .parent = &wkup_32k_fck,
2187 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_FCLKEN), 2187 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_FCLKEN),
2188 .enable_bit = OMAP3430_EN_GPIO1_SHIFT, 2188 .enable_bit = OMAP3430_EN_GPIO1_SHIFT,
@@ -2427,7 +2427,7 @@ static struct clk per_32k_alwon_fck = {
2427 2427
2428static struct clk gpio6_dbck = { 2428static struct clk gpio6_dbck = {
2429 .name = "gpio6_dbck", 2429 .name = "gpio6_dbck",
2430 .ops = &clkops_omap2_dflt_wait, 2430 .ops = &clkops_omap2_dflt,
2431 .parent = &per_32k_alwon_fck, 2431 .parent = &per_32k_alwon_fck,
2432 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2432 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN),
2433 .enable_bit = OMAP3430_EN_GPIO6_SHIFT, 2433 .enable_bit = OMAP3430_EN_GPIO6_SHIFT,
@@ -2437,7 +2437,7 @@ static struct clk gpio6_dbck = {
2437 2437
2438static struct clk gpio5_dbck = { 2438static struct clk gpio5_dbck = {
2439 .name = "gpio5_dbck", 2439 .name = "gpio5_dbck",
2440 .ops = &clkops_omap2_dflt_wait, 2440 .ops = &clkops_omap2_dflt,
2441 .parent = &per_32k_alwon_fck, 2441 .parent = &per_32k_alwon_fck,
2442 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2442 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN),
2443 .enable_bit = OMAP3430_EN_GPIO5_SHIFT, 2443 .enable_bit = OMAP3430_EN_GPIO5_SHIFT,
@@ -2447,7 +2447,7 @@ static struct clk gpio5_dbck = {
2447 2447
2448static struct clk gpio4_dbck = { 2448static struct clk gpio4_dbck = {
2449 .name = "gpio4_dbck", 2449 .name = "gpio4_dbck",
2450 .ops = &clkops_omap2_dflt_wait, 2450 .ops = &clkops_omap2_dflt,
2451 .parent = &per_32k_alwon_fck, 2451 .parent = &per_32k_alwon_fck,
2452 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2452 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN),
2453 .enable_bit = OMAP3430_EN_GPIO4_SHIFT, 2453 .enable_bit = OMAP3430_EN_GPIO4_SHIFT,
@@ -2457,7 +2457,7 @@ static struct clk gpio4_dbck = {
2457 2457
2458static struct clk gpio3_dbck = { 2458static struct clk gpio3_dbck = {
2459 .name = "gpio3_dbck", 2459 .name = "gpio3_dbck",
2460 .ops = &clkops_omap2_dflt_wait, 2460 .ops = &clkops_omap2_dflt,
2461 .parent = &per_32k_alwon_fck, 2461 .parent = &per_32k_alwon_fck,
2462 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2462 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN),
2463 .enable_bit = OMAP3430_EN_GPIO3_SHIFT, 2463 .enable_bit = OMAP3430_EN_GPIO3_SHIFT,
@@ -2467,7 +2467,7 @@ static struct clk gpio3_dbck = {
2467 2467
2468static struct clk gpio2_dbck = { 2468static struct clk gpio2_dbck = {
2469 .name = "gpio2_dbck", 2469 .name = "gpio2_dbck",
2470 .ops = &clkops_omap2_dflt_wait, 2470 .ops = &clkops_omap2_dflt,
2471 .parent = &per_32k_alwon_fck, 2471 .parent = &per_32k_alwon_fck,
2472 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), 2472 .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN),
2473 .enable_bit = OMAP3430_EN_GPIO2_SHIFT, 2473 .enable_bit = OMAP3430_EN_GPIO2_SHIFT,
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 496983ade97e..894cc355818a 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -354,10 +354,12 @@ static void omap_init_mcspi(void)
354 platform_device_register(&omap2_mcspi1); 354 platform_device_register(&omap2_mcspi1);
355 platform_device_register(&omap2_mcspi2); 355 platform_device_register(&omap2_mcspi2);
356#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3) 356#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3)
357 platform_device_register(&omap2_mcspi3); 357 if (cpu_is_omap2430() || cpu_is_omap343x())
358 platform_device_register(&omap2_mcspi3);
358#endif 359#endif
359#ifdef CONFIG_ARCH_OMAP3 360#ifdef CONFIG_ARCH_OMAP3
360 platform_device_register(&omap2_mcspi4); 361 if (cpu_is_omap343x())
362 platform_device_register(&omap2_mcspi4);
361#endif 363#endif
362} 364}
363 365
diff --git a/arch/arm/mach-omap2/prm-regbits-34xx.h b/arch/arm/mach-omap2/prm-regbits-34xx.h
index c6a7940f4287..9fd03a2ec95c 100644
--- a/arch/arm/mach-omap2/prm-regbits-34xx.h
+++ b/arch/arm/mach-omap2/prm-regbits-34xx.h
@@ -409,7 +409,7 @@
409/* PM_PREPWSTST_CAM specific bits */ 409/* PM_PREPWSTST_CAM specific bits */
410 410
411/* PM_PWSTCTRL_USBHOST specific bits */ 411/* PM_PWSTCTRL_USBHOST specific bits */
412#define OMAP3430ES2_SAVEANDRESTORE_SHIFT (1 << 4) 412#define OMAP3430ES2_SAVEANDRESTORE_SHIFT 4
413 413
414/* RM_RSTST_PER specific bits */ 414/* RM_RSTST_PER specific bits */
415 415
diff --git a/arch/arm/mach-omap2/usb-tusb6010.c b/arch/arm/mach-omap2/usb-tusb6010.c
index 8df55f40f4c0..8622c24cd270 100644
--- a/arch/arm/mach-omap2/usb-tusb6010.c
+++ b/arch/arm/mach-omap2/usb-tusb6010.c
@@ -187,7 +187,7 @@ int tusb6010_platform_retime(unsigned is_refclk)
187 unsigned sysclk_ps; 187 unsigned sysclk_ps;
188 int status; 188 int status;
189 189
190 if (!refclk_psec || sysclk_ps == 0) 190 if (!refclk_psec || fclk_ps == 0)
191 return -ENODEV; 191 return -ENODEV;
192 192
193 sysclk_ps = is_refclk ? refclk_psec : TUSB6010_OSCCLK_60; 193 sysclk_ps = is_refclk ? refclk_psec : TUSB6010_OSCCLK_60;
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c
index 6af99ddabdfb..b1c7778d9f96 100644
--- a/arch/arm/mach-orion5x/common.c
+++ b/arch/arm/mach-orion5x/common.c
@@ -188,6 +188,9 @@ static struct platform_device orion5x_eth = {
188 .id = 0, 188 .id = 0,
189 .num_resources = 1, 189 .num_resources = 1,
190 .resource = orion5x_eth_resources, 190 .resource = orion5x_eth_resources,
191 .dev = {
192 .coherent_dma_mask = 0xffffffff,
193 },
191}; 194};
192 195
193void __init orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data) 196void __init orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data)
@@ -248,12 +251,10 @@ static struct mv64xxx_i2c_pdata orion5x_i2c_pdata = {
248 251
249static struct resource orion5x_i2c_resources[] = { 252static struct resource orion5x_i2c_resources[] = {
250 { 253 {
251 .name = "i2c base",
252 .start = I2C_PHYS_BASE, 254 .start = I2C_PHYS_BASE,
253 .end = I2C_PHYS_BASE + 0x1f, 255 .end = I2C_PHYS_BASE + 0x1f,
254 .flags = IORESOURCE_MEM, 256 .flags = IORESOURCE_MEM,
255 }, { 257 }, {
256 .name = "i2c irq",
257 .start = IRQ_ORION5X_I2C, 258 .start = IRQ_ORION5X_I2C,
258 .end = IRQ_ORION5X_I2C, 259 .end = IRQ_ORION5X_I2C,
259 .flags = IORESOURCE_IRQ, 260 .flags = IORESOURCE_IRQ,
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
index d245e59c51b1..29970f703f3c 100644
--- a/arch/arm/mach-pxa/devices.c
+++ b/arch/arm/mach-pxa/devices.c
@@ -72,7 +72,10 @@ void __init pxa_set_mci_info(struct pxamci_platform_data *info)
72} 72}
73 73
74 74
75static struct pxa2xx_udc_mach_info pxa_udc_info; 75static struct pxa2xx_udc_mach_info pxa_udc_info = {
76 .gpio_pullup = -1,
77 .gpio_vbus = -1,
78};
76 79
77void __init pxa_set_udc_info(struct pxa2xx_udc_mach_info *info) 80void __init pxa_set_udc_info(struct pxa2xx_udc_mach_info *info)
78{ 81{
diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c
index 92ba16e1b6fc..7db966dc29ce 100644
--- a/arch/arm/mach-pxa/ezx.c
+++ b/arch/arm/mach-pxa/ezx.c
@@ -111,9 +111,9 @@ static unsigned long ezx_pin_config[] __initdata = {
111 GPIO25_SSP1_TXD, 111 GPIO25_SSP1_TXD,
112 GPIO26_SSP1_RXD, 112 GPIO26_SSP1_RXD,
113 GPIO24_GPIO, /* pcap chip select */ 113 GPIO24_GPIO, /* pcap chip select */
114 GPIO1_GPIO, /* pcap interrupt */ 114 GPIO1_GPIO | WAKEUP_ON_EDGE_RISE, /* pcap interrupt */
115 GPIO4_GPIO, /* WDI_AP */ 115 GPIO4_GPIO | MFP_LPM_DRIVE_HIGH, /* WDI_AP */
116 GPIO55_GPIO, /* SYS_RESTART */ 116 GPIO55_GPIO | MFP_LPM_DRIVE_HIGH, /* SYS_RESTART */
117 117
118 /* MMC */ 118 /* MMC */
119 GPIO32_MMC_CLK, 119 GPIO32_MMC_CLK,
@@ -144,20 +144,20 @@ static unsigned long ezx_pin_config[] __initdata = {
144#if defined(CONFIG_MACH_EZX_A780) || defined(CONFIG_MACH_EZX_E680) 144#if defined(CONFIG_MACH_EZX_A780) || defined(CONFIG_MACH_EZX_E680)
145static unsigned long gen1_pin_config[] __initdata = { 145static unsigned long gen1_pin_config[] __initdata = {
146 /* flip / lockswitch */ 146 /* flip / lockswitch */
147 GPIO12_GPIO, 147 GPIO12_GPIO | WAKEUP_ON_EDGE_BOTH,
148 148
149 /* bluetooth (bcm2035) */ 149 /* bluetooth (bcm2035) */
150 GPIO14_GPIO | WAKEUP_ON_LEVEL_HIGH, /* HOSTWAKE */ 150 GPIO14_GPIO | WAKEUP_ON_EDGE_RISE, /* HOSTWAKE */
151 GPIO48_GPIO, /* RESET */ 151 GPIO48_GPIO, /* RESET */
152 GPIO28_GPIO, /* WAKEUP */ 152 GPIO28_GPIO, /* WAKEUP */
153 153
154 /* Neptune handshake */ 154 /* Neptune handshake */
155 GPIO0_GPIO | WAKEUP_ON_LEVEL_HIGH, /* BP_RDY */ 155 GPIO0_GPIO | WAKEUP_ON_EDGE_FALL, /* BP_RDY */
156 GPIO57_GPIO, /* AP_RDY */ 156 GPIO57_GPIO | MFP_LPM_DRIVE_HIGH, /* AP_RDY */
157 GPIO13_GPIO | WAKEUP_ON_LEVEL_HIGH, /* WDI */ 157 GPIO13_GPIO | WAKEUP_ON_EDGE_BOTH, /* WDI */
158 GPIO3_GPIO | WAKEUP_ON_LEVEL_HIGH, /* WDI2 */ 158 GPIO3_GPIO | WAKEUP_ON_EDGE_BOTH, /* WDI2 */
159 GPIO82_GPIO, /* RESET */ 159 GPIO82_GPIO | MFP_LPM_DRIVE_HIGH, /* RESET */
160 GPIO99_GPIO, /* TC_MM_EN */ 160 GPIO99_GPIO | MFP_LPM_DRIVE_HIGH, /* TC_MM_EN */
161 161
162 /* sound */ 162 /* sound */
163 GPIO52_SSP3_SCLK, 163 GPIO52_SSP3_SCLK,
@@ -199,21 +199,21 @@ static unsigned long gen1_pin_config[] __initdata = {
199 defined(CONFIG_MACH_EZX_E2) || defined(CONFIG_MACH_EZX_E6) 199 defined(CONFIG_MACH_EZX_E2) || defined(CONFIG_MACH_EZX_E6)
200static unsigned long gen2_pin_config[] __initdata = { 200static unsigned long gen2_pin_config[] __initdata = {
201 /* flip / lockswitch */ 201 /* flip / lockswitch */
202 GPIO15_GPIO, 202 GPIO15_GPIO | WAKEUP_ON_EDGE_BOTH,
203 203
204 /* EOC */ 204 /* EOC */
205 GPIO10_GPIO, 205 GPIO10_GPIO | WAKEUP_ON_EDGE_RISE,
206 206
207 /* bluetooth (bcm2045) */ 207 /* bluetooth (bcm2045) */
208 GPIO13_GPIO | WAKEUP_ON_LEVEL_HIGH, /* HOSTWAKE */ 208 GPIO13_GPIO | WAKEUP_ON_EDGE_RISE, /* HOSTWAKE */
209 GPIO37_GPIO, /* RESET */ 209 GPIO37_GPIO, /* RESET */
210 GPIO57_GPIO, /* WAKEUP */ 210 GPIO57_GPIO, /* WAKEUP */
211 211
212 /* Neptune handshake */ 212 /* Neptune handshake */
213 GPIO0_GPIO | WAKEUP_ON_LEVEL_HIGH, /* BP_RDY */ 213 GPIO0_GPIO | WAKEUP_ON_EDGE_FALL, /* BP_RDY */
214 GPIO96_GPIO, /* AP_RDY */ 214 GPIO96_GPIO | MFP_LPM_DRIVE_HIGH, /* AP_RDY */
215 GPIO3_GPIO | WAKEUP_ON_LEVEL_HIGH, /* WDI */ 215 GPIO3_GPIO | WAKEUP_ON_EDGE_FALL, /* WDI */
216 GPIO116_GPIO, /* RESET */ 216 GPIO116_GPIO | MFP_LPM_DRIVE_HIGH, /* RESET */
217 GPIO41_GPIO, /* BP_FLASH */ 217 GPIO41_GPIO, /* BP_FLASH */
218 218
219 /* sound */ 219 /* sound */
diff --git a/arch/arm/mach-pxa/imote2.c b/arch/arm/mach-pxa/imote2.c
index 2121309b2474..2b27336c29f1 100644
--- a/arch/arm/mach-pxa/imote2.c
+++ b/arch/arm/mach-pxa/imote2.c
@@ -412,7 +412,7 @@ static struct platform_device imote2_flash_device = {
412 */ 412 */
413static struct i2c_board_info __initdata imote2_i2c_board_info[] = { 413static struct i2c_board_info __initdata imote2_i2c_board_info[] = {
414 { /* UCAM sensor board */ 414 { /* UCAM sensor board */
415 .type = "max1238", 415 .type = "max1239",
416 .addr = 0x35, 416 .addr = 0x35,
417 }, { /* ITS400 Sensor board only */ 417 }, { /* ITS400 Sensor board only */
418 .type = "max1363", 418 .type = "max1363",
diff --git a/arch/arm/mach-pxa/include/mach/reset.h b/arch/arm/mach-pxa/include/mach/reset.h
index 31e6a7b6ad80..b6c10556fbc7 100644
--- a/arch/arm/mach-pxa/include/mach/reset.h
+++ b/arch/arm/mach-pxa/include/mach/reset.h
@@ -13,8 +13,9 @@ extern void clear_reset_status(unsigned int mask);
13/** 13/**
14 * init_gpio_reset() - register GPIO as reset generator 14 * init_gpio_reset() - register GPIO as reset generator
15 * @gpio: gpio nr 15 * @gpio: gpio nr
16 * @output: set gpio as out/low instead of input during normal work 16 * @output: set gpio as output instead of input during normal work
17 * @level: output level
17 */ 18 */
18extern int init_gpio_reset(int gpio, int output); 19extern int init_gpio_reset(int gpio, int output, int level);
19 20
20#endif /* __ASM_ARCH_RESET_H */ 21#endif /* __ASM_ARCH_RESET_H */
diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c
index 7ffb91d64c39..cf6b720c055f 100644
--- a/arch/arm/mach-pxa/mfp-pxa2xx.c
+++ b/arch/arm/mach-pxa/mfp-pxa2xx.c
@@ -322,6 +322,7 @@ static inline void pxa27x_mfp_init(void) {}
322#ifdef CONFIG_PM 322#ifdef CONFIG_PM
323static unsigned long saved_gafr[2][4]; 323static unsigned long saved_gafr[2][4];
324static unsigned long saved_gpdr[4]; 324static unsigned long saved_gpdr[4];
325static unsigned long saved_pgsr[4];
325 326
326static int pxa2xx_mfp_suspend(struct sys_device *d, pm_message_t state) 327static int pxa2xx_mfp_suspend(struct sys_device *d, pm_message_t state)
327{ 328{
@@ -332,6 +333,7 @@ static int pxa2xx_mfp_suspend(struct sys_device *d, pm_message_t state)
332 saved_gafr[0][i] = GAFR_L(i); 333 saved_gafr[0][i] = GAFR_L(i);
333 saved_gafr[1][i] = GAFR_U(i); 334 saved_gafr[1][i] = GAFR_U(i);
334 saved_gpdr[i] = GPDR(i * 32); 335 saved_gpdr[i] = GPDR(i * 32);
336 saved_pgsr[i] = PGSR(i);
335 337
336 GPDR(i * 32) = gpdr_lpm[i]; 338 GPDR(i * 32) = gpdr_lpm[i];
337 } 339 }
@@ -346,6 +348,7 @@ static int pxa2xx_mfp_resume(struct sys_device *d)
346 GAFR_L(i) = saved_gafr[0][i]; 348 GAFR_L(i) = saved_gafr[0][i];
347 GAFR_U(i) = saved_gafr[1][i]; 349 GAFR_U(i) = saved_gafr[1][i];
348 GPDR(i * 32) = saved_gpdr[i]; 350 GPDR(i * 32) = saved_gpdr[i];
351 PGSR(i) = saved_pgsr[i];
349 } 352 }
350 PSSR = PSSR_RDH | PSSR_PH; 353 PSSR = PSSR_RDH | PSSR_PH;
351 return 0; 354 return 0;
@@ -374,6 +377,9 @@ static int __init pxa2xx_mfp_init(void)
374 if (cpu_is_pxa27x()) 377 if (cpu_is_pxa27x())
375 pxa27x_mfp_init(); 378 pxa27x_mfp_init();
376 379
380 /* clear RDH bit to enable GPIO receivers after reset/sleep exit */
381 PSSR = PSSR_RDH;
382
377 /* initialize gafr_run[], pgsr_lpm[] from existing values */ 383 /* initialize gafr_run[], pgsr_lpm[] from existing values */
378 for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++) 384 for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++)
379 gpdr_lpm[i] = GPDR(i * 32); 385 gpdr_lpm[i] = GPDR(i * 32);
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c
index 1cec1806f002..471a853e548b 100644
--- a/arch/arm/mach-pxa/palmld.c
+++ b/arch/arm/mach-pxa/palmld.c
@@ -62,6 +62,8 @@ static unsigned long palmld_pin_config[] __initdata = {
62 GPIO29_AC97_SDATA_IN_0, 62 GPIO29_AC97_SDATA_IN_0,
63 GPIO30_AC97_SDATA_OUT, 63 GPIO30_AC97_SDATA_OUT,
64 GPIO31_AC97_SYNC, 64 GPIO31_AC97_SYNC,
65 GPIO89_AC97_SYSCLK,
66 GPIO95_AC97_nRESET,
65 67
66 /* IrDA */ 68 /* IrDA */
67 GPIO108_GPIO, /* ir disable */ 69 GPIO108_GPIO, /* ir disable */
diff --git a/arch/arm/mach-pxa/palmt5.c b/arch/arm/mach-pxa/palmt5.c
index 30662363907b..05bf979b78a6 100644
--- a/arch/arm/mach-pxa/palmt5.c
+++ b/arch/arm/mach-pxa/palmt5.c
@@ -64,6 +64,7 @@ static unsigned long palmt5_pin_config[] __initdata = {
64 GPIO29_AC97_SDATA_IN_0, 64 GPIO29_AC97_SDATA_IN_0,
65 GPIO30_AC97_SDATA_OUT, 65 GPIO30_AC97_SDATA_OUT,
66 GPIO31_AC97_SYNC, 66 GPIO31_AC97_SYNC,
67 GPIO89_AC97_SYSCLK,
67 GPIO95_AC97_nRESET, 68 GPIO95_AC97_nRESET,
68 69
69 /* IrDA */ 70 /* IrDA */
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c
index e2d44b1a8a9b..e99a893c58a7 100644
--- a/arch/arm/mach-pxa/palmtx.c
+++ b/arch/arm/mach-pxa/palmtx.c
@@ -65,6 +65,7 @@ static unsigned long palmtx_pin_config[] __initdata = {
65 GPIO29_AC97_SDATA_IN_0, 65 GPIO29_AC97_SDATA_IN_0,
66 GPIO30_AC97_SDATA_OUT, 66 GPIO30_AC97_SDATA_OUT,
67 GPIO31_AC97_SYNC, 67 GPIO31_AC97_SYNC,
68 GPIO89_AC97_SYSCLK,
68 GPIO95_AC97_nRESET, 69 GPIO95_AC97_nRESET,
69 70
70 /* IrDA */ 71 /* IrDA */
diff --git a/arch/arm/mach-pxa/reset.c b/arch/arm/mach-pxa/reset.c
index df29d45fb4e7..01e9d643394a 100644
--- a/arch/arm/mach-pxa/reset.c
+++ b/arch/arm/mach-pxa/reset.c
@@ -20,7 +20,7 @@ static void do_hw_reset(void);
20 20
21static int reset_gpio = -1; 21static int reset_gpio = -1;
22 22
23int init_gpio_reset(int gpio, int output) 23int init_gpio_reset(int gpio, int output, int level)
24{ 24{
25 int rc; 25 int rc;
26 26
@@ -31,7 +31,7 @@ int init_gpio_reset(int gpio, int output)
31 } 31 }
32 32
33 if (output) 33 if (output)
34 rc = gpio_direction_output(gpio, 0); 34 rc = gpio_direction_output(gpio, level);
35 else 35 else
36 rc = gpio_direction_input(gpio); 36 rc = gpio_direction_input(gpio);
37 if (rc) { 37 if (rc) {
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index c18e34acafcb..5a45fe340a10 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -531,9 +531,15 @@ static int spitz_ohci_init(struct device *dev)
531 return gpio_direction_output(SPITZ_GPIO_USB_HOST, 1); 531 return gpio_direction_output(SPITZ_GPIO_USB_HOST, 1);
532} 532}
533 533
534static void spitz_ohci_exit(struct device *dev)
535{
536 gpio_free(SPITZ_GPIO_USB_HOST);
537}
538
534static struct pxaohci_platform_data spitz_ohci_platform_data = { 539static struct pxaohci_platform_data spitz_ohci_platform_data = {
535 .port_mode = PMM_NPS_MODE, 540 .port_mode = PMM_NPS_MODE,
536 .init = spitz_ohci_init, 541 .init = spitz_ohci_init,
542 .exit = spitz_ohci_exit,
537 .flags = ENABLE_PORT_ALL | NO_OC_PROTECTION, 543 .flags = ENABLE_PORT_ALL | NO_OC_PROTECTION,
538 .power_budget = 150, 544 .power_budget = 150,
539}; 545};
@@ -731,7 +737,7 @@ static void spitz_restart(char mode, const char *cmd)
731 737
732static void __init common_init(void) 738static void __init common_init(void)
733{ 739{
734 init_gpio_reset(SPITZ_GPIO_ON_RESET, 1); 740 init_gpio_reset(SPITZ_GPIO_ON_RESET, 1, 0);
735 pm_power_off = spitz_poweroff; 741 pm_power_off = spitz_poweroff;
736 arm_pm_restart = spitz_restart; 742 arm_pm_restart = spitz_restart;
737 743
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c
index afac5b6d3d78..a0bd46ef5d30 100644
--- a/arch/arm/mach-pxa/tosa.c
+++ b/arch/arm/mach-pxa/tosa.c
@@ -897,7 +897,7 @@ static void __init tosa_init(void)
897 gpio_set_wake(MFP_PIN_GPIO1, 1); 897 gpio_set_wake(MFP_PIN_GPIO1, 1);
898 /* We can't pass to gpio-keys since it will drop the Reset altfunc */ 898 /* We can't pass to gpio-keys since it will drop the Reset altfunc */
899 899
900 init_gpio_reset(TOSA_GPIO_ON_RESET, 0); 900 init_gpio_reset(TOSA_GPIO_ON_RESET, 0, 0);
901 901
902 pm_power_off = tosa_poweroff; 902 pm_power_off = tosa_poweroff;
903 arm_pm_restart = tosa_restart; 903 arm_pm_restart = tosa_restart;
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c
index 0e65344e9f53..dd031cc41847 100644
--- a/arch/arm/mach-pxa/viper.c
+++ b/arch/arm/mach-pxa/viper.c
@@ -46,6 +46,7 @@
46#include <mach/audio.h> 46#include <mach/audio.h>
47#include <mach/pxafb.h> 47#include <mach/pxafb.h>
48#include <mach/i2c.h> 48#include <mach/i2c.h>
49#include <mach/regs-uart.h>
49#include <mach/viper.h> 50#include <mach/viper.h>
50 51
51#include <asm/setup.h> 52#include <asm/setup.h>
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index 942e1a7eb9b2..076acbc50706 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -750,14 +750,6 @@ void __init realview_timer_init(unsigned int timer_irq)
750{ 750{
751 u32 val; 751 u32 val;
752 752
753#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
754 /*
755 * The dummy clock device has to be registered before the main device
756 * so that the latter will broadcast the clock events
757 */
758 local_timer_setup();
759#endif
760
761 /* 753 /*
762 * set clock frequency: 754 * set clock frequency:
763 * REALVIEW_REFCLK is 32KHz 755 * REALVIEW_REFCLK is 32KHz
diff --git a/arch/arm/mach-realview/include/mach/smp.h b/arch/arm/mach-realview/include/mach/smp.h
index 515819efd046..dd53892d44a7 100644
--- a/arch/arm/mach-realview/include/mach/smp.h
+++ b/arch/arm/mach-realview/include/mach/smp.h
@@ -15,16 +15,9 @@
15/* 15/*
16 * We use IRQ1 as the IPI 16 * We use IRQ1 as the IPI
17 */ 17 */
18static inline void smp_cross_call(cpumask_t callmap) 18static inline void smp_cross_call(const struct cpumask *mask)
19{
20 gic_raise_softirq(callmap, 1);
21}
22
23/*
24 * Do nothing on MPcore.
25 */
26static inline void smp_cross_call_done(cpumask_t callmap)
27{ 19{
20 gic_raise_softirq(mask, 1);
28} 21}
29 22
30#endif 23#endif
diff --git a/arch/arm/mach-realview/localtimer.c b/arch/arm/mach-realview/localtimer.c
index d0d39adf6407..1c01d13460f0 100644
--- a/arch/arm/mach-realview/localtimer.c
+++ b/arch/arm/mach-realview/localtimer.c
@@ -189,8 +189,10 @@ void __cpuinit local_timer_setup(void)
189 struct clock_event_device *clk = &per_cpu(local_clockevent, cpu); 189 struct clock_event_device *clk = &per_cpu(local_clockevent, cpu);
190 190
191 clk->name = "dummy_timer"; 191 clk->name = "dummy_timer";
192 clk->features = CLOCK_EVT_FEAT_DUMMY; 192 clk->features = CLOCK_EVT_FEAT_ONESHOT |
193 clk->rating = 200; 193 CLOCK_EVT_FEAT_PERIODIC |
194 CLOCK_EVT_FEAT_DUMMY;
195 clk->rating = 400;
194 clk->mult = 1; 196 clk->mult = 1;
195 clk->set_mode = dummy_timer_set_mode; 197 clk->set_mode = dummy_timer_set_mode;
196 clk->broadcast = smp_timer_broadcast; 198 clk->broadcast = smp_timer_broadcast;
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
index ea3c75595fa9..30a9c68591f6 100644
--- a/arch/arm/mach-realview/platsmp.c
+++ b/arch/arm/mach-realview/platsmp.c
@@ -78,13 +78,6 @@ void __cpuinit platform_secondary_init(unsigned int cpu)
78 trace_hardirqs_off(); 78 trace_hardirqs_off();
79 79
80 /* 80 /*
81 * the primary core may have used a "cross call" soft interrupt
82 * to get this processor out of WFI in the BootMonitor - make
83 * sure that we are no longer being sent this soft interrupt
84 */
85 smp_cross_call_done(cpumask_of_cpu(cpu));
86
87 /*
88 * if any interrupts are already enabled for the primary 81 * if any interrupts are already enabled for the primary
89 * core (e.g. timer irq), then they will not have been enabled 82 * core (e.g. timer irq), then they will not have been enabled
90 * for us: do so 83 * for us: do so
@@ -136,7 +129,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
136 * Use smp_cross_call() for this, since there's little 129 * Use smp_cross_call() for this, since there's little
137 * point duplicating the code here 130 * point duplicating the code here
138 */ 131 */
139 smp_cross_call(cpumask_of_cpu(cpu)); 132 smp_cross_call(cpumask_of(cpu));
140 133
141 timeout = jiffies + (1 * HZ); 134 timeout = jiffies + (1 * HZ);
142 while (time_before(jiffies, timeout)) { 135 while (time_before(jiffies, timeout)) {
@@ -224,11 +217,9 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
224 if (max_cpus > ncores) 217 if (max_cpus > ncores)
225 max_cpus = ncores; 218 max_cpus = ncores;
226 219
227#ifdef CONFIG_LOCAL_TIMERS 220#if defined(CONFIG_LOCAL_TIMERS) || defined(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST)
228 /* 221 /*
229 * Enable the local timer for primary CPU. If the device is 222 * Enable the local timer or broadcast device for the boot CPU.
230 * dummy (!CONFIG_LOCAL_TIMERS), it was already registers in
231 * realview_timer_init
232 */ 223 */
233 local_timer_setup(); 224 local_timer_setup();
234#endif 225#endif
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c
index 4389c160f7d0..8637dea5e150 100644
--- a/arch/arm/mach-s3c2410/mach-bast.c
+++ b/arch/arm/mach-s3c2410/mach-bast.c
@@ -588,8 +588,6 @@ static void __init bast_map_io(void)
588 588
589 s3c_device_nand.dev.platform_data = &bast_nand_info; 589 s3c_device_nand.dev.platform_data = &bast_nand_info;
590 590
591 s3c_i2c0_set_platdata(&bast_i2c_info);
592
593 s3c24xx_init_io(bast_iodesc, ARRAY_SIZE(bast_iodesc)); 591 s3c24xx_init_io(bast_iodesc, ARRAY_SIZE(bast_iodesc));
594 s3c24xx_init_clocks(0); 592 s3c24xx_init_clocks(0);
595 s3c24xx_init_uarts(bast_uartcfgs, ARRAY_SIZE(bast_uartcfgs)); 593 s3c24xx_init_uarts(bast_uartcfgs, ARRAY_SIZE(bast_uartcfgs));
@@ -602,6 +600,7 @@ static void __init bast_init(void)
602 sysdev_class_register(&bast_pm_sysclass); 600 sysdev_class_register(&bast_pm_sysclass);
603 sysdev_register(&bast_pm_sysdev); 601 sysdev_register(&bast_pm_sysdev);
604 602
603 s3c_i2c0_set_platdata(&bast_i2c_info);
605 s3c24xx_fb_set_platdata(&bast_fb_info); 604 s3c24xx_fb_set_platdata(&bast_fb_info);
606 platform_add_devices(bast_devices, ARRAY_SIZE(bast_devices)); 605 platform_add_devices(bast_devices, ARRAY_SIZE(bast_devices));
607 606
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 1f929c391af7..b3bebcc5623b 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -413,7 +413,7 @@ static struct clk ref24_clk = {
413 .rate = 24000000, 413 .rate = 24000000,
414}; 414};
415 415
416static struct clk_lookup lookups[] __initdata = { 416static struct clk_lookup lookups[] = {
417 { /* UART0 */ 417 { /* UART0 */
418 .dev_id = "dev:f1", 418 .dev_id = "dev:f1",
419 .clk = &ref24_clk, 419 .clk = &ref24_clk,
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index 3397f1e64d76..a08d9d2380d3 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -184,23 +184,37 @@ __v7_setup:
184 stmia r12, {r0-r5, r7, r9, r11, lr} 184 stmia r12, {r0-r5, r7, r9, r11, lr}
185 bl v7_flush_dcache_all 185 bl v7_flush_dcache_all
186 ldmia r12, {r0-r5, r7, r9, r11, lr} 186 ldmia r12, {r0-r5, r7, r9, r11, lr}
187
188 mrc p15, 0, r0, c0, c0, 0 @ read main ID register
189 and r10, r0, #0xff000000 @ ARM?
190 teq r10, #0x41000000
191 bne 2f
192 and r5, r0, #0x00f00000 @ variant
193 and r6, r0, #0x0000000f @ revision
194 orr r0, r6, r5, lsr #20-4 @ combine variant and revision
195
187#ifdef CONFIG_ARM_ERRATA_430973 196#ifdef CONFIG_ARM_ERRATA_430973
188 mrc p15, 0, r10, c1, c0, 1 @ read aux control register 197 teq r5, #0x00100000 @ only present in r1p*
189 orr r10, r10, #(1 << 6) @ set IBE to 1 198 mrceq p15, 0, r10, c1, c0, 1 @ read aux control register
190 mcr p15, 0, r10, c1, c0, 1 @ write aux control register 199 orreq r10, r10, #(1 << 6) @ set IBE to 1
200 mcreq p15, 0, r10, c1, c0, 1 @ write aux control register
191#endif 201#endif
192#ifdef CONFIG_ARM_ERRATA_458693 202#ifdef CONFIG_ARM_ERRATA_458693
193 mrc p15, 0, r10, c1, c0, 1 @ read aux control register 203 teq r0, #0x20 @ only present in r2p0
194 orr r10, r10, #(1 << 5) @ set L1NEON to 1 204 mrceq p15, 0, r10, c1, c0, 1 @ read aux control register
195 orr r10, r10, #(1 << 9) @ set PLDNOP to 1 205 orreq r10, r10, #(1 << 5) @ set L1NEON to 1
196 mcr p15, 0, r10, c1, c0, 1 @ write aux control register 206 orreq r10, r10, #(1 << 9) @ set PLDNOP to 1
207 mcreq p15, 0, r10, c1, c0, 1 @ write aux control register
197#endif 208#endif
198#ifdef CONFIG_ARM_ERRATA_460075 209#ifdef CONFIG_ARM_ERRATA_460075
199 mrc p15, 1, r10, c9, c0, 2 @ read L2 cache aux ctrl register 210 teq r0, #0x20 @ only present in r2p0
200 orr r10, r10, #(1 << 22) @ set the Write Allocate disable bit 211 mrceq p15, 1, r10, c9, c0, 2 @ read L2 cache aux ctrl register
201 mcr p15, 1, r10, c9, c0, 2 @ write the L2 cache aux ctrl register 212 tsteq r10, #1 << 22
213 orreq r10, r10, #(1 << 22) @ set the Write Allocate disable bit
214 mcreq p15, 1, r10, c9, c0, 2 @ write the L2 cache aux ctrl register
202#endif 215#endif
203 mov r10, #0 216
2172: mov r10, #0
204#ifdef HARVARD_CACHE 218#ifdef HARVARD_CACHE
205 mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate 219 mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate
206#endif 220#endif
diff --git a/arch/arm/nwfpe/fpa11.h b/arch/arm/nwfpe/fpa11.h
index 386cbd13eaf4..d3a6f9298e9e 100644
--- a/arch/arm/nwfpe/fpa11.h
+++ b/arch/arm/nwfpe/fpa11.h
@@ -114,4 +114,8 @@ extern unsigned int SingleCPDO(struct roundingData *roundData,
114extern unsigned int DoubleCPDO(struct roundingData *roundData, 114extern unsigned int DoubleCPDO(struct roundingData *roundData,
115 const unsigned int opcode, FPREG * rFd); 115 const unsigned int opcode, FPREG * rFd);
116 116
117/* extneded_cpdo.c */
118extern unsigned int ExtendedCPDO(struct roundingData *roundData,
119 const unsigned int opcode, FPREG * rFd);
120
117#endif 121#endif
diff --git a/arch/arm/nwfpe/fpa11_cprt.c b/arch/arm/nwfpe/fpa11_cprt.c
index 9843dc533047..31c4eeec18b0 100644
--- a/arch/arm/nwfpe/fpa11_cprt.c
+++ b/arch/arm/nwfpe/fpa11_cprt.c
@@ -27,10 +27,6 @@
27#include "fpmodule.inl" 27#include "fpmodule.inl"
28#include "softfloat.h" 28#include "softfloat.h"
29 29
30#ifdef CONFIG_FPE_NWFPE_XP
31extern flag floatx80_is_nan(floatx80);
32#endif
33
34unsigned int PerformFLT(const unsigned int opcode); 30unsigned int PerformFLT(const unsigned int opcode);
35unsigned int PerformFIX(const unsigned int opcode); 31unsigned int PerformFIX(const unsigned int opcode);
36 32
diff --git a/arch/arm/nwfpe/softfloat.h b/arch/arm/nwfpe/softfloat.h
index 260fe29d73f5..13e479c5da57 100644
--- a/arch/arm/nwfpe/softfloat.h
+++ b/arch/arm/nwfpe/softfloat.h
@@ -226,6 +226,8 @@ char floatx80_le_quiet( floatx80, floatx80 );
226char floatx80_lt_quiet( floatx80, floatx80 ); 226char floatx80_lt_quiet( floatx80, floatx80 );
227char floatx80_is_signaling_nan( floatx80 ); 227char floatx80_is_signaling_nan( floatx80 );
228 228
229extern flag floatx80_is_nan(floatx80);
230
229#endif 231#endif
230 232
231static inline flag extractFloat32Sign(float32 a) 233static inline flag extractFloat32Sign(float32 a)
diff --git a/arch/arm/plat-omap/fb.c b/arch/arm/plat-omap/fb.c
index ce6b4baeedec..3746222bed10 100644
--- a/arch/arm/plat-omap/fb.c
+++ b/arch/arm/plat-omap/fb.c
@@ -206,9 +206,10 @@ void __init omapfb_reserve_sdram(void)
206 config_invalid = 1; 206 config_invalid = 1;
207 return; 207 return;
208 } 208 }
209 if (rg.paddr) 209 if (rg.paddr) {
210 reserve_bootmem(rg.paddr, rg.size, BOOTMEM_DEFAULT); 210 reserve_bootmem(rg.paddr, rg.size, BOOTMEM_DEFAULT);
211 reserved += rg.size; 211 reserved += rg.size;
212 }
212 omapfb_config.mem_desc.region[i] = rg; 213 omapfb_config.mem_desc.region[i] = rg;
213 configured_regions++; 214 configured_regions++;
214 } 215 }
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 17d7afe42b83..ee0b21f5b094 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -307,7 +307,7 @@ static inline int gpio_valid(int gpio)
307 return 0; 307 return 0;
308 if (cpu_is_omap24xx() && gpio < 128) 308 if (cpu_is_omap24xx() && gpio < 128)
309 return 0; 309 return 0;
310 if (cpu_is_omap34xx() && gpio < 160) 310 if (cpu_is_omap34xx() && gpio < 192)
311 return 0; 311 return 0;
312 return -1; 312 return -1;
313} 313}
diff --git a/arch/arm/plat-s3c/clock.c b/arch/arm/plat-s3c/clock.c
index b6be76e2fe51..4d01ef1a25dd 100644
--- a/arch/arm/plat-s3c/clock.c
+++ b/arch/arm/plat-s3c/clock.c
@@ -306,8 +306,6 @@ struct clk s3c24xx_uclk = {
306 306
307int s3c24xx_register_clock(struct clk *clk) 307int s3c24xx_register_clock(struct clk *clk)
308{ 308{
309 clk->owner = THIS_MODULE;
310
311 if (clk->enable == NULL) 309 if (clk->enable == NULL)
312 clk->enable = clk_null_enable; 310 clk->enable = clk_null_enable;
313 311
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c
index aee2aeb46c60..07326f632361 100644
--- a/arch/arm/plat-s3c24xx/dma.c
+++ b/arch/arm/plat-s3c24xx/dma.c
@@ -1235,7 +1235,7 @@ int s3c2410_dma_getposition(unsigned int channel, dma_addr_t *src, dma_addr_t *d
1235 1235
1236EXPORT_SYMBOL(s3c2410_dma_getposition); 1236EXPORT_SYMBOL(s3c2410_dma_getposition);
1237 1237
1238static struct s3c2410_dma_chan *to_dma_chan(struct sys_device *dev) 1238static inline struct s3c2410_dma_chan *to_dma_chan(struct sys_device *dev)
1239{ 1239{
1240 return container_of(dev, struct s3c2410_dma_chan, dev); 1240 return container_of(dev, struct s3c2410_dma_chan, dev);
1241} 1241}
diff --git a/arch/arm/plat-s3c64xx/gpiolib.c b/arch/arm/plat-s3c64xx/gpiolib.c
index ee9188add8fb..78ee52cffc9e 100644
--- a/arch/arm/plat-s3c64xx/gpiolib.c
+++ b/arch/arm/plat-s3c64xx/gpiolib.c
@@ -57,7 +57,7 @@
57#if 1 57#if 1
58#define gpio_dbg(x...) do { } while(0) 58#define gpio_dbg(x...) do { } while(0)
59#else 59#else
60#define gpio_dbg(x...) printk(KERN_DEBUG ## x) 60#define gpio_dbg(x...) printk(KERN_DEBUG x)
61#endif 61#endif
62 62
63/* The s3c64xx_gpiolib_4bit routines are to control the gpio banks where 63/* The s3c64xx_gpiolib_4bit routines are to control the gpio banks where
diff --git a/arch/arm/plat-s3c64xx/include/plat/gpio-bank-h.h b/arch/arm/plat-s3c64xx/include/plat/gpio-bank-h.h
index 81549516572f..2ba1767512d7 100644
--- a/arch/arm/plat-s3c64xx/include/plat/gpio-bank-h.h
+++ b/arch/arm/plat-s3c64xx/include/plat/gpio-bank-h.h
@@ -61,14 +61,14 @@
61#define S3C64XX_GPH7_ADDR_CF1 (0x06 << 28) 61#define S3C64XX_GPH7_ADDR_CF1 (0x06 << 28)
62#define S3C64XX_GPH7_EINT_G6_7 (0x07 << 28) 62#define S3C64XX_GPH7_EINT_G6_7 (0x07 << 28)
63 63
64#define S3C64XX_GPH8_MMC1_DATA6 (0x02 << 32) 64#define S3C64XX_GPH8_MMC1_DATA6 (0x02 << 0)
65#define S3C64XX_GPH8_MMC2_DATA2 (0x03 << 32) 65#define S3C64XX_GPH8_MMC2_DATA2 (0x03 << 0)
66#define S3C64XX_GPH8_I2S_V40_LRCLK (0x05 << 32) 66#define S3C64XX_GPH8_I2S_V40_LRCLK (0x05 << 0)
67#define S3C64XX_GPH8_ADDR_CF2 (0x06 << 32) 67#define S3C64XX_GPH8_ADDR_CF2 (0x06 << 0)
68#define S3C64XX_GPH8_EINT_G6_8 (0x07 << 32) 68#define S3C64XX_GPH8_EINT_G6_8 (0x07 << 0)
69
70#define S3C64XX_GPH9_MMC1_DATA7 (0x02 << 36)
71#define S3C64XX_GPH9_MMC2_DATA3 (0x03 << 36)
72#define S3C64XX_GPH9_I2S_V40_DI (0x05 << 36)
73#define S3C64XX_GPH9_EINT_G6_9 (0x07 << 36)
74 69
70#define S3C64XX_GPH9_OUTPUT (0x01 << 4)
71#define S3C64XX_GPH9_MMC1_DATA7 (0x02 << 4)
72#define S3C64XX_GPH9_MMC2_DATA3 (0x03 << 4)
73#define S3C64XX_GPH9_I2S_V40_DI (0x05 << 4)
74#define S3C64XX_GPH9_EINT_G6_9 (0x07 << 4)
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index 945e0d237a1d..fec64678a63a 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -12,7 +12,7 @@
12# 12#
13# http://www.arm.linux.org.uk/developer/machines/?action=new 13# http://www.arm.linux.org.uk/developer/machines/?action=new
14# 14#
15# Last update: Mon Mar 23 20:09:01 2009 15# Last update: Fri May 29 10:14:20 2009
16# 16#
17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
18# 18#
@@ -916,7 +916,7 @@ nxdb500 MACH_NXDB500 NXDB500 905
916apf9328 MACH_APF9328 APF9328 906 916apf9328 MACH_APF9328 APF9328 906
917omap_wipoq MACH_OMAP_WIPOQ OMAP_WIPOQ 907 917omap_wipoq MACH_OMAP_WIPOQ OMAP_WIPOQ 907
918omap_twip MACH_OMAP_TWIP OMAP_TWIP 908 918omap_twip MACH_OMAP_TWIP OMAP_TWIP 908
919palmt650 MACH_PALMT650 PALMT650 909 919treo650 MACH_TREO650 TREO650 909
920acumen MACH_ACUMEN ACUMEN 910 920acumen MACH_ACUMEN ACUMEN 910
921xp100 MACH_XP100 XP100 911 921xp100 MACH_XP100 XP100 911
922fs2410 MACH_FS2410 FS2410 912 922fs2410 MACH_FS2410 FS2410 912
@@ -1232,7 +1232,7 @@ ql202b MACH_QL202B QL202B 1226
1232vpac270 MACH_VPAC270 VPAC270 1227 1232vpac270 MACH_VPAC270 VPAC270 1227
1233rd129 MACH_RD129 RD129 1228 1233rd129 MACH_RD129 RD129 1228
1234htcwizard MACH_HTCWIZARD HTCWIZARD 1229 1234htcwizard MACH_HTCWIZARD HTCWIZARD 1229
1235xscale_treo680 MACH_XSCALE_TREO680 XSCALE_TREO680 1230 1235treo680 MACH_TREO680 TREO680 1230
1236tecon_tmezon MACH_TECON_TMEZON TECON_TMEZON 1231 1236tecon_tmezon MACH_TECON_TMEZON TECON_TMEZON 1231
1237zylonite MACH_ZYLONITE ZYLONITE 1233 1237zylonite MACH_ZYLONITE ZYLONITE 1233
1238gene1270 MACH_GENE1270 GENE1270 1234 1238gene1270 MACH_GENE1270 GENE1270 1234
@@ -1418,10 +1418,10 @@ looxc550 MACH_LOOXC550 LOOXC550 1417
1418cnty_titan MACH_CNTY_TITAN CNTY_TITAN 1418 1418cnty_titan MACH_CNTY_TITAN CNTY_TITAN 1418
1419app3xx MACH_APP3XX APP3XX 1419 1419app3xx MACH_APP3XX APP3XX 1419
1420sideoatsgrama MACH_SIDEOATSGRAMA SIDEOATSGRAMA 1420 1420sideoatsgrama MACH_SIDEOATSGRAMA SIDEOATSGRAMA 1420
1421palmtreo700p MACH_PALMTREO700P PALMTREO700P 1421 1421treo700p MACH_TREO700P TREO700P 1421
1422palmtreo700w MACH_PALMTREO700W PALMTREO700W 1422 1422treo700w MACH_TREO700W TREO700W 1422
1423palmtreo750 MACH_PALMTREO750 PALMTREO750 1423 1423treo750 MACH_TREO750 TREO750 1423
1424palmtreo755p MACH_PALMTREO755P PALMTREO755P 1424 1424treo755p MACH_TREO755P TREO755P 1424
1425ezreganut9200 MACH_EZREGANUT9200 EZREGANUT9200 1425 1425ezreganut9200 MACH_EZREGANUT9200 EZREGANUT9200 1425
1426sarge MACH_SARGE SARGE 1426 1426sarge MACH_SARGE SARGE 1426
1427a696 MACH_A696 A696 1427 1427a696 MACH_A696 A696 1427
@@ -1721,7 +1721,7 @@ sapphire MACH_SAPPHIRE SAPPHIRE 1729
1721csb637xo MACH_CSB637XO CSB637XO 1730 1721csb637xo MACH_CSB637XO CSB637XO 1730
1722evisiong MACH_EVISIONG EVISIONG 1731 1722evisiong MACH_EVISIONG EVISIONG 1731
1723stmp37xx MACH_STMP37XX STMP37XX 1732 1723stmp37xx MACH_STMP37XX STMP37XX 1732
1724stmp378x MACH_STMP38XX STMP38XX 1733 1724stmp378x MACH_STMP378X STMP378X 1733
1725tnt MACH_TNT TNT 1734 1725tnt MACH_TNT TNT 1734
1726tbxt MACH_TBXT TBXT 1735 1726tbxt MACH_TBXT TBXT 1735
1727playmate MACH_PLAYMATE PLAYMATE 1736 1727playmate MACH_PLAYMATE PLAYMATE 1736
@@ -1817,7 +1817,7 @@ smdkc100 MACH_SMDKC100 SMDKC100 1826
1817tavorevb MACH_TAVOREVB TAVOREVB 1827 1817tavorevb MACH_TAVOREVB TAVOREVB 1827
1818saar MACH_SAAR SAAR 1828 1818saar MACH_SAAR SAAR 1828
1819deister_eyecam MACH_DEISTER_EYECAM DEISTER_EYECAM 1829 1819deister_eyecam MACH_DEISTER_EYECAM DEISTER_EYECAM 1829
1820at91sam9m10ek MACH_AT91SAM9M10EK AT91SAM9M10EK 1830 1820at91sam9m10g45ek MACH_AT91SAM9M10G45EK AT91SAM9M10G45EK 1830
1821linkstation_produo MACH_LINKSTATION_PRODUO LINKSTATION_PRODUO 1831 1821linkstation_produo MACH_LINKSTATION_PRODUO LINKSTATION_PRODUO 1831
1822hit_b0 MACH_HIT_B0 HIT_B0 1832 1822hit_b0 MACH_HIT_B0 HIT_B0 1832
1823adx_rmu MACH_ADX_RMU ADX_RMU 1833 1823adx_rmu MACH_ADX_RMU ADX_RMU 1833
@@ -2132,3 +2132,116 @@ apollo MACH_APOLLO APOLLO 2141
2132at91cap9stk MACH_AT91CAP9STK AT91CAP9STK 2142 2132at91cap9stk MACH_AT91CAP9STK AT91CAP9STK 2142
2133spc300 MACH_SPC300 SPC300 2143 2133spc300 MACH_SPC300 SPC300 2143
2134eko MACH_EKO EKO 2144 2134eko MACH_EKO EKO 2144
2135ccw9m2443 MACH_CCW9M2443 CCW9M2443 2145
2136ccw9m2443js MACH_CCW9M2443JS CCW9M2443JS 2146
2137m2m_router_device MACH_M2M_ROUTER_DEVICE M2M_ROUTER_DEVICE 2147
2138str9104nas MACH_STAR9104NAS STAR9104NAS 2148
2139pca100 MACH_PCA100 PCA100 2149
2140z3_dm365_mod_01 MACH_Z3_DM365_MOD_01 Z3_DM365_MOD_01 2150
2141hipox MACH_HIPOX HIPOX 2151
2142omap3_piteds MACH_OMAP3_PITEDS OMAP3_PITEDS 2152
2143bm150r MACH_BM150R BM150R 2153
2144tbone MACH_TBONE TBONE 2154
2145merlin MACH_MERLIN MERLIN 2155
2146falcon MACH_FALCON FALCON 2156
2147davinci_da850_evm MACH_DAVINCI_DA850_EVM DAVINCI_DA850_EVM 2157
2148s5p6440 MACH_S5P6440 S5P6440 2158
2149at91sam9g10ek MACH_AT91SAM9G10EK AT91SAM9G10EK 2159
2150omap_4430sdp MACH_OMAP_4430SDP OMAP_4430SDP 2160
2151lpc313x MACH_LPC313X LPC313X 2161
2152magx_zn5 MACH_MAGX_ZN5 MAGX_ZN5 2162
2153magx_em30 MACH_MAGX_EM30 MAGX_EM30 2163
2154magx_ve66 MACH_MAGX_VE66 MAGX_VE66 2164
2155meesc MACH_MEESC MEESC 2165
2156otc570 MACH_OTC570 OTC570 2166
2157bcu2412 MACH_BCU2412 BCU2412 2167
2158beacon MACH_BEACON BEACON 2168
2159actia_tgw MACH_ACTIA_TGW ACTIA_TGW 2169
2160e4430 MACH_E4430 E4430 2170
2161ql300 MACH_QL300 QL300 2171
2162btmavb101 MACH_BTMAVB101 BTMAVB101 2172
2163btmawb101 MACH_BTMAWB101 BTMAWB101 2173
2164sq201 MACH_SQ201 SQ201 2174
2165quatro45xx MACH_QUATRO45XX QUATRO45XX 2175
2166openpad MACH_OPENPAD OPENPAD 2176
2167tx25 MACH_TX25 TX25 2177
2168omap3_torpedo MACH_OMAP3_TORPEDO OMAP3_TORPEDO 2178
2169htcraphael_k MACH_HTCRAPHAEL_K HTCRAPHAEL_K 2179
2170lal43 MACH_LAL43 LAL43 2181
2171htcraphael_cdma500 MACH_HTCRAPHAEL_CDMA500 HTCRAPHAEL_CDMA500 2182
2172anw6410 MACH_ANW6410 ANW6410 2183
2173htcprophet MACH_HTCPROPHET HTCPROPHET 2185
2174cfa_10022 MACH_CFA_10022 CFA_10022 2186
2175imx27_visstrim_m10 MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10 2187
2176px2imx27 MACH_PX2IMX27 PX2IMX27 2188
2177stm3210e_eval MACH_STM3210E_EVAL STM3210E_EVAL 2189
2178dvs10 MACH_DVS10 DVS10 2190
2179portuxg20 MACH_PORTUXG20 PORTUXG20 2191
2180arm_spv MACH_ARM_SPV ARM_SPV 2192
2181smdkc110 MACH_SMDKC110 SMDKC110 2193
2182cabespresso MACH_CABESPRESSO CABESPRESSO 2194
2183hmc800 MACH_HMC800 HMC800 2195
2184sholes MACH_SHOLES SHOLES 2196
2185btmxc31 MACH_BTMXC31 BTMXC31 2197
2186dt501 MACH_DT501 DT501 2198
2187ktx MACH_KTX KTX 2199
2188omap3517evm MACH_OMAP3517EVM OMAP3517EVM 2200
2189netspace_v2 MACH_NETSPACE_V2 NETSPACE_V2 2201
2190netspace_max_v2 MACH_NETSPACE_MAX_V2 NETSPACE_MAX_V2 2202
2191d2net_v2 MACH_D2NET_V2 D2NET_V2 2203
2192net2big_v2 MACH_NET2BIG_V2 NET2BIG_V2 2204
2193net4big_v2 MACH_NET4BIG_V2 NET4BIG_V2 2205
2194net5big_v2 MACH_NET5BIG_V2 NET5BIG_V2 2206
2195endb2443 MACH_ENDB2443 ENDB2443 2207
2196inetspace_v2 MACH_INETSPACE_V2 INETSPACE_V2 2208
2197tros MACH_TROS TROS 2209
2198pelco_homer MACH_PELCO_HOMER PELCO_HOMER 2210
2199ofsp8 MACH_OFSP8 OFSP8 2211
2200at91sam9g45ekes MACH_AT91SAM9G45EKES AT91SAM9G45EKES 2212
2201guf_cupid MACH_GUF_CUPID GUF_CUPID 2213
2202eab1r MACH_EAB1R EAB1R 2214
2203desirec MACH_DESIREC DESIREC 2215
2204cordoba MACH_CORDOBA CORDOBA 2216
2205irvine MACH_IRVINE IRVINE 2217
2206sff772 MACH_SFF772 SFF772 2218
2207pelco_milano MACH_PELCO_MILANO PELCO_MILANO 2219
2208pc7302 MACH_PC7302 PC7302 2220
2209bip6000 MACH_BIP6000 BIP6000 2221
2210silvermoon MACH_SILVERMOON SILVERMOON 2222
2211vc0830 MACH_VC0830 VC0830 2223
2212dt430 MACH_DT430 DT430 2224
2213ji42pf MACH_JI42PF JI42PF 2225
2214gnet_ksm MACH_GNET_KSM GNET_KSM 2226
2215gnet_sgm MACH_GNET_SGM GNET_SGM 2227
2216gnet_sgr MACH_GNET_SGR GNET_SGR 2228
2217omap3_icetekevm MACH_OMAP3_ICETEKEVM OMAP3_ICETEKEVM 2229
2218pnp MACH_PNP PNP 2230
2219ctera_2bay_k MACH_CTERA_2BAY_K CTERA_2BAY_K 2231
2220ctera_2bay_u MACH_CTERA_2BAY_U CTERA_2BAY_U 2232
2221sas_c MACH_SAS_C SAS_C 2233
2222vma2315 MACH_VMA2315 VMA2315 2234
2223vcs MACH_VCS VCS 2235
2224spear600 MACH_SPEAR600 SPEAR600 2236
2225spear300 MACH_SPEAR300 SPEAR300 2237
2226spear1300 MACH_SPEAR1300 SPEAR1300 2238
2227lilly1131 MACH_LILLY1131 LILLY1131 2239
2228arvoo_ax301 MACH_ARVOO_AX301 ARVOO_AX301 2240
2229mapphone MACH_MAPPHONE MAPPHONE 2241
2230legend MACH_LEGEND LEGEND 2242
2231salsa MACH_SALSA SALSA 2243
2232lounge MACH_LOUNGE LOUNGE 2244
2233vision MACH_VISION VISION 2245
2234vmb20 MACH_VMB20 VMB20 2246
2235hy2410 MACH_HY2410 HY2410 2247
2236hy9315 MACH_HY9315 HY9315 2248
2237bullwinkle MACH_BULLWINKLE BULLWINKLE 2249
2238arm_ultimator2 MACH_ARM_ULTIMATOR2 ARM_ULTIMATOR2 2250
2239vs_v210 MACH_VS_V210 VS_V210 2252
2240vs_v212 MACH_VS_V212 VS_V212 2253
2241hmt MACH_HMT HMT 2254
2242suen3 MACH_SUEN3 SUEN3 2255
2243vesper MACH_VESPER VESPER 2256
2244str9 MACH_STR9 STR9 2257
2245omap3_wl_ff MACH_OMAP3_WL_FF OMAP3_WL_FF 2258
2246simcom MACH_SIMCOM SIMCOM 2259
2247mcwebio MACH_MCWEBIO MCWEBIO 2260
diff --git a/arch/blackfin/include/asm/.gitignore b/arch/blackfin/include/asm/.gitignore
deleted file mode 100644
index 7858564a4466..000000000000
--- a/arch/blackfin/include/asm/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
1+mach
diff --git a/arch/blackfin/include/asm/flat.h b/arch/blackfin/include/asm/flat.h
index e70074e05f4e..733a178d782d 100644
--- a/arch/blackfin/include/asm/flat.h
+++ b/arch/blackfin/include/asm/flat.h
@@ -10,7 +10,6 @@
10 10
11#include <asm/unaligned.h> 11#include <asm/unaligned.h>
12 12
13#define flat_stack_align(sp) /* nothing needed */
14#define flat_argvp_envp_on_stack() 0 13#define flat_argvp_envp_on_stack() 0
15#define flat_old_ram_flag(flags) (flags) 14#define flat_old_ram_flag(flags) (flags)
16 15
diff --git a/arch/blackfin/include/asm/unistd.h b/arch/blackfin/include/asm/unistd.h
index 1e57b636e0bc..cf5066d3efd2 100644
--- a/arch/blackfin/include/asm/unistd.h
+++ b/arch/blackfin/include/asm/unistd.h
@@ -378,8 +378,10 @@
378#define __NR_dup3 363 378#define __NR_dup3 363
379#define __NR_pipe2 364 379#define __NR_pipe2 364
380#define __NR_inotify_init1 365 380#define __NR_inotify_init1 365
381#define __NR_preadv 366
382#define __NR_pwritev 367
381 383
382#define __NR_syscall 366 384#define __NR_syscall 368
383#define NR_syscalls __NR_syscall 385#define NR_syscalls __NR_syscall
384 386
385/* Old optional stuff no one actually uses */ 387/* Old optional stuff no one actually uses */
diff --git a/arch/blackfin/kernel/.gitignore b/arch/blackfin/kernel/.gitignore
new file mode 100644
index 000000000000..c5f676c3c224
--- /dev/null
+++ b/arch/blackfin/kernel/.gitignore
@@ -0,0 +1 @@
vmlinux.lds
diff --git a/arch/blackfin/lib/strncmp.c b/arch/blackfin/lib/strncmp.c
index 2aaae78a68e0..46518b1d2983 100644
--- a/arch/blackfin/lib/strncmp.c
+++ b/arch/blackfin/lib/strncmp.c
@@ -8,9 +8,8 @@
8 8
9#define strncmp __inline_strncmp 9#define strncmp __inline_strncmp
10#include <asm/string.h> 10#include <asm/string.h>
11#undef strncmp
12
13#include <linux/module.h> 11#include <linux/module.h>
12#undef strncmp
14 13
15int strncmp(const char *cs, const char *ct, size_t count) 14int strncmp(const char *cs, const char *ct, size_t count)
16{ 15{
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index 21e65a339a22..a063a434f7e3 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -1581,6 +1581,8 @@ ENTRY(_sys_call_table)
1581 .long _sys_dup3 1581 .long _sys_dup3
1582 .long _sys_pipe2 1582 .long _sys_pipe2
1583 .long _sys_inotify_init1 /* 365 */ 1583 .long _sys_inotify_init1 /* 365 */
1584 .long _sys_preadv
1585 .long _sys_pwritev
1584 1586
1585 .rept NR_syscalls-(.-_sys_call_table)/4 1587 .rept NR_syscalls-(.-_sys_call_table)/4
1586 .long _sys_ni_syscall 1588 .long _sys_ni_syscall
diff --git a/arch/cris/Makefile b/arch/cris/Makefile
index 3662cfb7b61d..71e17d3eeddb 100644
--- a/arch/cris/Makefile
+++ b/arch/cris/Makefile
@@ -70,7 +70,7 @@ SRC_ARCH = $(srctree)/arch/cris
70# cris object files path 70# cris object files path
71OBJ_ARCH = $(objtree)/arch/cris 71OBJ_ARCH = $(objtree)/arch/cris
72 72
73boot := arch/cris/$(SARCH)/boot 73boot := arch/cris/boot
74MACHINE := arch/cris/$(SARCH) 74MACHINE := arch/cris/$(SARCH)
75 75
76all: zImage 76all: zImage
@@ -81,15 +81,15 @@ zImage Image: vmlinux
81archprepare: 81archprepare:
82 82
83archclean: 83archclean:
84 $(Q)if [ -e arch/cris/$(SARCH)/boot ]; then \ 84 $(Q)if [ -e arch/cris/boot ]; then \
85 $(MAKE) $(clean)=arch/cris/$(SARCH)/boot; \ 85 $(MAKE) $(clean)=arch/cris/boot; \
86 fi 86 fi
87 87
88CLEAN_FILES += \ 88CLEAN_FILES += \
89 $(MACHINE)/boot/zImage \ 89 $(boot)/zImage \
90 $(MACHINE)/boot/compressed/decompress.bin \ 90 $(boot)/compressed/decompress.bin \
91 $(MACHINE)/boot/compressed/piggy.gz \ 91 $(boot)/compressed/piggy.gz \
92 $(MACHINE)/boot/rescue/rescue.bin 92 $(boot)/rescue/rescue.bin
93 93
94 94
95# MRPROPER_FILES += 95# MRPROPER_FILES +=
diff --git a/arch/cris/arch-v10/boot/Makefile b/arch/cris/arch-v10/boot/Makefile
deleted file mode 100644
index 217203014433..000000000000
--- a/arch/cris/arch-v10/boot/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
1#
2# arch/cris/arch-v10/boot/Makefile
3#
4
5OBJCOPYFLAGS = -O binary --remove-section=.bss
6
7subdir- := compressed rescue
8targets := Image
9
10$(obj)/Image: vmlinux FORCE
11 $(call if_changed,objcopy)
12 @echo ' Kernel: $@ is ready'
13
14$(obj)/compressed/vmlinux: $(obj)/Image FORCE
15 $(Q)$(MAKE) $(build)=$(obj)/compressed $@
16 $(Q)$(MAKE) $(build)=$(obj)/rescue $(obj)/rescue/rescue.bin
17
18$(obj)/zImage: $(obj)/compressed/vmlinux
19 @cp $< $@
20 @echo ' Kernel: $@ is ready'
diff --git a/arch/cris/arch-v10/boot/compressed/README b/arch/cris/arch-v10/boot/compressed/README
deleted file mode 100644
index 48b3db9924b9..000000000000
--- a/arch/cris/arch-v10/boot/compressed/README
+++ /dev/null
@@ -1,25 +0,0 @@
1Creation of the self-extracting compressed kernel image (vmlinuz)
2-----------------------------------------------------------------
3$Id: README,v 1.1 2001/12/17 13:59:27 bjornw Exp $
4
5This can be slightly confusing because it's a process with many steps.
6
7The kernel object built by the arch/etrax100/Makefile, vmlinux, is split
8by that makefile into text and data binary files, vmlinux.text and
9vmlinux.data.
10
11Those files together with a ROM filesystem can be catted together and
12burned into a flash or executed directly at the DRAM origin.
13
14They can also be catted together and compressed with gzip, which is what
15happens in this makefile. Together they make up piggy.img.
16
17The decompressor is built into the file decompress.o. It is turned into
18the binary file decompress.bin, which is catted together with piggy.img
19into the file vmlinuz. It can be executed in an arbitrary place in flash.
20
21Be careful - it assumes some things about free locations in DRAM. It
22assumes the DRAM starts at 0x40000000 and that it is at least 8 MB,
23so it puts its code at 0x40700000, and initial stack at 0x40800000.
24
25-Bjorn
diff --git a/arch/cris/arch-v10/boot/compressed/misc.c b/arch/cris/arch-v10/boot/compressed/misc.c
deleted file mode 100644
index a4db1507d3b1..000000000000
--- a/arch/cris/arch-v10/boot/compressed/misc.c
+++ /dev/null
@@ -1,246 +0,0 @@
1/*
2 * misc.c
3 *
4 * This is a collection of several routines from gzip-1.0.3
5 * adapted for Linux.
6 *
7 * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
8 * puts by Nick Holloway 1993, better puts by Martin Mares 1995
9 * adaptation for Linux/CRIS Axis Communications AB, 1999
10 *
11 */
12
13/* where the piggybacked kernel image expects itself to live.
14 * it is the same address we use when we network load an uncompressed
15 * image into DRAM, and it is the address the kernel is linked to live
16 * at by vmlinux.lds.S
17 */
18
19#define KERNEL_LOAD_ADR 0x40004000
20
21
22#include <linux/types.h>
23#include <arch/svinto.h>
24
25/*
26 * gzip declarations
27 */
28
29#define OF(args) args
30#define STATIC static
31
32void *memset(void *s, int c, size_t n);
33void *memcpy(void *__dest, __const void *__src, size_t __n);
34
35#define memzero(s, n) memset((s), 0, (n))
36
37typedef unsigned char uch;
38typedef unsigned short ush;
39typedef unsigned long ulg;
40
41#define WSIZE 0x8000 /* Window size must be at least 32k, */
42 /* and a power of two */
43
44static uch *inbuf; /* input buffer */
45static uch window[WSIZE]; /* Sliding window buffer */
46
47unsigned inptr = 0; /* index of next byte to be processed in inbuf
48 * After decompression it will contain the
49 * compressed size, and head.S will read it.
50 */
51
52static unsigned outcnt = 0; /* bytes in output buffer */
53
54/* gzip flag byte */
55#define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */
56#define CONTINUATION 0x02 /* bit 1 set: continuation of multi-part gzip file */
57#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */
58#define ORIG_NAME 0x08 /* bit 3 set: original file name present */
59#define COMMENT 0x10 /* bit 4 set: file comment present */
60#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */
61#define RESERVED 0xC0 /* bit 6,7: reserved */
62
63#define get_byte() (inbuf[inptr++])
64
65/* Diagnostic functions */
66#ifdef DEBUG
67# define Assert(cond, msg) do { \
68 if (!(cond)) \
69 error(msg); \
70 } while (0)
71# define Trace(x) fprintf x
72# define Tracev(x) do { \
73 if (verbose) \
74 fprintf x; \
75 } while (0)
76# define Tracevv(x) do { \
77 if (verbose > 1) \
78 fprintf x; \
79 } while (0)
80# define Tracec(c, x) do { \
81 if (verbose && (c)) \
82 fprintf x; \
83 } while (0)
84# define Tracecv(c, x) do { \
85 if (verbose > 1 && (c)) \
86 fprintf x; \
87 } while (0)
88#else
89# define Assert(cond, msg)
90# define Trace(x)
91# define Tracev(x)
92# define Tracevv(x)
93# define Tracec(c, x)
94# define Tracecv(c, x)
95#endif
96
97static void flush_window(void);
98static void error(char *m);
99
100extern char *input_data; /* lives in head.S */
101
102static long bytes_out = 0;
103static uch *output_data;
104static unsigned long output_ptr = 0;
105static void puts(const char *);
106
107/* the "heap" is put directly after the BSS ends, at end */
108
109extern int _end;
110static long free_mem_ptr = (long)&_end;
111static long free_mem_end_ptr;
112
113#include "../../../../../lib/inflate.c"
114
115/* decompressor info and error messages to serial console */
116
117static void
118puts(const char *s)
119{
120#ifndef CONFIG_ETRAX_DEBUG_PORT_NULL
121 while (*s) {
122#ifdef CONFIG_ETRAX_DEBUG_PORT0
123 while (!(*R_SERIAL0_STATUS & (1 << 5))) ;
124 *R_SERIAL0_TR_DATA = *s++;
125#endif
126#ifdef CONFIG_ETRAX_DEBUG_PORT1
127 while (!(*R_SERIAL1_STATUS & (1 << 5))) ;
128 *R_SERIAL1_TR_DATA = *s++;
129#endif
130#ifdef CONFIG_ETRAX_DEBUG_PORT2
131 while (!(*R_SERIAL2_STATUS & (1 << 5))) ;
132 *R_SERIAL2_TR_DATA = *s++;
133#endif
134#ifdef CONFIG_ETRAX_DEBUG_PORT3
135 while (!(*R_SERIAL3_STATUS & (1 << 5))) ;
136 *R_SERIAL3_TR_DATA = *s++;
137#endif
138 }
139#endif
140}
141
142void *memset(void *s, int c, size_t n)
143{
144 int i;
145 char *ss = (char *)s;
146
147 for (i = 0; i < n; i++)
148 ss[i] = c;
149
150 return s;
151}
152
153void *memcpy(void *__dest, __const void *__src, size_t __n)
154{
155 int i;
156 char *d = (char *)__dest, *s = (char *)__src;
157
158 for (i = 0; i < __n; i++)
159 d[i] = s[i];
160
161 return __dest;
162}
163
164/* ===========================================================================
165 * Write the output window window[0..outcnt-1] and update crc and bytes_out.
166 * (Used for the decompressed data only.)
167 */
168
169static void flush_window(void)
170{
171 ulg c = crc; /* temporary variable */
172 unsigned n;
173 uch *in, *out, ch;
174
175 in = window;
176 out = &output_data[output_ptr];
177 for (n = 0; n < outcnt; n++) {
178 ch = *out = *in;
179 out++;
180 in++;
181 c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8);
182 }
183 crc = c;
184 bytes_out += (ulg)outcnt;
185 output_ptr += (ulg)outcnt;
186 outcnt = 0;
187}
188
189static void error(char *x)
190{
191 puts("\n\n");
192 puts(x);
193 puts("\n\n -- System halted\n");
194
195 while (1); /* Halt */
196}
197
198void setup_normal_output_buffer(void)
199{
200 output_data = (char *)KERNEL_LOAD_ADR;
201}
202
203void decompress_kernel(void)
204{
205 char revision;
206
207 /* input_data is set in head.S */
208 inbuf = input_data;
209
210#ifdef CONFIG_ETRAX_DEBUG_PORT0
211 *R_SERIAL0_XOFF = 0;
212 *R_SERIAL0_BAUD = 0x99;
213 *R_SERIAL0_TR_CTRL = 0x40;
214#endif
215#ifdef CONFIG_ETRAX_DEBUG_PORT1
216 *R_SERIAL1_XOFF = 0;
217 *R_SERIAL1_BAUD = 0x99;
218 *R_SERIAL1_TR_CTRL = 0x40;
219#endif
220#ifdef CONFIG_ETRAX_DEBUG_PORT2
221 *R_GEN_CONFIG = 0x08;
222 *R_SERIAL2_XOFF = 0;
223 *R_SERIAL2_BAUD = 0x99;
224 *R_SERIAL2_TR_CTRL = 0x40;
225#endif
226#ifdef CONFIG_ETRAX_DEBUG_PORT3
227 *R_GEN_CONFIG = 0x100;
228 *R_SERIAL3_XOFF = 0;
229 *R_SERIAL3_BAUD = 0x99;
230 *R_SERIAL3_TR_CTRL = 0x40;
231#endif
232
233 setup_normal_output_buffer();
234
235 makecrc();
236
237 __asm__ volatile ("move $vr,%0" : "=rm" (revision));
238 if (revision < 10) {
239 puts("You need an ETRAX 100LX to run linux 2.6\n");
240 while (1);
241 }
242
243 puts("Uncompressing Linux...\n");
244 gunzip();
245 puts("Done. Now booting the kernel.\n");
246}
diff --git a/arch/cris/arch-v10/kernel/entry.S b/arch/cris/arch-v10/kernel/entry.S
index 72f5cd319b97..2c18d08cd913 100644
--- a/arch/cris/arch-v10/kernel/entry.S
+++ b/arch/cris/arch-v10/kernel/entry.S
@@ -536,10 +536,10 @@ multiple_interrupt:
536 movem $r13, [$sp] 536 movem $r13, [$sp]
537 push $r10 ; push orig_r10 537 push $r10 ; push orig_r10
538 clear.d [$sp=$sp-4] ; frametype == 0, normal frame 538 clear.d [$sp=$sp-4] ; frametype == 0, normal frame
539 539
540 move.d $sp, $r10 540 move.d $sp, $r10
541 jsr do_multiple_IRQ 541 jsr do_multiple_IRQ
542 542
543 jump ret_from_intr 543 jump ret_from_intr
544 544
545do_sigtrap: 545do_sigtrap:
@@ -585,7 +585,7 @@ _ugdb_handle_breakpoint:
585 pop $r0 ; Restore r0. 585 pop $r0 ; Restore r0.
586 ba do_sigtrap ; SIGTRAP the offending process. 586 ba do_sigtrap ; SIGTRAP the offending process.
587 pop $dccr ; Restore dccr in delay slot. 587 pop $dccr ; Restore dccr in delay slot.
588 588
589 .global kernel_execve 589 .global kernel_execve
590kernel_execve: 590kernel_execve:
591 move.d __NR_execve, $r9 591 move.d __NR_execve, $r9
@@ -929,6 +929,14 @@ sys_call_table:
929 .long sys_fallocate 929 .long sys_fallocate
930 .long sys_timerfd_settime /* 325 */ 930 .long sys_timerfd_settime /* 325 */
931 .long sys_timerfd_gettime 931 .long sys_timerfd_gettime
932 .long sys_signalfd4
933 .long sys_eventfd2
934 .long sys_epoll_create1
935 .long sys_dup3 /* 330 */
936 .long sys_pipe2
937 .long sys_inotify_init1
938 .long sys_preadv
939 .long sys_pwritev
932 940
933 /* 941 /*
934 * NOTE!! This doesn't have to be exact - we just have 942 * NOTE!! This doesn't have to be exact - we just have
diff --git a/arch/cris/arch-v32/boot/compressed/Makefile b/arch/cris/arch-v32/boot/compressed/Makefile
deleted file mode 100644
index e176b8b69d92..000000000000
--- a/arch/cris/arch-v32/boot/compressed/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
1#
2# arch/cris/arch-v32/boot/compressed/Makefile
3#
4
5asflags-y += -I$(srctree)/include/asm/mach/ -I$(srctree)/include/asm/arch
6ccflags-y += -O2 -I$(srctree)/include/asm/mach/ -I$(srctree)/include/asm/arch
7ldflags-y += -T$(srctree)/$(src)/decompress.lds
8OBJECTS = $(obj)/head.o $(obj)/misc.o
9OBJCOPYFLAGS = -O binary --remove-section=.bss
10
11quiet_cmd_image = BUILD $@
12cmd_image = cat $(obj)/decompress.bin $(obj)/piggy.gz > $@
13
14targets := vmlinux piggy.gz decompress.o decompress.bin
15
16$(obj)/decompress.o: $(OBJECTS) FORCE
17 $(call if_changed,ld)
18
19$(obj)/decompress.bin: $(obj)/decompress.o FORCE
20 $(call if_changed,objcopy)
21
22$(obj)/vmlinux: $(obj)/piggy.gz $(obj)/decompress.bin FORCE
23 $(call if_changed,image)
24
25$(obj)/piggy.gz: $(obj)/../Image FORCE
26 $(call if_changed,gzip)
diff --git a/arch/cris/arch-v32/boot/rescue/Makefile b/arch/cris/arch-v32/boot/rescue/Makefile
deleted file mode 100644
index 566aac663a38..000000000000
--- a/arch/cris/arch-v32/boot/rescue/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
1#
2# Makefile for rescue (bootstrap) code
3#
4
5CC = gcc-cris -mlinux -march=v32 $(LINUXINCLUDE)
6ccflags-y += -O2 -I $(srctree)/include/asm/arch/mach/ \
7 -I $(srctree)/include/asm/arch
8asflags-y += -I $(srctree)/include/asm/arch/mach/ -I $(srctree)/include/asm/arch
9LD = gcc-cris -mlinux -march=v32 -nostdlib
10ldflags-y += -T $(srctree)/$(src)/rescue.lds
11LDPOSTFLAGS = -lgcc
12OBJCOPYFLAGS = -O binary --remove-section=.bss
13obj-$(CONFIG_ETRAX_AXISFLASHMAP) = head.o
14OBJECT := $(obj)/head.o
15
16targets := rescue.o rescue.bin
17
18quiet_cmd_ldlibgcc = LD $@
19cmd_ldlibgcc = $(LD) $(LDFLAGS) $(filter-out FORCE,$^) $(LDPOSTFLAGS) -o $@
20
21$(obj)/rescue.o: $(OBJECTS) FORCE
22 $(call if_changed,ldlibgcc)
23
24$(obj)/rescue.bin: $(obj)/rescue.o FORCE
25 $(call if_changed,objcopy)
26 cp -p $(obj)/rescue.bin $(objtree)
diff --git a/arch/cris/arch-v32/drivers/mach-a3/gpio.c b/arch/cris/arch-v32/drivers/mach-a3/gpio.c
index 7a87bc0ae2e8..97357cfd17bb 100644
--- a/arch/cris/arch-v32/drivers/mach-a3/gpio.c
+++ b/arch/cris/arch-v32/drivers/mach-a3/gpio.c
@@ -681,7 +681,7 @@ static int virtual_gpio_ioctl(struct file *file, unsigned int cmd,
681 shadow |= ~readl(dir_oe[priv->minor]) | 681 shadow |= ~readl(dir_oe[priv->minor]) |
682 (arg & changeable_bits[priv->minor]); 682 (arg & changeable_bits[priv->minor]);
683 i2c_write(VIRT_I2C_ADDR, (void *)&shadow, sizeof(shadow)); 683 i2c_write(VIRT_I2C_ADDR, (void *)&shadow, sizeof(shadow));
684 spin_lock_irqrestore(&gpio_lock, flags); 684 spin_unlock_irqrestore(&gpio_lock, flags);
685 break; 685 break;
686 case IO_CLRBITS: 686 case IO_CLRBITS:
687 spin_lock_irqsave(&gpio_lock, flags); 687 spin_lock_irqsave(&gpio_lock, flags);
@@ -690,7 +690,7 @@ static int virtual_gpio_ioctl(struct file *file, unsigned int cmd,
690 shadow |= ~readl(dir_oe[priv->minor]) & 690 shadow |= ~readl(dir_oe[priv->minor]) &
691 ~(arg & changeable_bits[priv->minor]); 691 ~(arg & changeable_bits[priv->minor]);
692 i2c_write(VIRT_I2C_ADDR, (void *)&shadow, sizeof(shadow)); 692 i2c_write(VIRT_I2C_ADDR, (void *)&shadow, sizeof(shadow));
693 spin_lock_irqrestore(&gpio_lock, flags); 693 spin_unlock_irqrestore(&gpio_lock, flags);
694 break; 694 break;
695 case IO_HIGHALARM: 695 case IO_HIGHALARM:
696 /* Set alarm when bits with 1 in arg go high. */ 696 /* Set alarm when bits with 1 in arg go high. */
diff --git a/arch/cris/arch-v32/kernel/Makefile b/arch/cris/arch-v32/kernel/Makefile
index 993d987b0078..40358355d0cb 100644
--- a/arch/cris/arch-v32/kernel/Makefile
+++ b/arch/cris/arch-v32/kernel/Makefile
@@ -9,8 +9,6 @@ obj-y := entry.o traps.o irq.o debugport.o \
9 process.o ptrace.o setup.o signal.o traps.o time.o \ 9 process.o ptrace.o setup.o signal.o traps.o time.o \
10 cache.o cacheflush.o 10 cache.o cacheflush.o
11 11
12obj-$(CONFIG_ETRAXFS_SIM) += vcs_hook.o
13
14obj-$(CONFIG_SMP) += smp.o 12obj-$(CONFIG_SMP) += smp.o
15obj-$(CONFIG_ETRAX_KGDB) += kgdb.o kgdb_asm.o 13obj-$(CONFIG_ETRAX_KGDB) += kgdb.o kgdb_asm.o
16obj-$(CONFIG_ETRAX_FAST_TIMER) += fasttimer.o 14obj-$(CONFIG_ETRAX_FAST_TIMER) += fasttimer.o
diff --git a/arch/cris/arch-v32/kernel/entry.S b/arch/cris/arch-v32/kernel/entry.S
index 5e674c8f7c51..435b9671bd4b 100644
--- a/arch/cris/arch-v32/kernel/entry.S
+++ b/arch/cris/arch-v32/kernel/entry.S
@@ -852,6 +852,14 @@ sys_call_table:
852 .long sys_fallocate 852 .long sys_fallocate
853 .long sys_timerfd_settime /* 325 */ 853 .long sys_timerfd_settime /* 325 */
854 .long sys_timerfd_gettime 854 .long sys_timerfd_gettime
855 .long sys_signalfd4
856 .long sys_eventfd2
857 .long sys_epoll_create1
858 .long sys_dup3 /* 330 */
859 .long sys_pipe2
860 .long sys_inotify_init1
861 .long sys_preadv
862 .long sys_pwritev
855 863
856 /* 864 /*
857 * NOTE!! This doesn't have to be exact - we just have 865 * NOTE!! This doesn't have to be exact - we just have
diff --git a/arch/cris/arch-v10/boot/.gitignore b/arch/cris/boot/.gitignore
index 171a0853caf8..171a0853caf8 100644
--- a/arch/cris/arch-v10/boot/.gitignore
+++ b/arch/cris/boot/.gitignore
diff --git a/arch/cris/arch-v32/boot/Makefile b/arch/cris/boot/Makefile
index 99896ad60b30..144f3afa0119 100644
--- a/arch/cris/arch-v32/boot/Makefile
+++ b/arch/cris/boot/Makefile
@@ -1,8 +1,12 @@
1# 1#
2# arch/cris/arch-v32/boot/Makefile 2# arch/cris/boot/Makefile
3# 3#
4 4
5OBJCOPYFLAGS = -O binary -R .note -R .comment 5objcopyflags-$(CONFIG_ETRAX_ARCH_V10) += -R .note -R .comment
6objcopyflags-$(CONFIG_ETRAX_ARCH_V32) += --remove-section=.bss
7
8OBJCOPYFLAGS = -O binary $(objcopyflags-y)
9
6 10
7subdir- := compressed rescue 11subdir- := compressed rescue
8targets := Image 12targets := Image
diff --git a/arch/cris/arch-v10/boot/compressed/Makefile b/arch/cris/boot/compressed/Makefile
index 6fe0ffaf3be6..8fe9338c1775 100644
--- a/arch/cris/arch-v10/boot/compressed/Makefile
+++ b/arch/cris/boot/compressed/Makefile
@@ -1,11 +1,23 @@
1# 1#
2# arch/cris/arch-v10/boot/compressed/Makefile 2# arch/cris/boot/compressed/Makefile
3# 3#
4 4
5asflags-y += $(LINUXINCLUDE) 5asflags-y += $(LINUXINCLUDE)
6ccflags-y += -O2 $(LINUXINCLUDE) 6ccflags-y += -O2 $(LINUXINCLUDE)
7ldflags-y += -T $(srctree)/$(src)/decompress.lds 7
8OBJECTS = $(obj)/head.o $(obj)/misc.o 8# asflags-$(CONFIG_ETRAX_ARCH_V32) += -I$(srctree)/include/asm/mach \
9# -I$(srctree)/include/asm/arch
10# ccflags-$(CONFIG_ETRAX_ARCH_V32) += -O2 -I$(srctree)/include/asm/mach
11# -I$(srctree)/include/asm/arch
12
13arch-$(CONFIG_ETRAX_ARCH_V10) = v10
14arch-$(CONFIG_ETRAX_ARCH_V32) = v32
15
16ldflags-y += -T $(srctree)/$(src)/decompress_$(arch-y).lds
17
18OBJECTS-$(CONFIG_ETRAX_ARCH_V32) = $(obj)/head_v32.o
19OBJECTS-$(CONFIG_ETRAX_ARCH_V10) = $(obj)/head_v10.o
20OBJECTS= $(OBJECTS-y) $(obj)/misc.o
9OBJCOPYFLAGS = -O binary --remove-section=.bss 21OBJCOPYFLAGS = -O binary --remove-section=.bss
10 22
11quiet_cmd_image = BUILD $@ 23quiet_cmd_image = BUILD $@
@@ -24,4 +36,3 @@ $(obj)/vmlinux: $(obj)/piggy.gz $(obj)/decompress.bin FORCE
24 36
25$(obj)/piggy.gz: $(obj)/../Image FORCE 37$(obj)/piggy.gz: $(obj)/../Image FORCE
26 $(call if_changed,gzip) 38 $(call if_changed,gzip)
27
diff --git a/arch/cris/arch-v32/boot/compressed/README b/arch/cris/boot/compressed/README
index 182c5d75784b..182c5d75784b 100644
--- a/arch/cris/arch-v32/boot/compressed/README
+++ b/arch/cris/boot/compressed/README
diff --git a/arch/cris/arch-v10/boot/compressed/decompress.lds b/arch/cris/boot/compressed/decompress_v10.lds
index e80f4594d543..e80f4594d543 100644
--- a/arch/cris/arch-v10/boot/compressed/decompress.lds
+++ b/arch/cris/boot/compressed/decompress_v10.lds
diff --git a/arch/cris/arch-v32/boot/compressed/decompress.lds b/arch/cris/boot/compressed/decompress_v32.lds
index 3c837feca3ac..3c837feca3ac 100644
--- a/arch/cris/arch-v32/boot/compressed/decompress.lds
+++ b/arch/cris/boot/compressed/decompress_v32.lds
diff --git a/arch/cris/arch-v10/boot/compressed/head.S b/arch/cris/boot/compressed/head_v10.S
index 0bb4dcc29254..9edb8ade7e1f 100644
--- a/arch/cris/arch-v10/boot/compressed/head.S
+++ b/arch/cris/boot/compressed/head_v10.S
@@ -30,7 +30,7 @@
30 beq dram_init_finished 30 beq dram_init_finished
31 nop 31 nop
32 32
33#include "../../lib/dram_init.S" 33#include "../../arch-v10/lib/dram_init.S"
34 34
35dram_init_finished: 35dram_init_finished:
36 36
@@ -123,4 +123,4 @@ _cmd_line_magic:
123 .dword 0 123 .dword 0
124_cmd_line_addr: 124_cmd_line_addr:
125 .dword 0 125 .dword 0
126#include "../../lib/hw_settings.S" 126#include "../../arch-v10/lib/hw_settings.S"
diff --git a/arch/cris/arch-v32/boot/compressed/head.S b/arch/cris/boot/compressed/head_v32.S
index a4a65c5c669e..f483005f3d48 100644
--- a/arch/cris/arch-v32/boot/compressed/head.S
+++ b/arch/cris/boot/compressed/head_v32.S
@@ -17,7 +17,7 @@
17 .globl input_data 17 .globl input_data
18 18
19 .text 19 .text
20_start: 20start:
21 di 21 di
22 22
23 ;; Start clocks for used blocks. 23 ;; Start clocks for used blocks.
@@ -29,9 +29,9 @@ _start:
29 nop 29 nop
30 30
31#if defined CONFIG_ETRAXFS 31#if defined CONFIG_ETRAXFS
32#include "../../mach-fs/dram_init.S" 32#include "../../arch-v32/mach-fs/dram_init.S"
33#elif defined CONFIG_CRIS_MACH_ARTPEC3 33#elif defined CONFIG_CRIS_MACH_ARTPEC3
34#include "../../mach-a3/dram_init.S" 34#include "../../arch-v32/mach-a3/dram_init.S"
35#else 35#else
36#error Only ETRAXFS and ARTPEC-3 supported! 36#error Only ETRAXFS and ARTPEC-3 supported!
37#endif 37#endif
@@ -137,9 +137,9 @@ _boot_source:
137 .dword 0 137 .dword 0
138 138
139#if defined CONFIG_ETRAXFS 139#if defined CONFIG_ETRAXFS
140#include "../../mach-fs/hw_settings.S" 140#include "../../arch-v32/mach-fs/hw_settings.S"
141#elif defined CONFIG_CRIS_MACH_ARTPEC3 141#elif defined CONFIG_CRIS_MACH_ARTPEC3
142#include "../../mach-a3/hw_settings.S" 142#include "../../arch-v32/mach-a3/hw_settings.S"
143#else 143#else
144#error Only ETRAXFS and ARTPEC-3 supported! 144#error Only ETRAXFS and ARTPEC-3 supported!
145#endif 145#endif
diff --git a/arch/cris/arch-v32/boot/compressed/misc.c b/arch/cris/boot/compressed/misc.c
index 3595e16e82bc..47bc190ba6d4 100644
--- a/arch/cris/arch-v32/boot/compressed/misc.c
+++ b/arch/cris/boot/compressed/misc.c
@@ -18,8 +18,9 @@
18 18
19#define KERNEL_LOAD_ADR 0x40004000 19#define KERNEL_LOAD_ADR 0x40004000
20 20
21
22#include <linux/types.h> 21#include <linux/types.h>
22
23#ifdef CONFIG_ETRAX_ARCH_V32
23#include <hwregs/reg_rdwr.h> 24#include <hwregs/reg_rdwr.h>
24#include <hwregs/reg_map.h> 25#include <hwregs/reg_map.h>
25#include <hwregs/ser_defs.h> 26#include <hwregs/ser_defs.h>
@@ -27,6 +28,9 @@
27#ifdef CONFIG_CRIS_MACH_ARTPEC3 28#ifdef CONFIG_CRIS_MACH_ARTPEC3
28#include <hwregs/clkgen_defs.h> 29#include <hwregs/clkgen_defs.h>
29#endif 30#endif
31#else
32#include <arch/svinto.h>
33#endif
30 34
31/* 35/*
32 * gzip declarations 36 * gzip declarations
@@ -35,12 +39,10 @@
35#define OF(args) args 39#define OF(args) args
36#define STATIC static 40#define STATIC static
37 41
38void* memset(void* s, int c, size_t n); 42void *memset(void *s, int c, size_t n);
39void* memcpy(void* __dest, __const void* __src, 43void *memcpy(void *__dest, __const void *__src, size_t __n);
40 size_t __n);
41
42#define memzero(s, n) memset ((s), 0, (n))
43 44
45#define memzero(s, n) memset((s), 0, (n))
44 46
45typedef unsigned char uch; 47typedef unsigned char uch;
46typedef unsigned short ush; 48typedef unsigned short ush;
@@ -68,27 +70,43 @@ static unsigned outcnt = 0; /* bytes in output buffer */
68#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */ 70#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */
69#define RESERVED 0xC0 /* bit 6,7: reserved */ 71#define RESERVED 0xC0 /* bit 6,7: reserved */
70 72
71#define get_byte() inbuf[inptr++] 73#define get_byte() (inbuf[inptr++])
72 74
73/* Diagnostic functions */ 75/* Diagnostic functions */
74#ifdef DEBUG 76#ifdef DEBUG
75# define Assert(cond,msg) {if(!(cond)) error(msg);} 77# define Assert(cond, msg) do { \
78 if (!(cond)) \
79 error(msg); \
80 } while (0)
76# define Trace(x) fprintf x 81# define Trace(x) fprintf x
77# define Tracev(x) {if (verbose) fprintf x ;} 82# define Tracev(x) do { \
78# define Tracevv(x) {if (verbose>1) fprintf x ;} 83 if (verbose) \
79# define Tracec(c,x) {if (verbose && (c)) fprintf x ;} 84 fprintf x; \
80# define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;} 85 } while (0)
86# define Tracevv(x) do { \
87 if (verbose > 1) \
88 fprintf x; \
89 } while (0)
90# define Tracec(c, x) do { \
91 if (verbose && (c)) \
92 fprintf x; \
93 } while (0)
94# define Tracecv(c, x) do { \
95 if (verbose > 1 && (c)) \
96 fprintf x; \
97 } while (0)
81#else 98#else
82# define Assert(cond,msg) 99# define Assert(cond, msg)
83# define Trace(x) 100# define Trace(x)
84# define Tracev(x) 101# define Tracev(x)
85# define Tracevv(x) 102# define Tracevv(x)
86# define Tracec(c,x) 103# define Tracec(c, x)
87# define Tracecv(c,x) 104# define Tracecv(c, x)
88#endif 105#endif
89 106
90static void flush_window(void); 107static void flush_window(void);
91static void error(char *m); 108static void error(char *m);
109static void puts(const char *);
92 110
93extern char *input_data; /* lives in head.S */ 111extern char *input_data; /* lives in head.S */
94 112
@@ -96,10 +114,6 @@ static long bytes_out;
96static uch *output_data; 114static uch *output_data;
97static unsigned long output_ptr; 115static unsigned long output_ptr;
98 116
99static void error(char *m);
100
101static void puts(const char *);
102
103/* the "heap" is put directly after the BSS ends, at end */ 117/* the "heap" is put directly after the BSS ends, at end */
104 118
105extern int _end; 119extern int _end;
@@ -110,8 +124,8 @@ static long free_mem_end_ptr;
110 124
111/* decompressor info and error messages to serial console */ 125/* decompressor info and error messages to serial console */
112 126
113static inline void 127#ifdef CONFIG_ETRAX_ARCH_V32
114serout(const char *s, reg_scope_instances regi_ser) 128static inline void serout(const char *s, reg_scope_instances regi_ser)
115{ 129{
116 reg_ser_rs_stat_din rs; 130 reg_ser_rs_stat_din rs;
117 reg_ser_rw_dout dout = {.data = *s}; 131 reg_ser_rw_dout dout = {.data = *s};
@@ -123,23 +137,47 @@ serout(const char *s, reg_scope_instances regi_ser)
123 137
124 REG_WR(ser, regi_ser, rw_dout, dout); 138 REG_WR(ser, regi_ser, rw_dout, dout);
125} 139}
140#endif
126 141
127static void 142static void puts(const char *s)
128puts(const char *s)
129{ 143{
130#ifndef CONFIG_ETRAX_DEBUG_PORT_NULL 144#ifndef CONFIG_ETRAX_DEBUG_PORT_NULL
131 while (*s) { 145 while (*s) {
132#ifdef CONFIG_ETRAX_DEBUG_PORT0 146#ifdef CONFIG_ETRAX_DEBUG_PORT0
147#ifdef CONFIG_ETRAX_ARCH_V32
133 serout(s, regi_ser0); 148 serout(s, regi_ser0);
149#else
150 while (!(*R_SERIAL0_STATUS & (1 << 5)))
151 ;
152 *R_SERIAL0_TR_DATA = *s++;
153#endif
134#endif 154#endif
135#ifdef CONFIG_ETRAX_DEBUG_PORT1 155#ifdef CONFIG_ETRAX_DEBUG_PORT1
156#ifdef CONFIG_ETRAX_ARCH_V32
136 serout(s, regi_ser1); 157 serout(s, regi_ser1);
158#else
159 while (!(*R_SERIAL1_STATUS & (1 << 5)))
160 ;
161 *R_SERIAL1_TR_DATA = *s++;
162#endif
137#endif 163#endif
138#ifdef CONFIG_ETRAX_DEBUG_PORT2 164#ifdef CONFIG_ETRAX_DEBUG_PORT2
165#ifdef CONFIG_ETRAX_ARCH_V32
139 serout(s, regi_ser2); 166 serout(s, regi_ser2);
167#else
168 while (!(*R_SERIAL2_STATUS & (1 << 5)))
169 ;
170 *R_SERIAL2_TR_DATA = *s++;
171#endif
140#endif 172#endif
141#ifdef CONFIG_ETRAX_DEBUG_PORT3 173#ifdef CONFIG_ETRAX_DEBUG_PORT3
174#ifdef CONFIG_ETRAX_ARCH_V32
142 serout(s, regi_ser3); 175 serout(s, regi_ser3);
176#else
177 while (!(*R_SERIAL3_STATUS & (1 << 5)))
178 ;
179 *R_SERIAL3_TR_DATA = *s++;
180#endif
143#endif 181#endif
144 *s++; 182 *s++;
145 } 183 }
@@ -147,8 +185,7 @@ puts(const char *s)
147#endif 185#endif
148} 186}
149 187
150void* 188void *memset(void *s, int c, size_t n)
151memset(void* s, int c, size_t n)
152{ 189{
153 int i; 190 int i;
154 char *ss = (char*)s; 191 char *ss = (char*)s;
@@ -158,14 +195,13 @@ memset(void* s, int c, size_t n)
158 return s; 195 return s;
159} 196}
160 197
161void* 198void *memcpy(void *__dest, __const void *__src, size_t __n)
162memcpy(void* __dest, __const void* __src,
163 size_t __n)
164{ 199{
165 int i; 200 int i;
166 char *d = (char *)__dest, *s = (char *)__src; 201 char *d = (char *)__dest, *s = (char *)__src;
167 202
168 for (i=0;i<__n;i++) d[i] = s[i]; 203 for (i = 0; i < __n; i++)
204 d[i] = s[i];
169 205
170 return __dest; 206 return __dest;
171} 207}
@@ -175,43 +211,42 @@ memcpy(void* __dest, __const void* __src,
175 * (Used for the decompressed data only.) 211 * (Used for the decompressed data only.)
176 */ 212 */
177 213
178static void 214static void flush_window(void)
179flush_window()
180{ 215{
181 ulg c = crc; /* temporary variable */ 216 ulg c = crc; /* temporary variable */
182 unsigned n; 217 unsigned n;
183 uch *in, *out, ch; 218 uch *in, *out, ch;
184 219
185 in = window; 220 in = window;
186 out = &output_data[output_ptr]; 221 out = &output_data[output_ptr];
187 for (n = 0; n < outcnt; n++) { 222 for (n = 0; n < outcnt; n++) {
188 ch = *out++ = *in++; 223 ch = *out = *in;
189 c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8); 224 out++;
190 } 225 in++;
191 crc = c; 226 c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8);
192 bytes_out += (ulg)outcnt; 227 }
193 output_ptr += (ulg)outcnt; 228 crc = c;
194 outcnt = 0; 229 bytes_out += (ulg)outcnt;
230 output_ptr += (ulg)outcnt;
231 outcnt = 0;
195} 232}
196 233
197static void 234static void error(char *x)
198error(char *x)
199{ 235{
200 puts("\r\n\n"); 236 puts("\n\n");
201 puts(x); 237 puts(x);
202 puts("\r\n\n -- System halted\n"); 238 puts("\n\n -- System halted\n");
203 239
204 while(1); /* Halt */ 240 while(1); /* Halt */
205} 241}
206 242
207void 243void setup_normal_output_buffer(void)
208setup_normal_output_buffer(void)
209{ 244{
210 output_data = (char *)KERNEL_LOAD_ADR; 245 output_data = (char *)KERNEL_LOAD_ADR;
211} 246}
212 247
213static inline void 248#ifdef CONFIG_ETRAX_ARCH_V32
214serial_setup(reg_scope_instances regi_ser) 249static inline void serial_setup(reg_scope_instances regi_ser)
215{ 250{
216 reg_ser_rw_xoff xoff; 251 reg_ser_rw_xoff xoff;
217 reg_ser_rw_tr_ctrl tr_ctrl; 252 reg_ser_rw_tr_ctrl tr_ctrl;
@@ -252,12 +287,16 @@ serial_setup(reg_scope_instances regi_ser)
252 REG_WR(ser, regi_ser, rw_rec_ctrl, rec_ctrl); 287 REG_WR(ser, regi_ser, rw_rec_ctrl, rec_ctrl);
253 REG_WR(ser, regi_ser, rw_rec_baud_div, rec_baud); 288 REG_WR(ser, regi_ser, rw_rec_baud_div, rec_baud);
254} 289}
290#endif
255 291
256void 292void decompress_kernel(void)
257decompress_kernel(void)
258{ 293{
259 char revision; 294 char revision;
295 char compile_rev;
260 296
297#ifdef CONFIG_ETRAX_ARCH_V32
298 /* Need at least a CRISv32 to run. */
299 compile_rev = 32;
261#if defined(CONFIG_ETRAX_DEBUG_PORT1) || \ 300#if defined(CONFIG_ETRAX_DEBUG_PORT1) || \
262 defined(CONFIG_ETRAX_DEBUG_PORT2) || \ 301 defined(CONFIG_ETRAX_DEBUG_PORT2) || \
263 defined(CONFIG_ETRAX_DEBUG_PORT3) 302 defined(CONFIG_ETRAX_DEBUG_PORT3)
@@ -277,6 +316,7 @@ decompress_kernel(void)
277 hwprot = REG_RD(pinmux, regi_pinmux, rw_hwprot); 316 hwprot = REG_RD(pinmux, regi_pinmux, rw_hwprot);
278#endif 317#endif
279 318
319
280#ifdef CONFIG_ETRAX_DEBUG_PORT0 320#ifdef CONFIG_ETRAX_DEBUG_PORT0
281 serial_setup(regi_ser0); 321 serial_setup(regi_ser0);
282#endif 322#endif
@@ -300,19 +340,52 @@ decompress_kernel(void)
300 340
301 /* input_data is set in head.S */ 341 /* input_data is set in head.S */
302 inbuf = input_data; 342 inbuf = input_data;
343#else /* CRISv10 */
344 /* Need at least a crisv10 to run. */
345 compile_rev = 10;
346
347 /* input_data is set in head.S */
348 inbuf = input_data;
349
350#ifdef CONFIG_ETRAX_DEBUG_PORT0
351 *R_SERIAL0_XOFF = 0;
352 *R_SERIAL0_BAUD = 0x99;
353 *R_SERIAL0_TR_CTRL = 0x40;
354#endif
355#ifdef CONFIG_ETRAX_DEBUG_PORT1
356 *R_SERIAL1_XOFF = 0;
357 *R_SERIAL1_BAUD = 0x99;
358 *R_SERIAL1_TR_CTRL = 0x40;
359#endif
360#ifdef CONFIG_ETRAX_DEBUG_PORT2
361 *R_GEN_CONFIG = 0x08;
362 *R_SERIAL2_XOFF = 0;
363 *R_SERIAL2_BAUD = 0x99;
364 *R_SERIAL2_TR_CTRL = 0x40;
365#endif
366#ifdef CONFIG_ETRAX_DEBUG_PORT3
367 *R_GEN_CONFIG = 0x100;
368 *R_SERIAL3_XOFF = 0;
369 *R_SERIAL3_BAUD = 0x99;
370 *R_SERIAL3_TR_CTRL = 0x40;
371#endif
372#endif
303 373
304 setup_normal_output_buffer(); 374 setup_normal_output_buffer();
305 375
306 makecrc(); 376 makecrc();
307 377
308 __asm__ volatile ("move $vr,%0" : "=rm" (revision)); 378 __asm__ volatile ("move $vr,%0" : "=rm" (revision));
309 if (revision < 32) 379 if (revision < compile_rev) {
310 { 380#ifdef CONFIG_ETRAX_ARCH_V32
311 puts("You need an ETRAX FS to run Linux 2.6/crisv32.\r\n"); 381 puts("You need an ETRAX FS to run Linux 2.6/crisv32\n");
382#else
383 puts("You need an ETRAX 100LX to run linux 2.6\n");
384#endif
312 while(1); 385 while(1);
313 } 386 }
314 387
315 puts("Uncompressing Linux...\r\n"); 388 puts("Uncompressing Linux...\n");
316 gunzip(); 389 gunzip();
317 puts("Done. Now booting the kernel.\r\n"); 390 puts("Done. Now booting the kernel\n");
318} 391}
diff --git a/arch/cris/arch-v10/boot/rescue/Makefile b/arch/cris/boot/rescue/Makefile
index 82ab59b968e5..52bd0bd1dd22 100644
--- a/arch/cris/arch-v10/boot/rescue/Makefile
+++ b/arch/cris/boot/rescue/Makefile
@@ -2,16 +2,26 @@
2# Makefile for rescue (bootstrap) code 2# Makefile for rescue (bootstrap) code
3# 3#
4 4
5ccflags-y += -O2 $(LINUXINCLUDE) 5# CC = gcc-cris -mlinux -march=v32 $(LINUXINCLUDE)
6# ccflags-$(CONFIG_ETRAX_ARCH_V32) += -I$(srctree)/include/asm/arch/mach/ \
7# -I$(srctree)/include/asm/arch
8# asflags-y += -I $(srctree)/include/asm/arch/mach/ -I $(srctree)/include/asm/arch
9# LD = gcc-cris -mlinux -march=v32 -nostdlib
10
6asflags-y += $(LINUXINCLUDE) 11asflags-y += $(LINUXINCLUDE)
7ldflags-y += -T $(srctree)/$(src)/rescue.lds 12ccflags-y += -O2 $(LINUXINCLUDE)
13arch-$(CONFIG_ETRAX_ARCH_V10) = v10
14arch-$(CONFIG_ETRAX_ARCH_V32) = v32
15
16ldflags-y += -T $(srctree)/$(src)/rescue_$(arch-y).lds
8OBJCOPYFLAGS = -O binary --remove-section=.bss 17OBJCOPYFLAGS = -O binary --remove-section=.bss
9obj-$(CONFIG_ETRAX_AXISFLASHMAP) = head.o 18obj-$(CONFIG_ETRAX_ARCH_V32) = $(obj)/head_v32.o
10OBJECT := $(obj)/head.o 19obj-$(CONFIG_ETRAX_ARCH_V10) = $(obj)/head_v10.o
20OBJECTS := $(obj-y)
11 21
12targets := rescue.o rescue.bin 22targets := rescue.o rescue.bin
13 23
14$(obj)/rescue.o: $(OBJECT) FORCE 24$(obj)/rescue.o: $(OBJECTS) FORCE
15 $(call if_changed,ld) 25 $(call if_changed,ld)
16 26
17$(obj)/rescue.bin: $(obj)/rescue.o FORCE 27$(obj)/rescue.bin: $(obj)/rescue.o FORCE
@@ -26,6 +36,7 @@ $(obj)/testrescue.bin: $(obj)/testrescue.o
26 dd if=testrescue_tmp.bin of=$(obj)/testrescue.bin bs=1 count=784 36 dd if=testrescue_tmp.bin of=$(obj)/testrescue.bin bs=1 count=784
27 rm tr.bin tmp2423 testrescue_tmp.bin 37 rm tr.bin tmp2423 testrescue_tmp.bin
28 38
39
29$(obj)/kimagerescue.bin: $(obj)/kimagerescue.o 40$(obj)/kimagerescue.bin: $(obj)/kimagerescue.o
30 $(OBJCOPY) $(OBJCOPYFLAGS) $(obj)/kimagerescue.o ktr.bin 41 $(OBJCOPY) $(OBJCOPYFLAGS) $(obj)/kimagerescue.o ktr.bin
31# Pad it to 784 bytes, that's what the rescue loader expects 42# Pad it to 784 bytes, that's what the rescue loader expects
@@ -33,3 +44,4 @@ $(obj)/kimagerescue.bin: $(obj)/kimagerescue.o
33 cat ktr.bin tmp2423 >kimagerescue_tmp.bin 44 cat ktr.bin tmp2423 >kimagerescue_tmp.bin
34 dd if=kimagerescue_tmp.bin of=$(obj)/kimagerescue.bin bs=1 count=784 45 dd if=kimagerescue_tmp.bin of=$(obj)/kimagerescue.bin bs=1 count=784
35 rm ktr.bin tmp2423 kimagerescue_tmp.bin 46 rm ktr.bin tmp2423 kimagerescue_tmp.bin
47
diff --git a/arch/cris/arch-v10/boot/rescue/head.S b/arch/cris/boot/rescue/head_v10.S
index fb503d1eeea4..2fafe247a25b 100644
--- a/arch/cris/arch-v10/boot/rescue/head.S
+++ b/arch/cris/boot/rescue/head_v10.S
@@ -155,7 +155,7 @@ no_newjump:
155#endif 155#endif
156 156
157 ;; We need to setup the bus registers before we start using the DRAM 157 ;; We need to setup the bus registers before we start using the DRAM
158#include "../../lib/dram_init.S" 158#include "../../../arch-v10/lib/dram_init.S"
159 159
160 ;; we now should go through the checksum-table and check the listed 160 ;; we now should go through the checksum-table and check the listed
161 ;; partitions for errors. 161 ;; partitions for errors.
diff --git a/arch/cris/arch-v32/boot/rescue/head.S b/arch/cris/boot/rescue/head_v32.S
index 5f846b7700a3..5f846b7700a3 100644
--- a/arch/cris/arch-v32/boot/rescue/head.S
+++ b/arch/cris/boot/rescue/head_v32.S
diff --git a/arch/cris/arch-v10/boot/rescue/kimagerescue.S b/arch/cris/boot/rescue/kimagerescue.S
index 6f7b3e61260b..6f7b3e61260b 100644
--- a/arch/cris/arch-v10/boot/rescue/kimagerescue.S
+++ b/arch/cris/boot/rescue/kimagerescue.S
diff --git a/arch/cris/arch-v10/boot/rescue/rescue.lds b/arch/cris/boot/rescue/rescue_v10.lds
index 0b52a9490db6..0b52a9490db6 100644
--- a/arch/cris/arch-v10/boot/rescue/rescue.lds
+++ b/arch/cris/boot/rescue/rescue_v10.lds
diff --git a/arch/cris/arch-v32/boot/rescue/rescue.lds b/arch/cris/boot/rescue/rescue_v32.lds
index 8ac646bc1a2b..8ac646bc1a2b 100644
--- a/arch/cris/arch-v32/boot/rescue/rescue.lds
+++ b/arch/cris/boot/rescue/rescue_v32.lds
diff --git a/arch/cris/arch-v10/boot/rescue/testrescue.S b/arch/cris/boot/rescue/testrescue.S
index fc7ec674eca5..fc7ec674eca5 100644
--- a/arch/cris/arch-v10/boot/rescue/testrescue.S
+++ b/arch/cris/boot/rescue/testrescue.S
diff --git a/arch/cris/arch-v10/boot/tools/build.c b/arch/cris/boot/tools/build.c
index c8adef364160..c8adef364160 100644
--- a/arch/cris/arch-v10/boot/tools/build.c
+++ b/arch/cris/boot/tools/build.c
diff --git a/arch/cris/include/asm/unistd.h b/arch/cris/include/asm/unistd.h
index 235d076379d5..c17079388bb9 100644
--- a/arch/cris/include/asm/unistd.h
+++ b/arch/cris/include/asm/unistd.h
@@ -281,7 +281,7 @@
281#define __NR_mbind 274 281#define __NR_mbind 274
282#define __NR_get_mempolicy 275 282#define __NR_get_mempolicy 275
283#define __NR_set_mempolicy 276 283#define __NR_set_mempolicy 276
284#define __NR_mq_open 277 284#define __NR_mq_open 277
285#define __NR_mq_unlink (__NR_mq_open+1) 285#define __NR_mq_unlink (__NR_mq_open+1)
286#define __NR_mq_timedsend (__NR_mq_open+2) 286#define __NR_mq_timedsend (__NR_mq_open+2)
287#define __NR_mq_timedreceive (__NR_mq_open+3) 287#define __NR_mq_timedreceive (__NR_mq_open+3)
@@ -331,10 +331,18 @@
331#define __NR_fallocate 324 331#define __NR_fallocate 324
332#define __NR_timerfd_settime 325 332#define __NR_timerfd_settime 325
333#define __NR_timerfd_gettime 326 333#define __NR_timerfd_gettime 326
334#define __NR_signalfd4 327
335#define __NR_eventfd2 328
336#define __NR_epoll_create1 329
337#define __NR_dup3 330
338#define __NR_pipe2 331
339#define __NR_inotify_init1 332
340#define __NR_preadv 333
341#define __NR_pwritev 334
334 342
335#ifdef __KERNEL__ 343#ifdef __KERNEL__
336 344
337#define NR_syscalls 327 345#define NR_syscalls 335
338 346
339#include <arch/unistd.h> 347#include <arch/unistd.h>
340 348
diff --git a/arch/h8300/include/asm/flat.h b/arch/h8300/include/asm/flat.h
index 2a873508a9a1..bd12b31b90e6 100644
--- a/arch/h8300/include/asm/flat.h
+++ b/arch/h8300/include/asm/flat.h
@@ -5,7 +5,6 @@
5#ifndef __H8300_FLAT_H__ 5#ifndef __H8300_FLAT_H__
6#define __H8300_FLAT_H__ 6#define __H8300_FLAT_H__
7 7
8#define flat_stack_align(sp) /* nothing needed */
9#define flat_argvp_envp_on_stack() 1 8#define flat_argvp_envp_on_stack() 1
10#define flat_old_ram_flag(flags) 1 9#define flat_old_ram_flag(flags) 1
11#define flat_reloc_valid(reloc, size) ((reloc) <= (size)) 10#define flat_reloc_valid(reloc, size) ((reloc) <= (size))
diff --git a/arch/m32r/include/asm/flat.h b/arch/m32r/include/asm/flat.h
index d851cf0c4aa5..5d711c4688fb 100644
--- a/arch/m32r/include/asm/flat.h
+++ b/arch/m32r/include/asm/flat.h
@@ -12,7 +12,6 @@
12#ifndef __ASM_M32R_FLAT_H 12#ifndef __ASM_M32R_FLAT_H
13#define __ASM_M32R_FLAT_H 13#define __ASM_M32R_FLAT_H
14 14
15#define flat_stack_align(sp) (*sp += (*sp & 3 ? (4 - (*sp & 3)): 0))
16#define flat_argvp_envp_on_stack() 0 15#define flat_argvp_envp_on_stack() 0
17#define flat_old_ram_flag(flags) (flags) 16#define flat_old_ram_flag(flags) (flags)
18#define flat_set_persistent(relval, p) 0 17#define flat_set_persistent(relval, p) 0
diff --git a/arch/m68k/include/asm/flat.h b/arch/m68k/include/asm/flat.h
index 814b5174a8e0..a0e290793978 100644
--- a/arch/m68k/include/asm/flat.h
+++ b/arch/m68k/include/asm/flat.h
@@ -5,7 +5,6 @@
5#ifndef __M68KNOMMU_FLAT_H__ 5#ifndef __M68KNOMMU_FLAT_H__
6#define __M68KNOMMU_FLAT_H__ 6#define __M68KNOMMU_FLAT_H__
7 7
8#define flat_stack_align(sp) /* nothing needed */
9#define flat_argvp_envp_on_stack() 1 8#define flat_argvp_envp_on_stack() 1
10#define flat_old_ram_flag(flags) (flags) 9#define flat_old_ram_flag(flags) (flags)
11#define flat_reloc_valid(reloc, size) ((reloc) <= (size)) 10#define flat_reloc_valid(reloc, size) ((reloc) <= (size))
diff --git a/arch/microblaze/configs/nommu_defconfig b/arch/microblaze/configs/nommu_defconfig
index beb7ecd72793..4ef6af0a8f31 100644
--- a/arch/microblaze/configs/nommu_defconfig
+++ b/arch/microblaze/configs/nommu_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29 3# Linux kernel version: 2.6.30-rc5
4# Tue Mar 24 10:23:20 2009 4# Mon May 11 09:01:02 2009
5# 5#
6CONFIG_MICROBLAZE=y 6CONFIG_MICROBLAZE=y
7# CONFIG_SWAP is not set 7# CONFIG_SWAP is not set
@@ -32,6 +32,7 @@ CONFIG_LOCALVERSION_AUTO=y
32CONFIG_SYSVIPC=y 32CONFIG_SYSVIPC=y
33CONFIG_SYSVIPC_SYSCTL=y 33CONFIG_SYSVIPC_SYSCTL=y
34CONFIG_POSIX_MQUEUE=y 34CONFIG_POSIX_MQUEUE=y
35CONFIG_POSIX_MQUEUE_SYSCTL=y
35CONFIG_BSD_PROCESS_ACCT=y 36CONFIG_BSD_PROCESS_ACCT=y
36CONFIG_BSD_PROCESS_ACCT_V3=y 37CONFIG_BSD_PROCESS_ACCT_V3=y
37# CONFIG_TASKSTATS is not set 38# CONFIG_TASKSTATS is not set
@@ -63,6 +64,7 @@ CONFIG_SYSCTL_SYSCALL=y
63CONFIG_KALLSYMS=y 64CONFIG_KALLSYMS=y
64CONFIG_KALLSYMS_ALL=y 65CONFIG_KALLSYMS_ALL=y
65CONFIG_KALLSYMS_EXTRA_PASS=y 66CONFIG_KALLSYMS_EXTRA_PASS=y
67# CONFIG_STRIP_ASM_SYMS is not set
66# CONFIG_HOTPLUG is not set 68# CONFIG_HOTPLUG is not set
67CONFIG_PRINTK=y 69CONFIG_PRINTK=y
68CONFIG_BUG=y 70CONFIG_BUG=y
@@ -80,6 +82,8 @@ CONFIG_SLAB=y
80# CONFIG_SLUB is not set 82# CONFIG_SLUB is not set
81# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
82# CONFIG_PROFILING is not set 84# CONFIG_PROFILING is not set
85# CONFIG_MARKERS is not set
86# CONFIG_SLOW_WORK is not set
83# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 87# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
84CONFIG_SLABINFO=y 88CONFIG_SLABINFO=y
85CONFIG_RT_MUTEXES=y 89CONFIG_RT_MUTEXES=y
@@ -92,7 +96,6 @@ CONFIG_MODULE_UNLOAD=y
92# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
93CONFIG_BLOCK=y 97CONFIG_BLOCK=y
94# CONFIG_LBD is not set 98# CONFIG_LBD is not set
95# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_BLK_DEV_BSG is not set 99# CONFIG_BLK_DEV_BSG is not set
97# CONFIG_BLK_DEV_INTEGRITY is not set 100# CONFIG_BLK_DEV_INTEGRITY is not set
98 101
@@ -166,6 +169,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
166# CONFIG_PHYS_ADDR_T_64BIT is not set 169# CONFIG_PHYS_ADDR_T_64BIT is not set
167CONFIG_ZONE_DMA_FLAG=0 170CONFIG_ZONE_DMA_FLAG=0
168CONFIG_VIRT_TO_BUS=y 171CONFIG_VIRT_TO_BUS=y
172CONFIG_UNEVICTABLE_LRU=y
173CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
169 174
170# 175#
171# Exectuable file formats 176# Exectuable file formats
@@ -180,7 +185,6 @@ CONFIG_NET=y
180# 185#
181# Networking options 186# Networking options
182# 187#
183CONFIG_COMPAT_NET_DEV_OPS=y
184CONFIG_PACKET=y 188CONFIG_PACKET=y
185# CONFIG_PACKET_MMAP is not set 189# CONFIG_PACKET_MMAP is not set
186CONFIG_UNIX=y 190CONFIG_UNIX=y
@@ -232,6 +236,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
232# CONFIG_LAPB is not set 236# CONFIG_LAPB is not set
233# CONFIG_ECONET is not set 237# CONFIG_ECONET is not set
234# CONFIG_WAN_ROUTER is not set 238# CONFIG_WAN_ROUTER is not set
239# CONFIG_PHONET is not set
235# CONFIG_NET_SCHED is not set 240# CONFIG_NET_SCHED is not set
236# CONFIG_DCB is not set 241# CONFIG_DCB is not set
237 242
@@ -244,7 +249,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
244# CONFIG_IRDA is not set 249# CONFIG_IRDA is not set
245# CONFIG_BT is not set 250# CONFIG_BT is not set
246# CONFIG_AF_RXRPC is not set 251# CONFIG_AF_RXRPC is not set
247# CONFIG_PHONET is not set
248CONFIG_WIRELESS=y 252CONFIG_WIRELESS=y
249# CONFIG_CFG80211 is not set 253# CONFIG_CFG80211 is not set
250CONFIG_WIRELESS_OLD_REGULATORY=y 254CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -379,6 +383,7 @@ CONFIG_MISC_DEVICES=y
379# CONFIG_ATA is not set 383# CONFIG_ATA is not set
380# CONFIG_MD is not set 384# CONFIG_MD is not set
381CONFIG_NETDEVICES=y 385CONFIG_NETDEVICES=y
386CONFIG_COMPAT_NET_DEV_OPS=y
382# CONFIG_DUMMY is not set 387# CONFIG_DUMMY is not set
383# CONFIG_BONDING is not set 388# CONFIG_BONDING is not set
384# CONFIG_MACVLAN is not set 389# CONFIG_MACVLAN is not set
@@ -388,6 +393,7 @@ CONFIG_NETDEVICES=y
388# CONFIG_PHYLIB is not set 393# CONFIG_PHYLIB is not set
389CONFIG_NET_ETHERNET=y 394CONFIG_NET_ETHERNET=y
390# CONFIG_MII is not set 395# CONFIG_MII is not set
396# CONFIG_ETHOC is not set
391# CONFIG_DNET is not set 397# CONFIG_DNET is not set
392# CONFIG_IBM_NEW_EMAC_ZMII is not set 398# CONFIG_IBM_NEW_EMAC_ZMII is not set
393# CONFIG_IBM_NEW_EMAC_RGMII is not set 399# CONFIG_IBM_NEW_EMAC_RGMII is not set
@@ -405,7 +411,6 @@ CONFIG_NETDEV_10000=y
405# 411#
406# CONFIG_WLAN_PRE80211 is not set 412# CONFIG_WLAN_PRE80211 is not set
407# CONFIG_WLAN_80211 is not set 413# CONFIG_WLAN_80211 is not set
408# CONFIG_IWLWIFI_LEDS is not set
409 414
410# 415#
411# Enable WiMAX (Networking options) to see the WiMAX drivers 416# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -455,6 +460,7 @@ CONFIG_LEGACY_PTYS=y
455CONFIG_LEGACY_PTY_COUNT=256 460CONFIG_LEGACY_PTY_COUNT=256
456# CONFIG_IPMI_HANDLER is not set 461# CONFIG_IPMI_HANDLER is not set
457CONFIG_HW_RANDOM=y 462CONFIG_HW_RANDOM=y
463# CONFIG_HW_RANDOM_TIMERIOMEM is not set
458# CONFIG_RTC is not set 464# CONFIG_RTC is not set
459# CONFIG_GEN_RTC is not set 465# CONFIG_GEN_RTC is not set
460# CONFIG_R3964 is not set 466# CONFIG_R3964 is not set
@@ -525,7 +531,7 @@ CONFIG_USB_SUPPORT=y
525# 531#
526 532
527# 533#
528# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 534# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
529# 535#
530# CONFIG_USB_GADGET is not set 536# CONFIG_USB_GADGET is not set
531 537
@@ -538,6 +544,7 @@ CONFIG_USB_SUPPORT=y
538# CONFIG_ACCESSIBILITY is not set 544# CONFIG_ACCESSIBILITY is not set
539# CONFIG_RTC_CLASS is not set 545# CONFIG_RTC_CLASS is not set
540# CONFIG_DMADEVICES is not set 546# CONFIG_DMADEVICES is not set
547# CONFIG_AUXDISPLAY is not set
541# CONFIG_UIO is not set 548# CONFIG_UIO is not set
542# CONFIG_STAGING is not set 549# CONFIG_STAGING is not set
543 550
@@ -563,6 +570,11 @@ CONFIG_FILE_LOCKING=y
563# CONFIG_FUSE_FS is not set 570# CONFIG_FUSE_FS is not set
564 571
565# 572#
573# Caches
574#
575# CONFIG_FSCACHE is not set
576
577#
566# CD-ROM/DVD Filesystems 578# CD-ROM/DVD Filesystems
567# 579#
568# CONFIG_ISO9660_FS is not set 580# CONFIG_ISO9660_FS is not set
@@ -601,8 +613,13 @@ CONFIG_CRAMFS=y
601# CONFIG_HPFS_FS is not set 613# CONFIG_HPFS_FS is not set
602# CONFIG_QNX4FS_FS is not set 614# CONFIG_QNX4FS_FS is not set
603CONFIG_ROMFS_FS=y 615CONFIG_ROMFS_FS=y
616CONFIG_ROMFS_BACKED_BY_BLOCK=y
617# CONFIG_ROMFS_BACKED_BY_MTD is not set
618# CONFIG_ROMFS_BACKED_BY_BOTH is not set
619CONFIG_ROMFS_ON_BLOCK=y
604# CONFIG_SYSV_FS is not set 620# CONFIG_SYSV_FS is not set
605# CONFIG_UFS_FS is not set 621# CONFIG_UFS_FS is not set
622# CONFIG_NILFS2_FS is not set
606CONFIG_NETWORK_FILESYSTEMS=y 623CONFIG_NETWORK_FILESYSTEMS=y
607CONFIG_NFS_FS=y 624CONFIG_NFS_FS=y
608CONFIG_NFS_V3=y 625CONFIG_NFS_V3=y
@@ -614,7 +631,6 @@ CONFIG_LOCKD_V4=y
614CONFIG_NFS_ACL_SUPPORT=y 631CONFIG_NFS_ACL_SUPPORT=y
615CONFIG_NFS_COMMON=y 632CONFIG_NFS_COMMON=y
616CONFIG_SUNRPC=y 633CONFIG_SUNRPC=y
617# CONFIG_SUNRPC_REGISTER_V4 is not set
618# CONFIG_RPCSEC_GSS_KRB5 is not set 634# CONFIG_RPCSEC_GSS_KRB5 is not set
619# CONFIG_RPCSEC_GSS_SPKM3 is not set 635# CONFIG_RPCSEC_GSS_SPKM3 is not set
620# CONFIG_SMB_FS is not set 636# CONFIG_SMB_FS is not set
@@ -647,6 +663,9 @@ CONFIG_DEBUG_SHIRQ=y
647CONFIG_DETECT_SOFTLOCKUP=y 663CONFIG_DETECT_SOFTLOCKUP=y
648CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y 664CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
649CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1 665CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
666CONFIG_DETECT_HUNG_TASK=y
667# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
668CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
650CONFIG_SCHED_DEBUG=y 669CONFIG_SCHED_DEBUG=y
651CONFIG_SCHEDSTATS=y 670CONFIG_SCHEDSTATS=y
652CONFIG_TIMER_STATS=y 671CONFIG_TIMER_STATS=y
@@ -678,15 +697,8 @@ CONFIG_DEBUG_SG=y
678# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 697# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
679# CONFIG_FAULT_INJECTION is not set 698# CONFIG_FAULT_INJECTION is not set
680CONFIG_SYSCTL_SYSCALL_CHECK=y 699CONFIG_SYSCTL_SYSCALL_CHECK=y
681 700# CONFIG_PAGE_POISONING is not set
682# 701# CONFIG_DYNAMIC_DEBUG is not set
683# Tracers
684#
685# CONFIG_SCHED_TRACER is not set
686# CONFIG_CONTEXT_SWITCH_TRACER is not set
687# CONFIG_BOOT_TRACER is not set
688# CONFIG_TRACE_BRANCH_PROFILING is not set
689# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
690# CONFIG_SAMPLES is not set 702# CONFIG_SAMPLES is not set
691CONFIG_EARLY_PRINTK=y 703CONFIG_EARLY_PRINTK=y
692CONFIG_HEART_BEAT=y 704CONFIG_HEART_BEAT=y
@@ -777,6 +789,7 @@ CONFIG_CRYPTO=y
777# Compression 789# Compression
778# 790#
779# CONFIG_CRYPTO_DEFLATE is not set 791# CONFIG_CRYPTO_DEFLATE is not set
792# CONFIG_CRYPTO_ZLIB is not set
780# CONFIG_CRYPTO_LZO is not set 793# CONFIG_CRYPTO_LZO is not set
781 794
782# 795#
@@ -784,6 +797,7 @@ CONFIG_CRYPTO=y
784# 797#
785# CONFIG_CRYPTO_ANSI_CPRNG is not set 798# CONFIG_CRYPTO_ANSI_CPRNG is not set
786CONFIG_CRYPTO_HW=y 799CONFIG_CRYPTO_HW=y
800# CONFIG_BINARY_PRINTF is not set
787 801
788# 802#
789# Library routines 803# Library routines
@@ -797,8 +811,8 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
797# CONFIG_CRC7 is not set 811# CONFIG_CRC7 is not set
798# CONFIG_LIBCRC32C is not set 812# CONFIG_LIBCRC32C is not set
799CONFIG_ZLIB_INFLATE=y 813CONFIG_ZLIB_INFLATE=y
800CONFIG_PLIST=y
801CONFIG_HAS_IOMEM=y 814CONFIG_HAS_IOMEM=y
802CONFIG_HAS_IOPORT=y 815CONFIG_HAS_IOPORT=y
803CONFIG_HAS_DMA=y 816CONFIG_HAS_DMA=y
804CONFIG_HAVE_LMB=y 817CONFIG_HAVE_LMB=y
818CONFIG_NLATTR=y
diff --git a/arch/microblaze/kernel/intc.c b/arch/microblaze/kernel/intc.c
index a69d3e3c2fd4..b15605299a57 100644
--- a/arch/microblaze/kernel/intc.c
+++ b/arch/microblaze/kernel/intc.c
@@ -137,8 +137,8 @@ void __init init_IRQ(void)
137 137
138 intr_type = 138 intr_type =
139 *(int *) of_get_property(intc, "xlnx,kind-of-intr", NULL); 139 *(int *) of_get_property(intc, "xlnx,kind-of-intr", NULL);
140 if (intr_type >= (1 << nr_irq)) 140 if (intr_type >= (1 << (nr_irq + 1)))
141 printk(KERN_INFO " ERROR: Mishmash in king-of-intr param\n"); 141 printk(KERN_INFO " ERROR: Mismatch in kind-of-intr param\n");
142 142
143#ifdef CONFIG_SELFMOD_INTC 143#ifdef CONFIG_SELFMOD_INTC
144 selfmod_function((int *) arr_func, intc_baseaddr); 144 selfmod_function((int *) arr_func, intc_baseaddr);
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 998e5db8cc0f..25f3b0a11ca8 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -72,6 +72,7 @@ config MIPS_COBALT
72 select IRQ_CPU 72 select IRQ_CPU
73 select IRQ_GT641XX 73 select IRQ_GT641XX
74 select PCI_GT64XXX_PCI0 74 select PCI_GT64XXX_PCI0
75 select PCI
75 select SYS_HAS_CPU_NEVADA 76 select SYS_HAS_CPU_NEVADA
76 select SYS_HAS_EARLY_PRINTK 77 select SYS_HAS_EARLY_PRINTK
77 select SYS_SUPPORTS_32BIT_KERNEL 78 select SYS_SUPPORTS_32BIT_KERNEL
@@ -593,7 +594,7 @@ config WR_PPMC
593 board, which is based on GT64120 bridge chip. 594 board, which is based on GT64120 bridge chip.
594 595
595config CAVIUM_OCTEON_SIMULATOR 596config CAVIUM_OCTEON_SIMULATOR
596 bool "Support for the Cavium Networks Octeon Simulator" 597 bool "Cavium Networks Octeon Simulator"
597 select CEVT_R4K 598 select CEVT_R4K
598 select 64BIT_PHYS_ADDR 599 select 64BIT_PHYS_ADDR
599 select DMA_COHERENT 600 select DMA_COHERENT
@@ -607,7 +608,7 @@ config CAVIUM_OCTEON_SIMULATOR
607 hardware. 608 hardware.
608 609
609config CAVIUM_OCTEON_REFERENCE_BOARD 610config CAVIUM_OCTEON_REFERENCE_BOARD
610 bool "Support for the Cavium Networks Octeon reference board" 611 bool "Cavium Networks Octeon reference board"
611 select CEVT_R4K 612 select CEVT_R4K
612 select 64BIT_PHYS_ADDR 613 select 64BIT_PHYS_ADDR
613 select DMA_COHERENT 614 select DMA_COHERENT
@@ -1411,13 +1412,12 @@ config PAGE_SIZE_4KB
1411 1412
1412config PAGE_SIZE_8KB 1413config PAGE_SIZE_8KB
1413 bool "8kB" 1414 bool "8kB"
1414 depends on EXPERIMENTAL && CPU_R8000 1415 depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
1415 help 1416 help
1416 Using 8kB page size will result in higher performance kernel at 1417 Using 8kB page size will result in higher performance kernel at
1417 the price of higher memory consumption. This option is available 1418 the price of higher memory consumption. This option is available
1418 only on the R8000 processor. Not that at the time of this writing 1419 only on R8000 and cnMIPS processors. Note that you will need a
1419 this option is still high experimental; there are also issues with 1420 suitable Linux distribution to support this.
1420 compatibility of user applications.
1421 1421
1422config PAGE_SIZE_16KB 1422config PAGE_SIZE_16KB
1423 bool "16kB" 1423 bool "16kB"
@@ -1428,6 +1428,15 @@ config PAGE_SIZE_16KB
1428 all non-R3000 family processors. Note that you will need a suitable 1428 all non-R3000 family processors. Note that you will need a suitable
1429 Linux distribution to support this. 1429 Linux distribution to support this.
1430 1430
1431config PAGE_SIZE_32KB
1432 bool "32kB"
1433 depends on CPU_CAVIUM_OCTEON
1434 help
1435 Using 32kB page size will result in higher performance kernel at
1436 the price of higher memory consumption. This option is available
1437 only on cnMIPS cores. Note that you will need a suitable Linux
1438 distribution to support this.
1439
1431config PAGE_SIZE_64KB 1440config PAGE_SIZE_64KB
1432 bool "64kB" 1441 bool "64kB"
1433 depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX 1442 depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
@@ -1958,10 +1967,6 @@ config SECCOMP
1958 1967
1959endmenu 1968endmenu
1960 1969
1961config RWSEM_GENERIC_SPINLOCK
1962 bool
1963 default y
1964
1965config LOCKDEP_SUPPORT 1970config LOCKDEP_SUPPORT
1966 bool 1971 bool
1967 default y 1972 default y
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 8d544c7c9fe9..c4cae9e6b802 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -14,8 +14,6 @@
14 14
15KBUILD_DEFCONFIG := ip22_defconfig 15KBUILD_DEFCONFIG := ip22_defconfig
16 16
17cflags-y := -ffunction-sections
18
19# 17#
20# Select the object file format to substitute into the linker script. 18# Select the object file format to substitute into the linker script.
21# 19#
@@ -50,6 +48,9 @@ ifneq ($(SUBARCH),$(ARCH))
50 endif 48 endif
51endif 49endif
52 50
51cflags-y := -ffunction-sections
52cflags-y += $(call cc-option, -mno-check-zero-division)
53
53ifdef CONFIG_32BIT 54ifdef CONFIG_32BIT
54ld-emul = $(32bit-emul) 55ld-emul = $(32bit-emul)
55vmlinux-32 = vmlinux 56vmlinux-32 = vmlinux
@@ -472,12 +473,12 @@ endif
472# Simplified: what IP22 does at 128MB+ in ksegN, IP28 does at 512MB+ in xkphys 473# Simplified: what IP22 does at 128MB+ in ksegN, IP28 does at 512MB+ in xkphys
473# 474#
474ifdef CONFIG_SGI_IP28 475ifdef CONFIG_SGI_IP28
475 ifeq ($(call cc-option-yn,-mr10k-cache-barrier=1), n) 476 ifeq ($(call cc-option-yn,-mr10k-cache-barrier=store), n)
476 $(error gcc doesn't support needed option -mr10k-cache-barrier=1) 477 $(error gcc doesn't support needed option -mr10k-cache-barrier=store)
477 endif 478 endif
478endif 479endif
479core-$(CONFIG_SGI_IP28) += arch/mips/sgi-ip22/ 480core-$(CONFIG_SGI_IP28) += arch/mips/sgi-ip22/
480cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=1 -I$(srctree)/arch/mips/include/asm/mach-ip28 481cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=store -I$(srctree)/arch/mips/include/asm/mach-ip28
481load-$(CONFIG_SGI_IP28) += 0xa800000020004000 482load-$(CONFIG_SGI_IP28) += 0xa800000020004000
482 483
483# 484#
diff --git a/arch/mips/alchemy/common/time.c b/arch/mips/alchemy/common/time.c
index f58d4ffb8945..33fbae79af5e 100644
--- a/arch/mips/alchemy/common/time.c
+++ b/arch/mips/alchemy/common/time.c
@@ -44,7 +44,7 @@
44 44
45extern int allow_au1k_wait; /* default off for CP0 Counter */ 45extern int allow_au1k_wait; /* default off for CP0 Counter */
46 46
47static cycle_t au1x_counter1_read(void) 47static cycle_t au1x_counter1_read(struct clocksource *cs)
48{ 48{
49 return au_readl(SYS_RTCREAD); 49 return au_readl(SYS_RTCREAD);
50} 50}
diff --git a/arch/mips/cavium-octeon/csrc-octeon.c b/arch/mips/cavium-octeon/csrc-octeon.c
index 70fd92c31657..96110f217dcd 100644
--- a/arch/mips/cavium-octeon/csrc-octeon.c
+++ b/arch/mips/cavium-octeon/csrc-octeon.c
@@ -38,7 +38,7 @@ void octeon_init_cvmcount(void)
38 local_irq_restore(flags); 38 local_irq_restore(flags);
39} 39}
40 40
41static cycle_t octeon_cvmcount_read(void) 41static cycle_t octeon_cvmcount_read(struct clocksource *cs)
42{ 42{
43 return read_c0_cvmcount(); 43 return read_c0_cvmcount();
44} 44}
diff --git a/arch/mips/include/asm/bitops.h b/arch/mips/include/asm/bitops.h
index bac4a960b24c..b1e9e97a9c78 100644
--- a/arch/mips/include/asm/bitops.h
+++ b/arch/mips/include/asm/bitops.h
@@ -567,7 +567,7 @@ static inline unsigned long __fls(unsigned long word)
567 int num; 567 int num;
568 568
569 if (BITS_PER_LONG == 32 && 569 if (BITS_PER_LONG == 32 &&
570 __builtin_constant_p(cpu_has_mips_r) && cpu_has_mips_r) { 570 __builtin_constant_p(cpu_has_clo_clz) && cpu_has_clo_clz) {
571 __asm__( 571 __asm__(
572 " .set push \n" 572 " .set push \n"
573 " .set mips32 \n" 573 " .set mips32 \n"
@@ -644,7 +644,7 @@ static inline int fls(int x)
644{ 644{
645 int r; 645 int r;
646 646
647 if (__builtin_constant_p(cpu_has_mips_r) && cpu_has_mips_r) { 647 if (__builtin_constant_p(cpu_has_clo_clz) && cpu_has_clo_clz) {
648 __asm__("clz %0, %1" : "=r" (x) : "r" (x)); 648 __asm__("clz %0, %1" : "=r" (x) : "r" (x));
649 649
650 return 32 - x; 650 return 32 - x;
diff --git a/arch/mips/include/asm/checksum.h b/arch/mips/include/asm/checksum.h
index 290485ac5407..f2f7c6c264da 100644
--- a/arch/mips/include/asm/checksum.h
+++ b/arch/mips/include/asm/checksum.h
@@ -40,7 +40,7 @@ static inline
40__wsum csum_partial_copy_from_user(const void __user *src, void *dst, int len, 40__wsum csum_partial_copy_from_user(const void __user *src, void *dst, int len,
41 __wsum sum, int *err_ptr) 41 __wsum sum, int *err_ptr)
42{ 42{
43 might_sleep(); 43 might_fault();
44 return __csum_partial_copy_user((__force void *)src, dst, 44 return __csum_partial_copy_user((__force void *)src, dst,
45 len, sum, err_ptr); 45 len, sum, err_ptr);
46} 46}
@@ -53,7 +53,7 @@ static inline
53__wsum csum_and_copy_to_user(const void *src, void __user *dst, int len, 53__wsum csum_and_copy_to_user(const void *src, void __user *dst, int len,
54 __wsum sum, int *err_ptr) 54 __wsum sum, int *err_ptr)
55{ 55{
56 might_sleep(); 56 might_fault();
57 if (access_ok(VERIFY_WRITE, dst, len)) 57 if (access_ok(VERIFY_WRITE, dst, len))
58 return __csum_partial_copy_user(src, (__force void *)dst, 58 return __csum_partial_copy_user(src, (__force void *)dst,
59 len, sum, err_ptr); 59 len, sum, err_ptr);
diff --git a/arch/mips/include/asm/compat.h b/arch/mips/include/asm/compat.h
index 6c5b40905dd6..f58aed354bfd 100644
--- a/arch/mips/include/asm/compat.h
+++ b/arch/mips/include/asm/compat.h
@@ -3,7 +3,6 @@
3/* 3/*
4 * Architecture specific compatibility types 4 * Architecture specific compatibility types
5 */ 5 */
6#include <linux/seccomp.h>
7#include <linux/thread_info.h> 6#include <linux/thread_info.h>
8#include <linux/types.h> 7#include <linux/types.h>
9#include <asm/page.h> 8#include <asm/page.h>
diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h
index a0d14f85b781..c0047f861337 100644
--- a/arch/mips/include/asm/cpu-features.h
+++ b/arch/mips/include/asm/cpu-features.h
@@ -147,6 +147,15 @@
147#define cpu_has_mips_r (cpu_has_mips32r1 | cpu_has_mips32r2 | \ 147#define cpu_has_mips_r (cpu_has_mips32r1 | cpu_has_mips32r2 | \
148 cpu_has_mips64r1 | cpu_has_mips64r2) 148 cpu_has_mips64r1 | cpu_has_mips64r2)
149 149
150/*
151 * MIPS32, MIPS64, VR5500, IDT32332, IDT32334 and maybe a few other
152 * pre-MIPS32/MIPS53 processors have CLO, CLZ. For 64-bit kernels
153 * cpu_has_clo_clz also indicates the availability of DCLO and DCLZ.
154 */
155# ifndef cpu_has_clo_clz
156# define cpu_has_clo_clz cpu_has_mips_r
157# endif
158
150#ifndef cpu_has_dsp 159#ifndef cpu_has_dsp
151#define cpu_has_dsp (cpu_data[0].ases & MIPS_ASE_DSP) 160#define cpu_has_dsp (cpu_data[0].ases & MIPS_ASE_DSP)
152#endif 161#endif
diff --git a/arch/mips/include/asm/cpu-info.h b/arch/mips/include/asm/cpu-info.h
index 744cd8fb107f..126044308dec 100644
--- a/arch/mips/include/asm/cpu-info.h
+++ b/arch/mips/include/asm/cpu-info.h
@@ -39,8 +39,8 @@ struct cache_desc {
39#define MIPS_CACHE_PINDEX 0x00000020 /* Physically indexed cache */ 39#define MIPS_CACHE_PINDEX 0x00000020 /* Physically indexed cache */
40 40
41struct cpuinfo_mips { 41struct cpuinfo_mips {
42 unsigned long udelay_val; 42 unsigned int udelay_val;
43 unsigned long asid_cache; 43 unsigned int asid_cache;
44 44
45 /* 45 /*
46 * Capability and feature descriptor structure for MIPS CPU 46 * Capability and feature descriptor structure for MIPS CPU
diff --git a/arch/mips/include/asm/delay.h b/arch/mips/include/asm/delay.h
index b0bccd2c4ed5..a07e51b2be13 100644
--- a/arch/mips/include/asm/delay.h
+++ b/arch/mips/include/asm/delay.h
@@ -11,94 +11,12 @@
11#ifndef _ASM_DELAY_H 11#ifndef _ASM_DELAY_H
12#define _ASM_DELAY_H 12#define _ASM_DELAY_H
13 13
14#include <linux/param.h> 14extern void __delay(unsigned int loops);
15#include <linux/smp.h> 15extern void __ndelay(unsigned int ns);
16extern void __udelay(unsigned int us);
16 17
17#include <asm/compiler.h> 18#define ndelay(ns) __udelay(ns)
18#include <asm/war.h> 19#define udelay(us) __udelay(us)
19
20static inline void __delay(unsigned long loops)
21{
22 if (sizeof(long) == 4)
23 __asm__ __volatile__ (
24 " .set noreorder \n"
25 " .align 3 \n"
26 "1: bnez %0, 1b \n"
27 " subu %0, 1 \n"
28 " .set reorder \n"
29 : "=r" (loops)
30 : "0" (loops));
31 else if (sizeof(long) == 8 && !DADDI_WAR)
32 __asm__ __volatile__ (
33 " .set noreorder \n"
34 " .align 3 \n"
35 "1: bnez %0, 1b \n"
36 " dsubu %0, 1 \n"
37 " .set reorder \n"
38 : "=r" (loops)
39 : "0" (loops));
40 else if (sizeof(long) == 8 && DADDI_WAR)
41 __asm__ __volatile__ (
42 " .set noreorder \n"
43 " .align 3 \n"
44 "1: bnez %0, 1b \n"
45 " dsubu %0, %2 \n"
46 " .set reorder \n"
47 : "=r" (loops)
48 : "0" (loops), "r" (1));
49}
50
51
52/*
53 * Division by multiplication: you don't have to worry about
54 * loss of precision.
55 *
56 * Use only for very small delays ( < 1 msec). Should probably use a
57 * lookup table, really, as the multiplications take much too long with
58 * short delays. This is a "reasonable" implementation, though (and the
59 * first constant multiplications gets optimized away if the delay is
60 * a constant)
61 */
62
63static inline void __udelay(unsigned long usecs, unsigned long lpj)
64{
65 unsigned long hi, lo;
66
67 /*
68 * The rates of 128 is rounded wrongly by the catchall case
69 * for 64-bit. Excessive precission? Probably ...
70 */
71#if defined(CONFIG_64BIT) && (HZ == 128)
72 usecs *= 0x0008637bd05af6c7UL; /* 2**64 / (1000000 / HZ) */
73#elif defined(CONFIG_64BIT)
74 usecs *= (0x8000000000000000UL / (500000 / HZ));
75#else /* 32-bit junk follows here */
76 usecs *= (unsigned long) (((0x8000000000000000ULL / (500000 / HZ)) +
77 0x80000000ULL) >> 32);
78#endif
79
80 if (sizeof(long) == 4)
81 __asm__("multu\t%2, %3"
82 : "=h" (usecs), "=l" (lo)
83 : "r" (usecs), "r" (lpj)
84 : GCC_REG_ACCUM);
85 else if (sizeof(long) == 8 && !R4000_WAR)
86 __asm__("dmultu\t%2, %3"
87 : "=h" (usecs), "=l" (lo)
88 : "r" (usecs), "r" (lpj)
89 : GCC_REG_ACCUM);
90 else if (sizeof(long) == 8 && R4000_WAR)
91 __asm__("dmultu\t%3, %4\n\tmfhi\t%0"
92 : "=r" (usecs), "=h" (hi), "=l" (lo)
93 : "r" (usecs), "r" (lpj)
94 : GCC_REG_ACCUM);
95
96 __delay(usecs);
97}
98
99#define __udelay_val cpu_data[raw_smp_processor_id()].udelay_val
100
101#define udelay(usecs) __udelay((usecs), __udelay_val)
102 20
103/* make sure "usecs *= ..." in udelay do not overflow. */ 21/* make sure "usecs *= ..." in udelay do not overflow. */
104#if HZ >= 1000 22#if HZ >= 1000
diff --git a/arch/mips/include/asm/div64.h b/arch/mips/include/asm/div64.h
index d1d699105c11..dc5ea5736440 100644
--- a/arch/mips/include/asm/div64.h
+++ b/arch/mips/include/asm/div64.h
@@ -6,105 +6,63 @@
6 * License. See the file "COPYING" in the main directory of this archive 6 * License. See the file "COPYING" in the main directory of this archive
7 * for more details. 7 * for more details.
8 */ 8 */
9#ifndef _ASM_DIV64_H 9#ifndef __ASM_DIV64_H
10#define _ASM_DIV64_H 10#define __ASM_DIV64_H
11 11
12#include <linux/types.h> 12#include <asm-generic/div64.h>
13 13
14#if (_MIPS_SZLONG == 32) 14#if BITS_PER_LONG == 64
15 15
16#include <asm/compiler.h> 16#include <linux/types.h>
17 17
18/* 18/*
19 * No traps on overflows for any of these... 19 * No traps on overflows for any of these...
20 */ 20 */
21 21
22#define do_div64_32(res, high, low, base) ({ \ 22#define __div64_32(n, base) \
23 unsigned long __quot32, __mod32; \ 23({ \
24 unsigned long __cf, __tmp, __tmp2, __i; \ 24 unsigned long __cf, __tmp, __tmp2, __i; \
25 \ 25 unsigned long __quot32, __mod32; \
26 __asm__(".set push\n\t" \ 26 unsigned long __high, __low; \
27 ".set noat\n\t" \ 27 unsigned long long __n; \
28 ".set noreorder\n\t" \ 28 \
29 "move %2, $0\n\t" \ 29 __high = *__n >> 32; \
30 "move %3, $0\n\t" \ 30 __low = __n; \
31 "b 1f\n\t" \ 31 __asm__( \
32 " li %4, 0x21\n" \ 32 " .set push \n" \
33 "0:\n\t" \ 33 " .set noat \n" \
34 "sll $1, %0, 0x1\n\t" \ 34 " .set noreorder \n" \
35 "srl %3, %0, 0x1f\n\t" \ 35 " move %2, $0 \n" \
36 "or %0, $1, %5\n\t" \ 36 " move %3, $0 \n" \
37 "sll %1, %1, 0x1\n\t" \ 37 " b 1f \n" \
38 "sll %2, %2, 0x1\n" \ 38 " li %4, 0x21 \n" \
39 "1:\n\t" \ 39 "0: \n" \
40 "bnez %3, 2f\n\t" \ 40 " sll $1, %0, 0x1 \n" \
41 " sltu %5, %0, %z6\n\t" \ 41 " srl %3, %0, 0x1f \n" \
42 "bnez %5, 3f\n" \ 42 " or %0, $1, %5 \n" \
43 "2:\n\t" \ 43 " sll %1, %1, 0x1 \n" \
44 " addiu %4, %4, -1\n\t" \ 44 " sll %2, %2, 0x1 \n" \
45 "subu %0, %0, %z6\n\t" \ 45 "1: \n" \
46 "addiu %2, %2, 1\n" \ 46 " bnez %3, 2f \n" \
47 "3:\n\t" \ 47 " sltu %5, %0, %z6 \n" \
48 "bnez %4, 0b\n\t" \ 48 " bnez %5, 3f \n" \
49 " srl %5, %1, 0x1f\n\t" \ 49 "2: \n" \
50 ".set pop" \ 50 " addiu %4, %4, -1 \n" \
51 : "=&r" (__mod32), "=&r" (__tmp), \ 51 " subu %0, %0, %z6 \n" \
52 "=&r" (__quot32), "=&r" (__cf), \ 52 " addiu %2, %2, 1 \n" \
53 "=&r" (__i), "=&r" (__tmp2) \ 53 "3: \n" \
54 : "Jr" (base), "0" (high), "1" (low)); \ 54 " bnez %4, 0b\n\t" \
55 \ 55 " srl %5, %1, 0x1f\n\t" \
56 (res) = __quot32; \ 56 " .set pop" \
57 __mod32; }) 57 : "=&r" (__mod32), "=&r" (__tmp), \
58 58 "=&r" (__quot32), "=&r" (__cf), \
59#define do_div(n, base) ({ \ 59 "=&r" (__i), "=&r" (__tmp2) \
60 unsigned long long __quot; \ 60 : "Jr" (base), "0" (__high), "1" (__low)); \
61 unsigned long __mod; \ 61 \
62 unsigned long long __div; \ 62 (__n) = __quot32; \
63 unsigned long __upper, __low, __high, __base; \ 63 __mod32; \
64 \ 64})
65 __div = (n); \
66 __base = (base); \
67 \
68 __high = __div >> 32; \
69 __low = __div; \
70 __upper = __high; \
71 \
72 if (__high) \
73 __asm__("divu $0, %z2, %z3" \
74 : "=h" (__upper), "=l" (__high) \
75 : "Jr" (__high), "Jr" (__base) \
76 : GCC_REG_ACCUM); \
77 \
78 __mod = do_div64_32(__low, __upper, __low, __base); \
79 \
80 __quot = __high; \
81 __quot = __quot << 32 | __low; \
82 (n) = __quot; \
83 __mod; })
84
85#endif /* (_MIPS_SZLONG == 32) */
86
87#if (_MIPS_SZLONG == 64)
88
89/*
90 * Hey, we're already 64-bit, no
91 * need to play games..
92 */
93#define do_div(n, base) ({ \
94 unsigned long __quot; \
95 unsigned int __mod; \
96 unsigned long __div; \
97 unsigned int __base; \
98 \
99 __div = (n); \
100 __base = (base); \
101 \
102 __mod = __div % __base; \
103 __quot = __div / __base; \
104 \
105 (n) = __quot; \
106 __mod; })
107 65
108#endif /* (_MIPS_SZLONG == 64) */ 66#endif /* BITS_PER_LONG == 64 */
109 67
110#endif /* _ASM_DIV64_H */ 68#endif /* __ASM_DIV64_H */
diff --git a/arch/mips/include/asm/dma-mapping.h b/arch/mips/include/asm/dma-mapping.h
index c64afb40cd06..d16afddb09a9 100644
--- a/arch/mips/include/asm/dma-mapping.h
+++ b/arch/mips/include/asm/dma-mapping.h
@@ -24,8 +24,13 @@ extern int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
24 enum dma_data_direction direction); 24 enum dma_data_direction direction);
25extern dma_addr_t dma_map_page(struct device *dev, struct page *page, 25extern dma_addr_t dma_map_page(struct device *dev, struct page *page,
26 unsigned long offset, size_t size, enum dma_data_direction direction); 26 unsigned long offset, size_t size, enum dma_data_direction direction);
27extern void dma_unmap_page(struct device *dev, dma_addr_t dma_address, 27
28 size_t size, enum dma_data_direction direction); 28static inline void dma_unmap_page(struct device *dev, dma_addr_t dma_address,
29 size_t size, enum dma_data_direction direction)
30{
31 dma_unmap_single(dev, dma_address, size, direction);
32}
33
29extern void dma_unmap_sg(struct device *dev, struct scatterlist *sg, 34extern void dma_unmap_sg(struct device *dev, struct scatterlist *sg,
30 int nhwentries, enum dma_data_direction direction); 35 int nhwentries, enum dma_data_direction direction);
31extern void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, 36extern void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
diff --git a/arch/mips/include/asm/fixmap.h b/arch/mips/include/asm/fixmap.h
index 9cc8522a394f..0f5caa1307f1 100644
--- a/arch/mips/include/asm/fixmap.h
+++ b/arch/mips/include/asm/fixmap.h
@@ -108,6 +108,9 @@ static inline unsigned long virt_to_fix(const unsigned long vaddr)
108 return __virt_to_fix(vaddr); 108 return __virt_to_fix(vaddr);
109} 109}
110 110
111#define kmap_get_fixmap_pte(vaddr) \
112 pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr)), (vaddr))
113
111/* 114/*
112 * Called from pgtable_init() 115 * Called from pgtable_init()
113 */ 116 */
diff --git a/arch/mips/include/asm/hazards.h b/arch/mips/include/asm/hazards.h
index a12d971db4f9..0eaf77ffbc4f 100644
--- a/arch/mips/include/asm/hazards.h
+++ b/arch/mips/include/asm/hazards.h
@@ -138,8 +138,9 @@ do { \
138 __instruction_hazard(); \ 138 __instruction_hazard(); \
139} while (0) 139} while (0)
140 140
141#elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_CAVIUM_OCTEON) || \ 141#elif defined(CONFIG_MACH_ALCHEMY) || defined(CONFIG_CPU_CAVIUM_OCTEON) || \
142 defined(CONFIG_CPU_R5500) || defined(CONFIG_MACH_ALCHEMY) 142 defined(CONFIG_CPU_LOONGSON2) || defined(CONFIG_CPU_R10000) || \
143 defined(CONFIG_CPU_R5500)
143 144
144/* 145/*
145 * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer. 146 * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer.
diff --git a/arch/mips/include/asm/highmem.h b/arch/mips/include/asm/highmem.h
index 4374ab2adc75..25adfb02923d 100644
--- a/arch/mips/include/asm/highmem.h
+++ b/arch/mips/include/asm/highmem.h
@@ -30,8 +30,6 @@
30/* declarations for highmem.c */ 30/* declarations for highmem.c */
31extern unsigned long highstart_pfn, highend_pfn; 31extern unsigned long highstart_pfn, highend_pfn;
32 32
33extern pte_t *kmap_pte;
34extern pgprot_t kmap_prot;
35extern pte_t *pkmap_page_table; 33extern pte_t *pkmap_page_table;
36 34
37/* 35/*
@@ -62,6 +60,10 @@ extern struct page *__kmap_atomic_to_page(void *ptr);
62 60
63#define flush_cache_kmaps() flush_cache_all() 61#define flush_cache_kmaps() flush_cache_all()
64 62
63extern void kmap_init(void);
64
65#define kmap_prot PAGE_KERNEL
66
65#endif /* __KERNEL__ */ 67#endif /* __KERNEL__ */
66 68
67#endif /* _ASM_HIGHMEM_H */ 69#endif /* _ASM_HIGHMEM_H */
diff --git a/arch/mips/include/asm/ioctl.h b/arch/mips/include/asm/ioctl.h
index 85067e248a83..916163401b2c 100644
--- a/arch/mips/include/asm/ioctl.h
+++ b/arch/mips/include/asm/ioctl.h
@@ -60,12 +60,16 @@
60 ((nr) << _IOC_NRSHIFT) | \ 60 ((nr) << _IOC_NRSHIFT) | \
61 ((size) << _IOC_SIZESHIFT)) 61 ((size) << _IOC_SIZESHIFT))
62 62
63#ifdef __KERNEL__
63/* provoke compile error for invalid uses of size argument */ 64/* provoke compile error for invalid uses of size argument */
64extern unsigned int __invalid_size_argument_for_IOC; 65extern unsigned int __invalid_size_argument_for_IOC;
65#define _IOC_TYPECHECK(t) \ 66#define _IOC_TYPECHECK(t) \
66 ((sizeof(t) == sizeof(t[1]) && \ 67 ((sizeof(t) == sizeof(t[1]) && \
67 sizeof(t) < (1 << _IOC_SIZEBITS)) ? \ 68 sizeof(t) < (1 << _IOC_SIZEBITS)) ? \
68 sizeof(t) : __invalid_size_argument_for_IOC) 69 sizeof(t) : __invalid_size_argument_for_IOC)
70#else
71#define _IOC_TYPECHECK(t) (sizeof(t))
72#endif
69 73
70/* used to create numbers */ 74/* used to create numbers */
71#define _IO(type, nr) _IOC(_IOC_NONE, (type), (nr), 0) 75#define _IO(type, nr) _IOC(_IOC_NONE, (type), (nr), 0)
diff --git a/arch/mips/include/asm/mach-au1x00/au1000.h b/arch/mips/include/asm/mach-au1x00/au1000.h
index 62f91f50b5b5..854e95f1b07c 100644
--- a/arch/mips/include/asm/mach-au1x00/au1000.h
+++ b/arch/mips/include/asm/mach-au1x00/au1000.h
@@ -715,7 +715,7 @@ enum soc_au1500_ints {
715#ifdef CONFIG_SOC_AU1100 715#ifdef CONFIG_SOC_AU1100
716enum soc_au1100_ints { 716enum soc_au1100_ints {
717 AU1100_FIRST_INT = MIPS_CPU_IRQ_BASE + 8, 717 AU1100_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
718 AU1100_UART0_INT, 718 AU1100_UART0_INT = AU1100_FIRST_INT,
719 AU1100_UART1_INT, 719 AU1100_UART1_INT,
720 AU1100_SD_INT, 720 AU1100_SD_INT,
721 AU1100_UART3_INT, 721 AU1100_UART3_INT,
@@ -902,8 +902,8 @@ enum soc_au1200_ints {
902 AU1000_RTC_MATCH0_INT, 902 AU1000_RTC_MATCH0_INT,
903 AU1000_RTC_MATCH1_INT, 903 AU1000_RTC_MATCH1_INT,
904 AU1000_RTC_MATCH2_INT, 904 AU1000_RTC_MATCH2_INT,
905 905 AU1200_GPIO_203,
906 AU1200_NAND_INT = AU1200_FIRST_INT + 23, 906 AU1200_NAND_INT,
907 AU1200_GPIO_204, 907 AU1200_GPIO_204,
908 AU1200_GPIO_205, 908 AU1200_GPIO_205,
909 AU1200_GPIO_206, 909 AU1200_GPIO_206,
diff --git a/arch/mips/include/asm/mach-au1x00/au1xxx_ide.h b/arch/mips/include/asm/mach-au1x00/au1xxx_ide.h
index 60638b8969ba..5656c72de6d3 100644
--- a/arch/mips/include/asm/mach-au1x00/au1xxx_ide.h
+++ b/arch/mips/include/asm/mach-au1x00/au1xxx_ide.h
@@ -46,20 +46,6 @@
46#define CONFIG_BLK_DEV_IDE_AU1XXX_BURSTABLE_ON 0 46#define CONFIG_BLK_DEV_IDE_AU1XXX_BURSTABLE_ON 0
47#endif 47#endif
48 48
49#ifdef CONFIG_PM
50/*
51 * This will enable the device to be powered up when write() or read()
52 * is called. If this is not defined, the driver will return -EBUSY.
53 */
54#define WAKE_ON_ACCESS 1
55
56typedef struct {
57 spinlock_t lock; /* Used to block on state transitions */
58 au1xxx_power_dev_t *dev; /* Power Managers device structure */
59 unsigned stopped; /* Used to signal device is stopped */
60} pm_state;
61#endif
62
63typedef struct { 49typedef struct {
64 u32 tx_dev_id, rx_dev_id, target_dev_id; 50 u32 tx_dev_id, rx_dev_id, target_dev_id;
65 u32 tx_chan, rx_chan; 51 u32 tx_chan, rx_chan;
@@ -72,9 +58,6 @@ typedef struct {
72#endif 58#endif
73 int irq; 59 int irq;
74 u32 regbase; 60 u32 regbase;
75#ifdef CONFIG_PM
76 pm_state pm;
77#endif
78} _auide_hwif; 61} _auide_hwif;
79 62
80/******************************************************************************/ 63/******************************************************************************/
diff --git a/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h b/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h
new file mode 100644
index 000000000000..550a10dc9dba
--- /dev/null
+++ b/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h
@@ -0,0 +1,59 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2009 Wu Zhangjin <wuzj@lemote.com>
7 * Copyright (C) 2009 Philippe Vachon <philippe@cowpig.ca>
8 * Copyright (C) 2009 Zhang Le <r0bertz@gentoo.org>
9 *
10 * reference: /proc/cpuinfo,
11 * arch/mips/kernel/cpu-probe.c(cpu_probe_legacy),
12 * arch/mips/kernel/proc.c(show_cpuinfo),
13 * loongson2f user manual.
14 */
15
16#ifndef __ASM_MACH_LEMOTE_CPU_FEATURE_OVERRIDES_H
17#define __ASM_MACH_LEMOTE_CPU_FEATURE_OVERRIDES_H
18
19#define cpu_dcache_line_size() 32
20#define cpu_icache_line_size() 32
21#define cpu_scache_line_size() 32
22
23
24#define cpu_has_32fpr 1
25#define cpu_has_3k_cache 0
26#define cpu_has_4k_cache 1
27#define cpu_has_4kex 1
28#define cpu_has_64bits 1
29#define cpu_has_cache_cdex_p 0
30#define cpu_has_cache_cdex_s 0
31#define cpu_has_counter 1
32#define cpu_has_dc_aliases 1
33#define cpu_has_divec 0
34#define cpu_has_dsp 0
35#define cpu_has_ejtag 0
36#define cpu_has_fpu 1
37#define cpu_has_ic_fills_f_dc 0
38#define cpu_has_inclusive_pcaches 1
39#define cpu_has_llsc 1
40#define cpu_has_mcheck 0
41#define cpu_has_mdmx 0
42#define cpu_has_mips16 0
43#define cpu_has_mips32r1 0
44#define cpu_has_mips32r2 0
45#define cpu_has_mips3d 0
46#define cpu_has_mips64r1 0
47#define cpu_has_mips64r2 0
48#define cpu_has_mipsmt 0
49#define cpu_has_prefetch 0
50#define cpu_has_smartmips 0
51#define cpu_has_tlb 1
52#define cpu_has_tx39_cache 0
53#define cpu_has_userlocal 0
54#define cpu_has_vce 0
55#define cpu_has_vtag_icache 0
56#define cpu_has_watch 1
57#define cpu_icache_snoops_remote_store 1
58
59#endif /* __ASM_MACH_LEMOTE_CPU_FEATURE_OVERRIDES_H */
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
index 526f327475ce..32ef8bec5c85 100644
--- a/arch/mips/include/asm/mipsregs.h
+++ b/arch/mips/include/asm/mipsregs.h
@@ -184,12 +184,19 @@
184#else 184#else
185 185
186#define PM_4K 0x00000000 186#define PM_4K 0x00000000
187#define PM_8K 0x00002000
187#define PM_16K 0x00006000 188#define PM_16K 0x00006000
189#define PM_32K 0x0000e000
188#define PM_64K 0x0001e000 190#define PM_64K 0x0001e000
191#define PM_128K 0x0003e000
189#define PM_256K 0x0007e000 192#define PM_256K 0x0007e000
193#define PM_512K 0x000fe000
190#define PM_1M 0x001fe000 194#define PM_1M 0x001fe000
195#define PM_2M 0x003fe000
191#define PM_4M 0x007fe000 196#define PM_4M 0x007fe000
197#define PM_8M 0x00ffe000
192#define PM_16M 0x01ffe000 198#define PM_16M 0x01ffe000
199#define PM_32M 0x03ffe000
193#define PM_64M 0x07ffe000 200#define PM_64M 0x07ffe000
194#define PM_256M 0x1fffe000 201#define PM_256M 0x1fffe000
195#define PM_1G 0x7fffe000 202#define PM_1G 0x7fffe000
@@ -201,8 +208,12 @@
201 */ 208 */
202#ifdef CONFIG_PAGE_SIZE_4KB 209#ifdef CONFIG_PAGE_SIZE_4KB
203#define PM_DEFAULT_MASK PM_4K 210#define PM_DEFAULT_MASK PM_4K
211#elif defined(CONFIG_PAGE_SIZE_8KB)
212#define PM_DEFAULT_MASK PM_8K
204#elif defined(CONFIG_PAGE_SIZE_16KB) 213#elif defined(CONFIG_PAGE_SIZE_16KB)
205#define PM_DEFAULT_MASK PM_16K 214#define PM_DEFAULT_MASK PM_16K
215#elif defined(CONFIG_PAGE_SIZE_32KB)
216#define PM_DEFAULT_MASK PM_32K
206#elif defined(CONFIG_PAGE_SIZE_64KB) 217#elif defined(CONFIG_PAGE_SIZE_64KB)
207#define PM_DEFAULT_MASK PM_64K 218#define PM_DEFAULT_MASK PM_64K
208#else 219#else
@@ -717,8 +728,8 @@ do { \
717 ".set\tmips64\n\t" \ 728 ".set\tmips64\n\t" \
718 "dmfc0\t%M0, " #source "\n\t" \ 729 "dmfc0\t%M0, " #source "\n\t" \
719 "dsll\t%L0, %M0, 32\n\t" \ 730 "dsll\t%L0, %M0, 32\n\t" \
720 "dsrl\t%M0, %M0, 32\n\t" \ 731 "dsra\t%M0, %M0, 32\n\t" \
721 "dsrl\t%L0, %L0, 32\n\t" \ 732 "dsra\t%L0, %L0, 32\n\t" \
722 ".set\tmips0" \ 733 ".set\tmips0" \
723 : "=r" (__val)); \ 734 : "=r" (__val)); \
724 else \ 735 else \
@@ -726,8 +737,8 @@ do { \
726 ".set\tmips64\n\t" \ 737 ".set\tmips64\n\t" \
727 "dmfc0\t%M0, " #source ", " #sel "\n\t" \ 738 "dmfc0\t%M0, " #source ", " #sel "\n\t" \
728 "dsll\t%L0, %M0, 32\n\t" \ 739 "dsll\t%L0, %M0, 32\n\t" \
729 "dsrl\t%M0, %M0, 32\n\t" \ 740 "dsra\t%M0, %M0, 32\n\t" \
730 "dsrl\t%L0, %L0, 32\n\t" \ 741 "dsra\t%L0, %L0, 32\n\t" \
731 ".set\tmips0" \ 742 ".set\tmips0" \
732 : "=r" (__val)); \ 743 : "=r" (__val)); \
733 local_irq_restore(__flags); \ 744 local_irq_restore(__flags); \
@@ -1484,14 +1495,15 @@ static inline unsigned int \
1484set_c0_##name(unsigned int set) \ 1495set_c0_##name(unsigned int set) \
1485{ \ 1496{ \
1486 unsigned int res; \ 1497 unsigned int res; \
1498 unsigned int new; \
1487 unsigned int omt; \ 1499 unsigned int omt; \
1488 unsigned long flags; \ 1500 unsigned long flags; \
1489 \ 1501 \
1490 local_irq_save(flags); \ 1502 local_irq_save(flags); \
1491 omt = __dmt(); \ 1503 omt = __dmt(); \
1492 res = read_c0_##name(); \ 1504 res = read_c0_##name(); \
1493 res |= set; \ 1505 new = res | set; \
1494 write_c0_##name(res); \ 1506 write_c0_##name(new); \
1495 __emt(omt); \ 1507 __emt(omt); \
1496 local_irq_restore(flags); \ 1508 local_irq_restore(flags); \
1497 \ 1509 \
@@ -1502,14 +1514,15 @@ static inline unsigned int \
1502clear_c0_##name(unsigned int clear) \ 1514clear_c0_##name(unsigned int clear) \
1503{ \ 1515{ \
1504 unsigned int res; \ 1516 unsigned int res; \
1517 unsigned int new; \
1505 unsigned int omt; \ 1518 unsigned int omt; \
1506 unsigned long flags; \ 1519 unsigned long flags; \
1507 \ 1520 \
1508 local_irq_save(flags); \ 1521 local_irq_save(flags); \
1509 omt = __dmt(); \ 1522 omt = __dmt(); \
1510 res = read_c0_##name(); \ 1523 res = read_c0_##name(); \
1511 res &= ~clear; \ 1524 new = res & ~clear; \
1512 write_c0_##name(res); \ 1525 write_c0_##name(new); \
1513 __emt(omt); \ 1526 __emt(omt); \
1514 local_irq_restore(flags); \ 1527 local_irq_restore(flags); \
1515 \ 1528 \
@@ -1517,9 +1530,10 @@ clear_c0_##name(unsigned int clear) \
1517} \ 1530} \
1518 \ 1531 \
1519static inline unsigned int \ 1532static inline unsigned int \
1520change_c0_##name(unsigned int change, unsigned int new) \ 1533change_c0_##name(unsigned int change, unsigned int newbits) \
1521{ \ 1534{ \
1522 unsigned int res; \ 1535 unsigned int res; \
1536 unsigned int new; \
1523 unsigned int omt; \ 1537 unsigned int omt; \
1524 unsigned long flags; \ 1538 unsigned long flags; \
1525 \ 1539 \
@@ -1527,9 +1541,9 @@ change_c0_##name(unsigned int change, unsigned int new) \
1527 \ 1541 \
1528 omt = __dmt(); \ 1542 omt = __dmt(); \
1529 res = read_c0_##name(); \ 1543 res = read_c0_##name(); \
1530 res &= ~change; \ 1544 new = res & ~change; \
1531 res |= (new & change); \ 1545 new |= (newbits & change); \
1532 write_c0_##name(res); \ 1546 write_c0_##name(new); \
1533 __emt(omt); \ 1547 __emt(omt); \
1534 local_irq_restore(flags); \ 1548 local_irq_restore(flags); \
1535 \ 1549 \
diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
index fe7a88ea066e..9f946e4ca057 100644
--- a/arch/mips/include/asm/page.h
+++ b/arch/mips/include/asm/page.h
@@ -23,6 +23,9 @@
23#ifdef CONFIG_PAGE_SIZE_16KB 23#ifdef CONFIG_PAGE_SIZE_16KB
24#define PAGE_SHIFT 14 24#define PAGE_SHIFT 14
25#endif 25#endif
26#ifdef CONFIG_PAGE_SIZE_32KB
27#define PAGE_SHIFT 15
28#endif
26#ifdef CONFIG_PAGE_SIZE_64KB 29#ifdef CONFIG_PAGE_SIZE_64KB
27#define PAGE_SHIFT 16 30#define PAGE_SHIFT 16
28#endif 31#endif
diff --git a/arch/mips/include/asm/pgtable-64.h b/arch/mips/include/asm/pgtable-64.h
index 943515f0ef87..4ed9d1bba2ba 100644
--- a/arch/mips/include/asm/pgtable-64.h
+++ b/arch/mips/include/asm/pgtable-64.h
@@ -83,6 +83,12 @@
83#define PMD_ORDER 0 83#define PMD_ORDER 0
84#define PTE_ORDER 0 84#define PTE_ORDER 0
85#endif 85#endif
86#ifdef CONFIG_PAGE_SIZE_32KB
87#define PGD_ORDER 0
88#define PUD_ORDER aieeee_attempt_to_allocate_pud
89#define PMD_ORDER 0
90#define PTE_ORDER 0
91#endif
86#ifdef CONFIG_PAGE_SIZE_64KB 92#ifdef CONFIG_PAGE_SIZE_64KB
87#define PGD_ORDER 0 93#define PGD_ORDER 0
88#define PUD_ORDER aieeee_attempt_to_allocate_pud 94#define PUD_ORDER aieeee_attempt_to_allocate_pud
diff --git a/arch/mips/include/asm/sn/addrs.h b/arch/mips/include/asm/sn/addrs.h
index fec9bdd34913..3a56d90abfa6 100644
--- a/arch/mips/include/asm/sn/addrs.h
+++ b/arch/mips/include/asm/sn/addrs.h
@@ -359,11 +359,11 @@
359 TO_NODE_UNCAC((nasid), LAUNCH_OFFSET(nasid, slice)) 359 TO_NODE_UNCAC((nasid), LAUNCH_OFFSET(nasid, slice))
360#define LAUNCH_SIZE(nasid) KLD_LAUNCH(nasid)->size 360#define LAUNCH_SIZE(nasid) KLD_LAUNCH(nasid)->size
361 361
362#define NMI_OFFSET(nasid, slice) \ 362#define SN_NMI_OFFSET(nasid, slice) \
363 (KLD_NMI(nasid)->offset + \ 363 (KLD_NMI(nasid)->offset + \
364 KLD_NMI(nasid)->stride * (slice)) 364 KLD_NMI(nasid)->stride * (slice))
365#define NMI_ADDR(nasid, slice) \ 365#define NMI_ADDR(nasid, slice) \
366 TO_NODE_UNCAC((nasid), NMI_OFFSET(nasid, slice)) 366 TO_NODE_UNCAC((nasid), SN_NMI_OFFSET(nasid, slice))
367#define NMI_SIZE(nasid) KLD_NMI(nasid)->size 367#define NMI_SIZE(nasid) KLD_NMI(nasid)->size
368 368
369#define KLCONFIG_OFFSET(nasid) KLD_KLCONFIG(nasid)->offset 369#define KLCONFIG_OFFSET(nasid) KLD_KLCONFIG(nasid)->offset
diff --git a/arch/mips/include/asm/sn/nmi.h b/arch/mips/include/asm/sn/nmi.h
index 6b7b0b5f3729..1af49897d4e1 100644
--- a/arch/mips/include/asm/sn/nmi.h
+++ b/arch/mips/include/asm/sn/nmi.h
@@ -3,13 +3,13 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Derived from IRIX <sys/SN/nmi.h>, Revision 1.5.
7 *
6 * Copyright (C) 1992 - 1997 Silicon Graphics, Inc. 8 * Copyright (C) 1992 - 1997 Silicon Graphics, Inc.
7 */ 9 */
8#ifndef __ASM_SN_NMI_H 10#ifndef __ASM_SN_NMI_H
9#define __ASM_SN_NMI_H 11#define __ASM_SN_NMI_H
10 12
11#ident "$Revision: 1.5 $"
12
13#include <asm/sn/addrs.h> 13#include <asm/sn/addrs.h>
14 14
15/* 15/*
diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
index 676aa2ae1913..143a48136a4b 100644
--- a/arch/mips/include/asm/thread_info.h
+++ b/arch/mips/include/asm/thread_info.h
@@ -75,6 +75,9 @@ register struct thread_info *__current_thread_info __asm__("$28");
75#ifdef CONFIG_PAGE_SIZE_16KB 75#ifdef CONFIG_PAGE_SIZE_16KB
76#define THREAD_SIZE_ORDER (0) 76#define THREAD_SIZE_ORDER (0)
77#endif 77#endif
78#ifdef CONFIG_PAGE_SIZE_32KB
79#define THREAD_SIZE_ORDER (0)
80#endif
78#ifdef CONFIG_PAGE_SIZE_64KB 81#ifdef CONFIG_PAGE_SIZE_64KB
79#define THREAD_SIZE_ORDER (0) 82#define THREAD_SIZE_ORDER (0)
80#endif 83#endif
diff --git a/arch/mips/include/asm/time.h b/arch/mips/include/asm/time.h
index 38a30d2ee959..df6a430de5eb 100644
--- a/arch/mips/include/asm/time.h
+++ b/arch/mips/include/asm/time.h
@@ -57,7 +57,11 @@ extern int r4k_clockevent_init(void);
57 57
58static inline int mips_clockevent_init(void) 58static inline int mips_clockevent_init(void)
59{ 59{
60#ifdef CONFIG_CEVT_R4K 60#ifdef CONFIG_MIPS_MT_SMTC
61 extern int smtc_clockevent_init(void);
62
63 return smtc_clockevent_init();
64#elif defined(CONFIG_CEVT_R4K)
61 return r4k_clockevent_init(); 65 return r4k_clockevent_init();
62#else 66#else
63 return -ENXIO; 67 return -ENXIO;
diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h
index 09ff5bb17445..c2d53c18fd36 100644
--- a/arch/mips/include/asm/uaccess.h
+++ b/arch/mips/include/asm/uaccess.h
@@ -105,10 +105,20 @@
105#define __access_mask get_fs().seg 105#define __access_mask get_fs().seg
106 106
107#define __access_ok(addr, size, mask) \ 107#define __access_ok(addr, size, mask) \
108 (((signed long)((mask) & ((addr) | ((addr) + (size)) | __ua_size(size)))) == 0) 108({ \
109 unsigned long __addr = (unsigned long) (addr); \
110 unsigned long __size = size; \
111 unsigned long __mask = mask; \
112 unsigned long __ok; \
113 \
114 __chk_user_ptr(addr); \
115 __ok = (signed long)(__mask & (__addr | (__addr + __size) | \
116 __ua_size(__size))); \
117 __ok == 0; \
118})
109 119
110#define access_ok(type, addr, size) \ 120#define access_ok(type, addr, size) \
111 likely(__access_ok((unsigned long)(addr), (size), __access_mask)) 121 likely(__access_ok((addr), (size), __access_mask))
112 122
113/* 123/*
114 * put_user: - Write a simple value into user space. 124 * put_user: - Write a simple value into user space.
@@ -225,6 +235,7 @@ do { \
225({ \ 235({ \
226 int __gu_err; \ 236 int __gu_err; \
227 \ 237 \
238 __chk_user_ptr(ptr); \
228 __get_user_common((x), size, ptr); \ 239 __get_user_common((x), size, ptr); \
229 __gu_err; \ 240 __gu_err; \
230}) 241})
@@ -234,6 +245,7 @@ do { \
234 int __gu_err = -EFAULT; \ 245 int __gu_err = -EFAULT; \
235 const __typeof__(*(ptr)) __user * __gu_ptr = (ptr); \ 246 const __typeof__(*(ptr)) __user * __gu_ptr = (ptr); \
236 \ 247 \
248 might_fault(); \
237 if (likely(access_ok(VERIFY_READ, __gu_ptr, size))) \ 249 if (likely(access_ok(VERIFY_READ, __gu_ptr, size))) \
238 __get_user_common((x), size, __gu_ptr); \ 250 __get_user_common((x), size, __gu_ptr); \
239 \ 251 \
@@ -305,6 +317,7 @@ do { \
305 __typeof__(*(ptr)) __pu_val; \ 317 __typeof__(*(ptr)) __pu_val; \
306 int __pu_err = 0; \ 318 int __pu_err = 0; \
307 \ 319 \
320 __chk_user_ptr(ptr); \
308 __pu_val = (x); \ 321 __pu_val = (x); \
309 switch (size) { \ 322 switch (size) { \
310 case 1: __put_user_asm("sb", ptr); break; \ 323 case 1: __put_user_asm("sb", ptr); break; \
@@ -322,6 +335,7 @@ do { \
322 __typeof__(*(ptr)) __pu_val = (x); \ 335 __typeof__(*(ptr)) __pu_val = (x); \
323 int __pu_err = -EFAULT; \ 336 int __pu_err = -EFAULT; \
324 \ 337 \
338 might_fault(); \
325 if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) { \ 339 if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) { \
326 switch (size) { \ 340 switch (size) { \
327 case 1: __put_user_asm("sb", __pu_addr); break; \ 341 case 1: __put_user_asm("sb", __pu_addr); break; \
@@ -696,10 +710,10 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n);
696 const void *__cu_from; \ 710 const void *__cu_from; \
697 long __cu_len; \ 711 long __cu_len; \
698 \ 712 \
699 might_sleep(); \
700 __cu_to = (to); \ 713 __cu_to = (to); \
701 __cu_from = (from); \ 714 __cu_from = (from); \
702 __cu_len = (n); \ 715 __cu_len = (n); \
716 might_fault(); \
703 __cu_len = __invoke_copy_to_user(__cu_to, __cu_from, __cu_len); \ 717 __cu_len = __invoke_copy_to_user(__cu_to, __cu_from, __cu_len); \
704 __cu_len; \ 718 __cu_len; \
705}) 719})
@@ -752,13 +766,14 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
752 const void *__cu_from; \ 766 const void *__cu_from; \
753 long __cu_len; \ 767 long __cu_len; \
754 \ 768 \
755 might_sleep(); \
756 __cu_to = (to); \ 769 __cu_to = (to); \
757 __cu_from = (from); \ 770 __cu_from = (from); \
758 __cu_len = (n); \ 771 __cu_len = (n); \
759 if (access_ok(VERIFY_WRITE, __cu_to, __cu_len)) \ 772 if (access_ok(VERIFY_WRITE, __cu_to, __cu_len)) { \
773 might_fault(); \
760 __cu_len = __invoke_copy_to_user(__cu_to, __cu_from, \ 774 __cu_len = __invoke_copy_to_user(__cu_to, __cu_from, \
761 __cu_len); \ 775 __cu_len); \
776 } \
762 __cu_len; \ 777 __cu_len; \
763}) 778})
764 779
@@ -831,10 +846,10 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
831 const void __user *__cu_from; \ 846 const void __user *__cu_from; \
832 long __cu_len; \ 847 long __cu_len; \
833 \ 848 \
834 might_sleep(); \
835 __cu_to = (to); \ 849 __cu_to = (to); \
836 __cu_from = (from); \ 850 __cu_from = (from); \
837 __cu_len = (n); \ 851 __cu_len = (n); \
852 might_fault(); \
838 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \ 853 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \
839 __cu_len); \ 854 __cu_len); \
840 __cu_len; \ 855 __cu_len; \
@@ -862,17 +877,31 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
862 const void __user *__cu_from; \ 877 const void __user *__cu_from; \
863 long __cu_len; \ 878 long __cu_len; \
864 \ 879 \
865 might_sleep(); \
866 __cu_to = (to); \ 880 __cu_to = (to); \
867 __cu_from = (from); \ 881 __cu_from = (from); \
868 __cu_len = (n); \ 882 __cu_len = (n); \
869 if (access_ok(VERIFY_READ, __cu_from, __cu_len)) \ 883 if (access_ok(VERIFY_READ, __cu_from, __cu_len)) { \
884 might_fault(); \
870 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \ 885 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \
871 __cu_len); \ 886 __cu_len); \
887 } \
872 __cu_len; \ 888 __cu_len; \
873}) 889})
874 890
875#define __copy_in_user(to, from, n) __copy_from_user(to, from, n) 891#define __copy_in_user(to, from, n) \
892({ \
893 void __user *__cu_to; \
894 const void __user *__cu_from; \
895 long __cu_len; \
896 \
897 __cu_to = (to); \
898 __cu_from = (from); \
899 __cu_len = (n); \
900 might_fault(); \
901 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \
902 __cu_len); \
903 __cu_len; \
904})
876 905
877#define copy_in_user(to, from, n) \ 906#define copy_in_user(to, from, n) \
878({ \ 907({ \
@@ -880,14 +909,15 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
880 const void __user *__cu_from; \ 909 const void __user *__cu_from; \
881 long __cu_len; \ 910 long __cu_len; \
882 \ 911 \
883 might_sleep(); \
884 __cu_to = (to); \ 912 __cu_to = (to); \
885 __cu_from = (from); \ 913 __cu_from = (from); \
886 __cu_len = (n); \ 914 __cu_len = (n); \
887 if (likely(access_ok(VERIFY_READ, __cu_from, __cu_len) && \ 915 if (likely(access_ok(VERIFY_READ, __cu_from, __cu_len) && \
888 access_ok(VERIFY_WRITE, __cu_to, __cu_len))) \ 916 access_ok(VERIFY_WRITE, __cu_to, __cu_len))) { \
917 might_fault(); \
889 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \ 918 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \
890 __cu_len); \ 919 __cu_len); \
920 } \
891 __cu_len; \ 921 __cu_len; \
892}) 922})
893 923
@@ -907,7 +937,7 @@ __clear_user(void __user *addr, __kernel_size_t size)
907{ 937{
908 __kernel_size_t res; 938 __kernel_size_t res;
909 939
910 might_sleep(); 940 might_fault();
911 __asm__ __volatile__( 941 __asm__ __volatile__(
912 "move\t$4, %1\n\t" 942 "move\t$4, %1\n\t"
913 "move\t$5, $0\n\t" 943 "move\t$5, $0\n\t"
@@ -926,7 +956,7 @@ __clear_user(void __user *addr, __kernel_size_t size)
926 void __user * __cl_addr = (addr); \ 956 void __user * __cl_addr = (addr); \
927 unsigned long __cl_size = (n); \ 957 unsigned long __cl_size = (n); \
928 if (__cl_size && access_ok(VERIFY_WRITE, \ 958 if (__cl_size && access_ok(VERIFY_WRITE, \
929 ((unsigned long)(__cl_addr)), __cl_size)) \ 959 __cl_addr, __cl_size)) \
930 __cl_size = __clear_user(__cl_addr, __cl_size); \ 960 __cl_size = __clear_user(__cl_addr, __cl_size); \
931 __cl_size; \ 961 __cl_size; \
932}) 962})
@@ -956,7 +986,7 @@ __strncpy_from_user(char *__to, const char __user *__from, long __len)
956{ 986{
957 long res; 987 long res;
958 988
959 might_sleep(); 989 might_fault();
960 __asm__ __volatile__( 990 __asm__ __volatile__(
961 "move\t$4, %1\n\t" 991 "move\t$4, %1\n\t"
962 "move\t$5, %2\n\t" 992 "move\t$5, %2\n\t"
@@ -993,7 +1023,7 @@ strncpy_from_user(char *__to, const char __user *__from, long __len)
993{ 1023{
994 long res; 1024 long res;
995 1025
996 might_sleep(); 1026 might_fault();
997 __asm__ __volatile__( 1027 __asm__ __volatile__(
998 "move\t$4, %1\n\t" 1028 "move\t$4, %1\n\t"
999 "move\t$5, %2\n\t" 1029 "move\t$5, %2\n\t"
@@ -1012,7 +1042,7 @@ static inline long __strlen_user(const char __user *s)
1012{ 1042{
1013 long res; 1043 long res;
1014 1044
1015 might_sleep(); 1045 might_fault();
1016 __asm__ __volatile__( 1046 __asm__ __volatile__(
1017 "move\t$4, %1\n\t" 1047 "move\t$4, %1\n\t"
1018 __MODULE_JAL(__strlen_user_nocheck_asm) 1048 __MODULE_JAL(__strlen_user_nocheck_asm)
@@ -1042,7 +1072,7 @@ static inline long strlen_user(const char __user *s)
1042{ 1072{
1043 long res; 1073 long res;
1044 1074
1045 might_sleep(); 1075 might_fault();
1046 __asm__ __volatile__( 1076 __asm__ __volatile__(
1047 "move\t$4, %1\n\t" 1077 "move\t$4, %1\n\t"
1048 __MODULE_JAL(__strlen_user_asm) 1078 __MODULE_JAL(__strlen_user_asm)
@@ -1059,7 +1089,7 @@ static inline long __strnlen_user(const char __user *s, long n)
1059{ 1089{
1060 long res; 1090 long res;
1061 1091
1062 might_sleep(); 1092 might_fault();
1063 __asm__ __volatile__( 1093 __asm__ __volatile__(
1064 "move\t$4, %1\n\t" 1094 "move\t$4, %1\n\t"
1065 "move\t$5, %2\n\t" 1095 "move\t$5, %2\n\t"
@@ -1090,7 +1120,7 @@ static inline long strnlen_user(const char __user *s, long n)
1090{ 1120{
1091 long res; 1121 long res;
1092 1122
1093 might_sleep(); 1123 might_fault();
1094 __asm__ __volatile__( 1124 __asm__ __volatile__(
1095 "move\t$4, %1\n\t" 1125 "move\t$4, %1\n\t"
1096 "move\t$5, %2\n\t" 1126 "move\t$5, %2\n\t"
diff --git a/arch/mips/kernel/cevt-smtc.c b/arch/mips/kernel/cevt-smtc.c
index 6d45e24db5bf..df6f5bc60572 100644
--- a/arch/mips/kernel/cevt-smtc.c
+++ b/arch/mips/kernel/cevt-smtc.c
@@ -245,7 +245,7 @@ irqreturn_t c0_compare_interrupt(int irq, void *dev_id)
245} 245}
246 246
247 247
248int __cpuinit mips_clockevent_init(void) 248int __cpuinit smtc_clockevent_init(void)
249{ 249{
250 uint64_t mips_freq = mips_hpt_frequency; 250 uint64_t mips_freq = mips_hpt_frequency;
251 unsigned int cpu = smp_processor_id(); 251 unsigned int cpu = smp_processor_id();
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c
index 26760cad8b69..e0a4ac18fa07 100644
--- a/arch/mips/kernel/proc.c
+++ b/arch/mips/kernel/proc.c
@@ -42,7 +42,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
42 seq_printf(m, fmt, __cpu_name[n], 42 seq_printf(m, fmt, __cpu_name[n],
43 (version >> 4) & 0x0f, version & 0x0f, 43 (version >> 4) & 0x0f, version & 0x0f,
44 (fp_vers >> 4) & 0x0f, fp_vers & 0x0f); 44 (fp_vers >> 4) & 0x0f, fp_vers & 0x0f);
45 seq_printf(m, "BogoMIPS\t\t: %lu.%02lu\n", 45 seq_printf(m, "BogoMIPS\t\t: %u.%02u\n",
46 cpu_data[n].udelay_val / (500000/HZ), 46 cpu_data[n].udelay_val / (500000/HZ),
47 (cpu_data[n].udelay_val / (5000/HZ)) % 100); 47 (cpu_data[n].udelay_val / (5000/HZ)) % 100);
48 seq_printf(m, "wait instruction\t: %s\n", cpu_wait ? "yes" : "no"); 48 seq_printf(m, "wait instruction\t: %s\n", cpu_wait ? "yes" : "no");
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index c2c16ef9218f..93cc672f4522 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -405,8 +405,8 @@ EXPORT(sysn32_call_table)
405 PTR sys_eventfd 405 PTR sys_eventfd
406 PTR sys_fallocate 406 PTR sys_fallocate
407 PTR sys_timerfd_create 407 PTR sys_timerfd_create
408 PTR sys_timerfd_gettime /* 5285 */ 408 PTR compat_sys_timerfd_gettime /* 5285 */
409 PTR sys_timerfd_settime 409 PTR compat_sys_timerfd_settime
410 PTR sys_signalfd4 410 PTR sys_signalfd4
411 PTR sys_eventfd2 411 PTR sys_eventfd2
412 PTR sys_epoll_create1 412 PTR sys_epoll_create1
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 002fac27021e..a5598b2339dd 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -525,8 +525,8 @@ sys_call_table:
525 PTR sys_eventfd 525 PTR sys_eventfd
526 PTR sys32_fallocate /* 4320 */ 526 PTR sys32_fallocate /* 4320 */
527 PTR sys_timerfd_create 527 PTR sys_timerfd_create
528 PTR sys_timerfd_gettime 528 PTR compat_sys_timerfd_gettime
529 PTR sys_timerfd_settime 529 PTR compat_sys_timerfd_settime
530 PTR compat_sys_signalfd4 530 PTR compat_sys_signalfd4
531 PTR sys_eventfd2 /* 4325 */ 531 PTR sys_eventfd2 /* 4325 */
532 PTR sys_epoll_create1 532 PTR sys_epoll_create1
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c
index bf4c4a979abb..67bd626942ab 100644
--- a/arch/mips/kernel/unaligned.c
+++ b/arch/mips/kernel/unaligned.c
@@ -482,19 +482,19 @@ fault:
482 return; 482 return;
483 483
484 die_if_kernel("Unhandled kernel unaligned access", regs); 484 die_if_kernel("Unhandled kernel unaligned access", regs);
485 send_sig(SIGSEGV, current, 1); 485 force_sig(SIGSEGV, current);
486 486
487 return; 487 return;
488 488
489sigbus: 489sigbus:
490 die_if_kernel("Unhandled kernel unaligned access", regs); 490 die_if_kernel("Unhandled kernel unaligned access", regs);
491 send_sig(SIGBUS, current, 1); 491 force_sig(SIGBUS, current);
492 492
493 return; 493 return;
494 494
495sigill: 495sigill:
496 die_if_kernel("Unhandled kernel unaligned access or invalid instruction", regs); 496 die_if_kernel("Unhandled kernel unaligned access or invalid instruction", regs);
497 send_sig(SIGILL, current, 1); 497 force_sig(SIGILL, current);
498} 498}
499 499
500asmlinkage void do_ade(struct pt_regs *regs) 500asmlinkage void do_ade(struct pt_regs *regs)
diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile
index c13c7ad2cdae..2adead5a8a37 100644
--- a/arch/mips/lib/Makefile
+++ b/arch/mips/lib/Makefile
@@ -2,8 +2,8 @@
2# Makefile for MIPS-specific library files.. 2# Makefile for MIPS-specific library files..
3# 3#
4 4
5lib-y += csum_partial.o memcpy.o memcpy-inatomic.o memset.o strlen_user.o \ 5lib-y += csum_partial.o delay.o memcpy.o memcpy-inatomic.o memset.o \
6 strncpy_user.o strnlen_user.o uncached.o 6 strlen_user.o strncpy_user.o strnlen_user.o uncached.o
7 7
8obj-y += iomap.o 8obj-y += iomap.o
9obj-$(CONFIG_PCI) += iomap-pci.o 9obj-$(CONFIG_PCI) += iomap-pci.o
diff --git a/arch/mips/lib/delay.c b/arch/mips/lib/delay.c
new file mode 100644
index 000000000000..f69c6b569eb3
--- /dev/null
+++ b/arch/mips/lib/delay.c
@@ -0,0 +1,56 @@
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) 1994 by Waldorf Electronics
7 * Copyright (C) 1995 - 2000, 01, 03 by Ralf Baechle
8 * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
9 * Copyright (C) 2007 Maciej W. Rozycki
10 */
11#include <linux/module.h>
12#include <linux/param.h>
13#include <linux/smp.h>
14
15#include <asm/compiler.h>
16#include <asm/war.h>
17
18inline void __delay(unsigned int loops)
19{
20 __asm__ __volatile__ (
21 " .set noreorder \n"
22 " .align 3 \n"
23 "1: bnez %0, 1b \n"
24 " subu %0, 1 \n"
25 " .set reorder \n"
26 : "=r" (loops)
27 : "0" (loops));
28}
29EXPORT_SYMBOL(__delay);
30
31/*
32 * Division by multiplication: you don't have to worry about
33 * loss of precision.
34 *
35 * Use only for very small delays ( < 1 msec). Should probably use a
36 * lookup table, really, as the multiplications take much too long with
37 * short delays. This is a "reasonable" implementation, though (and the
38 * first constant multiplications gets optimized away if the delay is
39 * a constant)
40 */
41
42void __udelay(unsigned long us)
43{
44 unsigned int lpj = current_cpu_data.udelay_val;
45
46 __delay((us * 0x000010c7 * HZ * lpj) >> 32);
47}
48EXPORT_SYMBOL(__udelay);
49
50void __ndelay(unsigned long ns)
51{
52 unsigned int lpj = current_cpu_data.udelay_val;
53
54 __delay((us * 0x00000005 * HZ * lpj) >> 32);
55}
56EXPORT_SYMBOL(__ndelay);
diff --git a/arch/mips/lib/dump_tlb.c b/arch/mips/lib/dump_tlb.c
index 779821cd54ab..3f69725556af 100644
--- a/arch/mips/lib/dump_tlb.c
+++ b/arch/mips/lib/dump_tlb.c
@@ -19,6 +19,15 @@ static inline const char *msk2str(unsigned int mask)
19 case PM_16K: return "16kb"; 19 case PM_16K: return "16kb";
20 case PM_64K: return "64kb"; 20 case PM_64K: return "64kb";
21 case PM_256K: return "256kb"; 21 case PM_256K: return "256kb";
22#ifdef CONFIG_CPU_CAVIUM_OCTEON
23 case PM_8K: return "8kb";
24 case PM_32K: return "32kb";
25 case PM_128K: return "128kb";
26 case PM_512K: return "512kb";
27 case PM_2M: return "2Mb";
28 case PM_8M: return "8Mb";
29 case PM_32M: return "32Mb";
30#endif
22#ifndef CONFIG_CPU_VR41XX 31#ifndef CONFIG_CPU_VR41XX
23 case PM_1M: return "1Mb"; 32 case PM_1M: return "1Mb";
24 case PM_4M: return "4Mb"; 33 case PM_4M: return "4Mb";
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 58d9075e86fe..171951d2305b 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -1041,7 +1041,7 @@ static void __cpuinit probe_pcache(void)
1041 1041
1042 printk("Primary instruction cache %ldkB, %s, %s, linesize %d bytes.\n", 1042 printk("Primary instruction cache %ldkB, %s, %s, linesize %d bytes.\n",
1043 icache_size >> 10, 1043 icache_size >> 10,
1044 cpu_has_vtag_icache ? "VIVT" : "VIPT", 1044 c->icache.flags & MIPS_CACHE_VTAG ? "VIVT" : "VIPT",
1045 way_string[c->icache.ways], c->icache.linesz); 1045 way_string[c->icache.ways], c->icache.linesz);
1046 1046
1047 printk("Primary data cache %ldkB, %s, %s, %s, linesize %d bytes\n", 1047 printk("Primary data cache %ldkB, %s, %s, %s, linesize %d bytes\n",
diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c
index bed56f1ac837..4fdb7f5216b9 100644
--- a/arch/mips/mm/dma-default.c
+++ b/arch/mips/mm/dma-default.c
@@ -209,7 +209,7 @@ dma_addr_t dma_map_page(struct device *dev, struct page *page,
209 unsigned long addr; 209 unsigned long addr;
210 210
211 addr = (unsigned long) page_address(page) + offset; 211 addr = (unsigned long) page_address(page) + offset;
212 dma_cache_wback_inv(addr, size); 212 __dma_sync(addr, size, direction);
213 } 213 }
214 214
215 return plat_map_dma_mem_page(dev, page) + offset; 215 return plat_map_dma_mem_page(dev, page) + offset;
@@ -217,23 +217,6 @@ dma_addr_t dma_map_page(struct device *dev, struct page *page,
217 217
218EXPORT_SYMBOL(dma_map_page); 218EXPORT_SYMBOL(dma_map_page);
219 219
220void dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
221 enum dma_data_direction direction)
222{
223 BUG_ON(direction == DMA_NONE);
224
225 if (!plat_device_is_coherent(dev) && direction != DMA_TO_DEVICE) {
226 unsigned long addr;
227
228 addr = dma_addr_to_virt(dma_address);
229 dma_cache_wback_inv(addr, size);
230 }
231
232 plat_unmap_dma_mem(dev, dma_address);
233}
234
235EXPORT_SYMBOL(dma_unmap_page);
236
237void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, 220void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
238 enum dma_data_direction direction) 221 enum dma_data_direction direction)
239{ 222{
diff --git a/arch/mips/mm/highmem.c b/arch/mips/mm/highmem.c
index 4481656d1065..2b1309b2580a 100644
--- a/arch/mips/mm/highmem.c
+++ b/arch/mips/mm/highmem.c
@@ -1,7 +1,12 @@
1#include <linux/module.h> 1#include <linux/module.h>
2#include <linux/highmem.h> 2#include <linux/highmem.h>
3#include <asm/fixmap.h>
3#include <asm/tlbflush.h> 4#include <asm/tlbflush.h>
4 5
6static pte_t *kmap_pte;
7
8unsigned long highstart_pfn, highend_pfn;
9
5void *__kmap(struct page *page) 10void *__kmap(struct page *page)
6{ 11{
7 void *addr; 12 void *addr;
@@ -14,6 +19,7 @@ void *__kmap(struct page *page)
14 19
15 return addr; 20 return addr;
16} 21}
22EXPORT_SYMBOL(__kmap);
17 23
18void __kunmap(struct page *page) 24void __kunmap(struct page *page)
19{ 25{
@@ -22,6 +28,7 @@ void __kunmap(struct page *page)
22 return; 28 return;
23 kunmap_high(page); 29 kunmap_high(page);
24} 30}
31EXPORT_SYMBOL(__kunmap);
25 32
26/* 33/*
27 * kmap_atomic/kunmap_atomic is significantly faster than kmap/kunmap because 34 * kmap_atomic/kunmap_atomic is significantly faster than kmap/kunmap because
@@ -48,11 +55,12 @@ void *__kmap_atomic(struct page *page, enum km_type type)
48#ifdef CONFIG_DEBUG_HIGHMEM 55#ifdef CONFIG_DEBUG_HIGHMEM
49 BUG_ON(!pte_none(*(kmap_pte - idx))); 56 BUG_ON(!pte_none(*(kmap_pte - idx)));
50#endif 57#endif
51 set_pte(kmap_pte-idx, mk_pte(page, kmap_prot)); 58 set_pte(kmap_pte-idx, mk_pte(page, PAGE_KERNEL));
52 local_flush_tlb_one((unsigned long)vaddr); 59 local_flush_tlb_one((unsigned long)vaddr);
53 60
54 return (void*) vaddr; 61 return (void*) vaddr;
55} 62}
63EXPORT_SYMBOL(__kmap_atomic);
56 64
57void __kunmap_atomic(void *kvaddr, enum km_type type) 65void __kunmap_atomic(void *kvaddr, enum km_type type)
58{ 66{
@@ -77,6 +85,7 @@ void __kunmap_atomic(void *kvaddr, enum km_type type)
77 85
78 pagefault_enable(); 86 pagefault_enable();
79} 87}
88EXPORT_SYMBOL(__kunmap_atomic);
80 89
81/* 90/*
82 * This is the same as kmap_atomic() but can map memory that doesn't 91 * This is the same as kmap_atomic() but can map memory that doesn't
@@ -92,7 +101,7 @@ void *kmap_atomic_pfn(unsigned long pfn, enum km_type type)
92 debug_kmap_atomic(type); 101 debug_kmap_atomic(type);
93 idx = type + KM_TYPE_NR*smp_processor_id(); 102 idx = type + KM_TYPE_NR*smp_processor_id();
94 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 103 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
95 set_pte(kmap_pte-idx, pfn_pte(pfn, kmap_prot)); 104 set_pte(kmap_pte-idx, pfn_pte(pfn, PAGE_KERNEL));
96 flush_tlb_one(vaddr); 105 flush_tlb_one(vaddr);
97 106
98 return (void*) vaddr; 107 return (void*) vaddr;
@@ -111,7 +120,11 @@ struct page *__kmap_atomic_to_page(void *ptr)
111 return pte_page(*pte); 120 return pte_page(*pte);
112} 121}
113 122
114EXPORT_SYMBOL(__kmap); 123void __init kmap_init(void)
115EXPORT_SYMBOL(__kunmap); 124{
116EXPORT_SYMBOL(__kmap_atomic); 125 unsigned long kmap_vstart;
117EXPORT_SYMBOL(__kunmap_atomic); 126
127 /* cache the first kmap pte */
128 kmap_vstart = __fix_to_virt(FIX_KMAP_BEGIN);
129 kmap_pte = kmap_get_fixmap_pte(kmap_vstart);
130}
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index d9348946a19e..c5511294a9ee 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -104,14 +104,6 @@ unsigned long setup_zero_pages(void)
104 return 1UL << order; 104 return 1UL << order;
105} 105}
106 106
107/*
108 * These are almost like kmap_atomic / kunmap_atmic except they take an
109 * additional address argument as the hint.
110 */
111
112#define kmap_get_fixmap_pte(vaddr) \
113 pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr)), (vaddr))
114
115#ifdef CONFIG_MIPS_MT_SMTC 107#ifdef CONFIG_MIPS_MT_SMTC
116static pte_t *kmap_coherent_pte; 108static pte_t *kmap_coherent_pte;
117static void __init kmap_coherent_init(void) 109static void __init kmap_coherent_init(void)
@@ -264,24 +256,6 @@ void copy_from_user_page(struct vm_area_struct *vma,
264 } 256 }
265} 257}
266 258
267#ifdef CONFIG_HIGHMEM
268unsigned long highstart_pfn, highend_pfn;
269
270pte_t *kmap_pte;
271pgprot_t kmap_prot;
272
273static void __init kmap_init(void)
274{
275 unsigned long kmap_vstart;
276
277 /* cache the first kmap pte */
278 kmap_vstart = __fix_to_virt(FIX_KMAP_BEGIN);
279 kmap_pte = kmap_get_fixmap_pte(kmap_vstart);
280
281 kmap_prot = PAGE_KERNEL;
282}
283#endif /* CONFIG_HIGHMEM */
284
285void __init fixrange_init(unsigned long start, unsigned long end, 259void __init fixrange_init(unsigned long start, unsigned long end,
286 pgd_t *pgd_base) 260 pgd_t *pgd_base)
287{ 261{
diff --git a/arch/mips/mm/sc-rm7k.c b/arch/mips/mm/sc-rm7k.c
index e3abfb2d7e86..de69bfbf506e 100644
--- a/arch/mips/mm/sc-rm7k.c
+++ b/arch/mips/mm/sc-rm7k.c
@@ -29,7 +29,7 @@ extern unsigned long icache_way_size, dcache_way_size;
29 29
30#include <asm/r4kcache.h> 30#include <asm/r4kcache.h>
31 31
32int rm7k_tcache_enabled; 32static int rm7k_tcache_enabled;
33 33
34/* 34/*
35 * Writeback and invalidate the primary cache dcache before DMA. 35 * Writeback and invalidate the primary cache dcache before DMA.
@@ -121,7 +121,7 @@ static void rm7k_sc_disable(void)
121 clear_c0_config(RM7K_CONF_SE); 121 clear_c0_config(RM7K_CONF_SE);
122} 122}
123 123
124struct bcache_ops rm7k_sc_ops = { 124static struct bcache_ops rm7k_sc_ops = {
125 .bc_enable = rm7k_sc_enable, 125 .bc_enable = rm7k_sc_enable,
126 .bc_disable = rm7k_sc_disable, 126 .bc_disable = rm7k_sc_disable,
127 .bc_wback_inv = rm7k_sc_wback_inv, 127 .bc_wback_inv = rm7k_sc_wback_inv,
diff --git a/arch/mips/mm/tlb-r3k.c b/arch/mips/mm/tlb-r3k.c
index f0cf46adb978..1c0048a6f5cf 100644
--- a/arch/mips/mm/tlb-r3k.c
+++ b/arch/mips/mm/tlb-r3k.c
@@ -82,8 +82,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
82 int cpu = smp_processor_id(); 82 int cpu = smp_processor_id();
83 83
84 if (cpu_context(cpu, mm) != 0) { 84 if (cpu_context(cpu, mm) != 0) {
85 unsigned long flags; 85 unsigned long size, flags;
86 int size;
87 86
88#ifdef DEBUG_TLB 87#ifdef DEBUG_TLB
89 printk("[tlbrange<%lu,0x%08lx,0x%08lx>]", 88 printk("[tlbrange<%lu,0x%08lx,0x%08lx>]",
@@ -121,8 +120,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
121 120
122void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) 121void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
123{ 122{
124 unsigned long flags; 123 unsigned long size, flags;
125 int size;
126 124
127#ifdef DEBUG_TLB 125#ifdef DEBUG_TLB
128 printk("[tlbrange<%lu,0x%08lx,0x%08lx>]", start, end); 126 printk("[tlbrange<%lu,0x%08lx,0x%08lx>]", start, end);
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c
index 9619f66e531e..892be426787c 100644
--- a/arch/mips/mm/tlb-r4k.c
+++ b/arch/mips/mm/tlb-r4k.c
@@ -117,8 +117,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
117 int cpu = smp_processor_id(); 117 int cpu = smp_processor_id();
118 118
119 if (cpu_context(cpu, mm) != 0) { 119 if (cpu_context(cpu, mm) != 0) {
120 unsigned long flags; 120 unsigned long size, flags;
121 int size;
122 121
123 ENTER_CRITICAL(flags); 122 ENTER_CRITICAL(flags);
124 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; 123 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
@@ -160,8 +159,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
160 159
161void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) 160void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
162{ 161{
163 unsigned long flags; 162 unsigned long size, flags;
164 int size;
165 163
166 ENTER_CRITICAL(flags); 164 ENTER_CRITICAL(flags);
167 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; 165 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
diff --git a/arch/mips/mm/tlb-r8k.c b/arch/mips/mm/tlb-r8k.c
index 4f01a3be215c..4ec95cc2df2f 100644
--- a/arch/mips/mm/tlb-r8k.c
+++ b/arch/mips/mm/tlb-r8k.c
@@ -111,8 +111,7 @@ out_restore:
111/* Usable for KV1 addresses only! */ 111/* Usable for KV1 addresses only! */
112void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) 112void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
113{ 113{
114 unsigned long flags; 114 unsigned long size, flags;
115 int size;
116 115
117 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; 116 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
118 size = (size + 1) >> 1; 117 size = (size + 1) >> 1;
diff --git a/arch/mips/pmc-sierra/Kconfig b/arch/mips/pmc-sierra/Kconfig
index 90261b83db04..c139988bb85d 100644
--- a/arch/mips/pmc-sierra/Kconfig
+++ b/arch/mips/pmc-sierra/Kconfig
@@ -36,18 +36,6 @@ config PMC_MSP7120_FPGA
36 36
37endchoice 37endchoice
38 38
39menu "Options for PMC-Sierra MSP chipsets"
40 depends on PMC_MSP
41
42config PMC_MSP_EMBEDDED_ROOTFS
43 bool "Root filesystem embedded in kernel image"
44 select MTD
45 select MTD_BLOCK
46 select MTD_PMC_MSP_RAMROOT
47 select MTD_RAM
48
49endmenu
50
51config HYPERTRANSPORT 39config HYPERTRANSPORT
52 bool "Hypertransport Support for PMC-Sierra Yosemite" 40 bool "Hypertransport Support for PMC-Sierra Yosemite"
53 depends on PMC_YOSEMITE 41 depends on PMC_YOSEMITE
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_prom.c b/arch/mips/pmc-sierra/msp71xx/msp_prom.c
index e5bd5481d8db..c317a3623ce9 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_prom.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_prom.c
@@ -40,12 +40,6 @@
40#include <linux/string.h> 40#include <linux/string.h>
41#include <linux/interrupt.h> 41#include <linux/interrupt.h>
42#include <linux/mm.h> 42#include <linux/mm.h>
43#ifdef CONFIG_CRAMFS
44#include <linux/cramfs_fs.h>
45#endif
46#ifdef CONFIG_SQUASHFS
47#include <linux/squashfs_fs.h>
48#endif
49 43
50#include <asm/addrspace.h> 44#include <asm/addrspace.h>
51#include <asm/bootinfo.h> 45#include <asm/bootinfo.h>
@@ -435,10 +429,6 @@ struct prom_pmemblock *__init prom_getmdesc(void)
435 char *str; 429 char *str;
436 unsigned int memsize; 430 unsigned int memsize;
437 unsigned int heaptop; 431 unsigned int heaptop;
438#ifdef CONFIG_MTD_PMC_MSP_RAMROOT
439 void *ramroot_start;
440 unsigned long ramroot_size;
441#endif
442 int i; 432 int i;
443 433
444 str = prom_getenv(memsz_env); 434 str = prom_getenv(memsz_env);
@@ -506,19 +496,7 @@ struct prom_pmemblock *__init prom_getmdesc(void)
506 i++; /* 3 */ 496 i++; /* 3 */
507 mdesc[i].type = BOOT_MEM_RESERVED; 497 mdesc[i].type = BOOT_MEM_RESERVED;
508 mdesc[i].base = CPHYSADDR((u32)_text); 498 mdesc[i].base = CPHYSADDR((u32)_text);
509#ifdef CONFIG_MTD_PMC_MSP_RAMROOT 499 mdesc[i].size = CPHYSADDR(PAGE_ALIGN((u32)_end)) - mdesc[i].base;
510 if (get_ramroot(&ramroot_start, &ramroot_size)) {
511 /*
512 * Rootfs in RAM -- follows kernel
513 * Combine rootfs image with kernel block so a
514 * page (4k) isn't wasted between memory blocks
515 */
516 mdesc[i].size = CPHYSADDR(PAGE_ALIGN(
517 (u32)ramroot_start + ramroot_size)) - mdesc[i].base;
518 } else
519#endif
520 mdesc[i].size = CPHYSADDR(PAGE_ALIGN(
521 (u32)_end)) - mdesc[i].base;
522 500
523 /* Remainder of RAM -- under memsize */ 501 /* Remainder of RAM -- under memsize */
524 i++; /* 5 */ 502 i++; /* 5 */
@@ -528,39 +506,3 @@ struct prom_pmemblock *__init prom_getmdesc(void)
528 506
529 return &mdesc[0]; 507 return &mdesc[0];
530} 508}
531
532/* rootfs functions */
533#ifdef CONFIG_MTD_PMC_MSP_RAMROOT
534bool get_ramroot(void **start, unsigned long *size)
535{
536 extern char _end[];
537
538 /* Check for start following the end of the kernel */
539 void *check_start = (void *)_end;
540
541 /* Check for supported rootfs types */
542#ifdef CONFIG_CRAMFS
543 if (*(__u32 *)check_start == CRAMFS_MAGIC) {
544 /* Get CRAMFS size */
545 *start = check_start;
546 *size = PAGE_ALIGN(((struct cramfs_super *)
547 check_start)->size);
548
549 return true;
550 }
551#endif
552#ifdef CONFIG_SQUASHFS
553 if (*((unsigned int *)check_start) == SQUASHFS_MAGIC) {
554 /* Get SQUASHFS size */
555 *start = check_start;
556 *size = PAGE_ALIGN(((struct squashfs_super_block *)
557 check_start)->bytes_used);
558
559 return true;
560 }
561#endif
562
563 return false;
564}
565EXPORT_SYMBOL(get_ramroot);
566#endif
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_setup.c b/arch/mips/pmc-sierra/msp71xx/msp_setup.c
index c93675615f5d..a54e85b3cf29 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_setup.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_setup.c
@@ -21,7 +21,6 @@
21 21
22#if defined(CONFIG_PMC_MSP7120_GW) 22#if defined(CONFIG_PMC_MSP7120_GW)
23#include <msp_regops.h> 23#include <msp_regops.h>
24#include <msp_gpio.h>
25#define MSP_BOARD_RESET_GPIO 9 24#define MSP_BOARD_RESET_GPIO 9
26#endif 25#endif
27 26
@@ -88,11 +87,8 @@ void msp7120_reset(void)
88 * as GPIO char driver may not be enabled and it would look up 87 * as GPIO char driver may not be enabled and it would look up
89 * data inRAM! 88 * data inRAM!
90 */ 89 */
91 set_value_reg32(GPIO_CFG3_REG, 90 set_value_reg32(GPIO_CFG3_REG, 0xf000, 0x8000);
92 basic_mode_mask(MSP_BOARD_RESET_GPIO), 91 set_reg32(GPIO_DATA3_REG, 8);
93 basic_mode(MSP_GPIO_OUTPUT, MSP_BOARD_RESET_GPIO));
94 set_reg32(GPIO_DATA3_REG,
95 basic_data_mask(MSP_BOARD_RESET_GPIO));
96 92
97 /* 93 /*
98 * In case GPIO9 doesn't reset the board (jumper configurable!) 94 * In case GPIO9 doesn't reset the board (jumper configurable!)
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_time.c b/arch/mips/pmc-sierra/msp71xx/msp_time.c
index 7cfeda5a651b..cca64e15f57f 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_time.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_time.c
@@ -81,10 +81,7 @@ void __init plat_time_init(void)
81 mips_hpt_frequency = cpu_rate/2; 81 mips_hpt_frequency = cpu_rate/2;
82} 82}
83 83
84void __init plat_timer_setup(struct irqaction *irq) 84unsigned int __init get_c0_compare_int(void)
85{ 85{
86#ifdef CONFIG_IRQ_MSP_CIC 86 return MSP_INT_VPE0_TIMER;
87 /* we are using the vpe0 counter for timer interrupts */
88 setup_irq(MSP_INT_VPE0_TIMER, irq);
89#endif
90} 87}
diff --git a/arch/mips/sgi-ip22/ip22-reset.c b/arch/mips/sgi-ip22/ip22-reset.c
index 4ad5c3393fd3..45b6694c2079 100644
--- a/arch/mips/sgi-ip22/ip22-reset.c
+++ b/arch/mips/sgi-ip22/ip22-reset.c
@@ -148,7 +148,7 @@ static irqreturn_t panel_int(int irq, void *dev_id)
148 148
149 if (sgint->istat1 & SGINT_ISTAT1_PWR) { 149 if (sgint->istat1 & SGINT_ISTAT1_PWR) {
150 /* Wait until interrupt goes away */ 150 /* Wait until interrupt goes away */
151 disable_irq(SGI_PANEL_IRQ); 151 disable_irq_nosync(SGI_PANEL_IRQ);
152 init_timer(&debounce_timer); 152 init_timer(&debounce_timer);
153 debounce_timer.function = debounce; 153 debounce_timer.function = debounce;
154 debounce_timer.expires = jiffies + 5; 154 debounce_timer.expires = jiffies + 5;
diff --git a/arch/mips/sgi-ip32/ip32-berr.c b/arch/mips/sgi-ip32/ip32-berr.c
index a278e918a019..afc1cadbba37 100644
--- a/arch/mips/sgi-ip32/ip32-berr.c
+++ b/arch/mips/sgi-ip32/ip32-berr.c
@@ -16,7 +16,7 @@
16#include <asm/ptrace.h> 16#include <asm/ptrace.h>
17#include <asm/tlbdebug.h> 17#include <asm/tlbdebug.h>
18 18
19int ip32_be_handler(struct pt_regs *regs, int is_fixup) 19static int ip32_be_handler(struct pt_regs *regs, int is_fixup)
20{ 20{
21 int data = regs->cp0_cause & 4; 21 int data = regs->cp0_cause & 4;
22 22
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c
index 83a0b3c359da..5c2bf111ca67 100644
--- a/arch/mips/sgi-ip32/ip32-irq.c
+++ b/arch/mips/sgi-ip32/ip32-irq.c
@@ -112,13 +112,13 @@ static void inline flush_mace_bus(void)
112extern irqreturn_t crime_memerr_intr(int irq, void *dev_id); 112extern irqreturn_t crime_memerr_intr(int irq, void *dev_id);
113extern irqreturn_t crime_cpuerr_intr(int irq, void *dev_id); 113extern irqreturn_t crime_cpuerr_intr(int irq, void *dev_id);
114 114
115struct irqaction memerr_irq = { 115static struct irqaction memerr_irq = {
116 .handler = crime_memerr_intr, 116 .handler = crime_memerr_intr,
117 .flags = IRQF_DISABLED, 117 .flags = IRQF_DISABLED,
118 .name = "CRIME memory error", 118 .name = "CRIME memory error",
119}; 119};
120 120
121struct irqaction cpuerr_irq = { 121static struct irqaction cpuerr_irq = {
122 .handler = crime_cpuerr_intr, 122 .handler = crime_cpuerr_intr,
123 .flags = IRQF_DISABLED, 123 .flags = IRQF_DISABLED,
124 .name = "CRIME CPU error", 124 .name = "CRIME CPU error",
diff --git a/arch/mips/sgi-ip32/ip32-reset.c b/arch/mips/sgi-ip32/ip32-reset.c
index b6cab089561e..9b95d80ebc6e 100644
--- a/arch/mips/sgi-ip32/ip32-reset.c
+++ b/arch/mips/sgi-ip32/ip32-reset.c
@@ -53,7 +53,7 @@ static inline void ip32_machine_halt(void)
53 53
54static void ip32_machine_power_off(void) 54static void ip32_machine_power_off(void)
55{ 55{
56 volatile unsigned char reg_a, xctrl_a, xctrl_b; 56 unsigned char reg_a, xctrl_a, xctrl_b;
57 57
58 disable_irq(MACEISA_RTC_IRQ); 58 disable_irq(MACEISA_RTC_IRQ);
59 reg_a = CMOS_READ(RTC_REG_A); 59 reg_a = CMOS_READ(RTC_REG_A);
@@ -91,9 +91,10 @@ static void blink_timeout(unsigned long data)
91 91
92static void debounce(unsigned long data) 92static void debounce(unsigned long data)
93{ 93{
94 volatile unsigned char reg_a, reg_c, xctrl_a; 94 unsigned char reg_a, reg_c, xctrl_a;
95 95
96 reg_c = CMOS_READ(RTC_INTR_FLAGS); 96 reg_c = CMOS_READ(RTC_INTR_FLAGS);
97 reg_a = CMOS_READ(RTC_REG_A);
97 CMOS_WRITE(reg_a | DS_REGA_DV0, RTC_REG_A); 98 CMOS_WRITE(reg_a | DS_REGA_DV0, RTC_REG_A);
98 wbflush(); 99 wbflush();
99 xctrl_a = CMOS_READ(DS_B1_XCTRL4A); 100 xctrl_a = CMOS_READ(DS_B1_XCTRL4A);
@@ -137,7 +138,7 @@ static inline void ip32_power_button(void)
137 138
138static irqreturn_t ip32_rtc_int(int irq, void *dev_id) 139static irqreturn_t ip32_rtc_int(int irq, void *dev_id)
139{ 140{
140 volatile unsigned char reg_c; 141 unsigned char reg_c;
141 142
142 reg_c = CMOS_READ(RTC_INTR_FLAGS); 143 reg_c = CMOS_READ(RTC_INTR_FLAGS);
143 if (!(reg_c & RTC_IRQF)) { 144 if (!(reg_c & RTC_IRQF)) {
@@ -145,7 +146,7 @@ static irqreturn_t ip32_rtc_int(int irq, void *dev_id)
145 "%s: RTC IRQ without RTC_IRQF\n", __func__); 146 "%s: RTC IRQ without RTC_IRQF\n", __func__);
146 } 147 }
147 /* Wait until interrupt goes away */ 148 /* Wait until interrupt goes away */
148 disable_irq(MACEISA_RTC_IRQ); 149 disable_irq_nosync(MACEISA_RTC_IRQ);
149 init_timer(&debounce_timer); 150 init_timer(&debounce_timer);
150 debounce_timer.function = debounce; 151 debounce_timer.function = debounce;
151 debounce_timer.expires = jiffies + 50; 152 debounce_timer.expires = jiffies + 50;
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c
index 352352b3cb2f..c147c4b35d3f 100644
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -113,7 +113,6 @@ static void bcm1480_set_affinity(unsigned int irq, const struct cpumask *mask)
113{ 113{
114 int i = 0, old_cpu, cpu, int_on, k; 114 int i = 0, old_cpu, cpu, int_on, k;
115 u64 cur_ints; 115 u64 cur_ints;
116 struct irq_desc *desc = irq_desc + irq;
117 unsigned long flags; 116 unsigned long flags;
118 unsigned int irq_dirty; 117 unsigned int irq_dirty;
119 118
@@ -127,8 +126,7 @@ static void bcm1480_set_affinity(unsigned int irq, const struct cpumask *mask)
127 cpu = cpu_logical_map(i); 126 cpu = cpu_logical_map(i);
128 127
129 /* Protect against other affinity changers and IMR manipulation */ 128 /* Protect against other affinity changers and IMR manipulation */
130 spin_lock_irqsave(&desc->lock, flags); 129 spin_lock_irqsave(&bcm1480_imr_lock, flags);
131 spin_lock(&bcm1480_imr_lock);
132 130
133 /* Swizzle each CPU's IMR (but leave the IP selection alone) */ 131 /* Swizzle each CPU's IMR (but leave the IP selection alone) */
134 old_cpu = bcm1480_irq_owner[irq]; 132 old_cpu = bcm1480_irq_owner[irq];
@@ -153,8 +151,7 @@ static void bcm1480_set_affinity(unsigned int irq, const struct cpumask *mask)
153 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + (k*BCM1480_IMR_HL_SPACING))); 151 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + (k*BCM1480_IMR_HL_SPACING)));
154 } 152 }
155 } 153 }
156 spin_unlock(&bcm1480_imr_lock); 154 spin_unlock_irqrestore(&bcm1480_imr_lock, flags);
157 spin_unlock_irqrestore(&desc->lock, flags);
158} 155}
159#endif 156#endif
160 157
diff --git a/arch/mips/sibyte/cfe/setup.c b/arch/mips/sibyte/cfe/setup.c
index 3de30f79db3f..eb5396cf81bb 100644
--- a/arch/mips/sibyte/cfe/setup.c
+++ b/arch/mips/sibyte/cfe/setup.c
@@ -288,13 +288,7 @@ void __init prom_init(void)
288 */ 288 */
289 cfe_cons_handle = cfe_getstdhandle(CFE_STDHANDLE_CONSOLE); 289 cfe_cons_handle = cfe_getstdhandle(CFE_STDHANDLE_CONSOLE);
290 if (cfe_getenv("LINUX_CMDLINE", arcs_cmdline, CL_SIZE) < 0) { 290 if (cfe_getenv("LINUX_CMDLINE", arcs_cmdline, CL_SIZE) < 0) {
291 if (argc < 0) { 291 if (argc >= 0) {
292 /*
293 * It's OK for direct boot to not provide a
294 * command line
295 */
296 strcpy(arcs_cmdline, "root=/dev/ram0 ");
297 } else {
298 /* The loader should have set the command line */ 292 /* The loader should have set the command line */
299 /* too early for panic to do any good */ 293 /* too early for panic to do any good */
300 printk("LINUX_CMDLINE not defined in cfe."); 294 printk("LINUX_CMDLINE not defined in cfe.");
diff --git a/arch/mips/sibyte/sb1250/irq.c b/arch/mips/sibyte/sb1250/irq.c
index c08ff582da6f..38cb998ade22 100644
--- a/arch/mips/sibyte/sb1250/irq.c
+++ b/arch/mips/sibyte/sb1250/irq.c
@@ -107,7 +107,6 @@ static void sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
107{ 107{
108 int i = 0, old_cpu, cpu, int_on; 108 int i = 0, old_cpu, cpu, int_on;
109 u64 cur_ints; 109 u64 cur_ints;
110 struct irq_desc *desc = irq_desc + irq;
111 unsigned long flags; 110 unsigned long flags;
112 111
113 i = cpumask_first(mask); 112 i = cpumask_first(mask);
@@ -121,8 +120,7 @@ static void sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
121 cpu = cpu_logical_map(i); 120 cpu = cpu_logical_map(i);
122 121
123 /* Protect against other affinity changers and IMR manipulation */ 122 /* Protect against other affinity changers and IMR manipulation */
124 spin_lock_irqsave(&desc->lock, flags); 123 spin_lock_irqsave(&sb1250_imr_lock, flags);
125 spin_lock(&sb1250_imr_lock);
126 124
127 /* Swizzle each CPU's IMR (but leave the IP selection alone) */ 125 /* Swizzle each CPU's IMR (but leave the IP selection alone) */
128 old_cpu = sb1250_irq_owner[irq]; 126 old_cpu = sb1250_irq_owner[irq];
@@ -144,8 +142,7 @@ static void sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
144 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) + 142 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) +
145 R_IMR_INTERRUPT_MASK)); 143 R_IMR_INTERRUPT_MASK));
146 } 144 }
147 spin_unlock(&sb1250_imr_lock); 145 spin_unlock_irqrestore(&sb1250_imr_lock, flags);
148 spin_unlock_irqrestore(&desc->lock, flags);
149} 146}
150#endif 147#endif
151 148
diff --git a/arch/mips/txx9/generic/setup_tx4927.c b/arch/mips/txx9/generic/setup_tx4927.c
index 914e93c62639..1093549df1a8 100644
--- a/arch/mips/txx9/generic/setup_tx4927.c
+++ b/arch/mips/txx9/generic/setup_tx4927.c
@@ -88,7 +88,7 @@ void __init tx4927_setup(void)
88{ 88{
89 int i; 89 int i;
90 __u32 divmode; 90 __u32 divmode;
91 int cpuclk = 0; 91 unsigned int cpuclk = 0;
92 u64 ccfg; 92 u64 ccfg;
93 93
94 txx9_reg_res_init(TX4927_REV_PCODE(), TX4927_REG_BASE, 94 txx9_reg_res_init(TX4927_REV_PCODE(), TX4927_REG_BASE,
diff --git a/arch/mips/txx9/generic/setup_tx4938.c b/arch/mips/txx9/generic/setup_tx4938.c
index f0844f891f0b..3925219b8973 100644
--- a/arch/mips/txx9/generic/setup_tx4938.c
+++ b/arch/mips/txx9/generic/setup_tx4938.c
@@ -93,7 +93,7 @@ void __init tx4938_setup(void)
93{ 93{
94 int i; 94 int i;
95 __u32 divmode; 95 __u32 divmode;
96 int cpuclk = 0; 96 unsigned int cpuclk = 0;
97 u64 ccfg; 97 u64 ccfg;
98 98
99 txx9_reg_res_init(TX4938_REV_PCODE(), TX4938_REG_BASE, 99 txx9_reg_res_init(TX4938_REV_PCODE(), TX4938_REG_BASE,
diff --git a/arch/mips/txx9/generic/setup_tx4939.c b/arch/mips/txx9/generic/setup_tx4939.c
index 7a25b573e9b0..c2bf150c8838 100644
--- a/arch/mips/txx9/generic/setup_tx4939.c
+++ b/arch/mips/txx9/generic/setup_tx4939.c
@@ -114,7 +114,7 @@ void __init tx4939_setup(void)
114 int i; 114 int i;
115 __u32 divmode; 115 __u32 divmode;
116 __u64 pcfg; 116 __u64 pcfg;
117 int cpuclk = 0; 117 unsigned int cpuclk = 0;
118 118
119 txx9_reg_res_init(TX4939_REV_PCODE(), TX4939_REG_BASE, 119 txx9_reg_res_init(TX4939_REV_PCODE(), TX4939_REG_BASE,
120 TX4939_REG_SIZE); 120 TX4939_REG_SIZE);
diff --git a/arch/mips/txx9/rbtx4939/setup.c b/arch/mips/txx9/rbtx4939/setup.c
index 011e1e332f47..4199c6fd4d1d 100644
--- a/arch/mips/txx9/rbtx4939/setup.c
+++ b/arch/mips/txx9/rbtx4939/setup.c
@@ -536,7 +536,7 @@ static void __init rbtx4939_setup(void)
536} 536}
537 537
538struct txx9_board_vec rbtx4939_vec __initdata = { 538struct txx9_board_vec rbtx4939_vec __initdata = {
539 .system = "Tothiba RBTX4939", 539 .system = "Toshiba RBTX4939",
540 .prom_init = rbtx4939_prom_init, 540 .prom_init = rbtx4939_prom_init,
541 .mem_setup = rbtx4939_setup, 541 .mem_setup = rbtx4939_setup,
542 .irq_setup = rbtx4939_irq_setup, 542 .irq_setup = rbtx4939_irq_setup,
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index a0d1146a0578..cdc9a6ff4be8 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -868,6 +868,18 @@ config TASK_SIZE
868 default "0x80000000" if PPC_PREP || PPC_8xx 868 default "0x80000000" if PPC_PREP || PPC_8xx
869 default "0xc0000000" 869 default "0xc0000000"
870 870
871config CONSISTENT_SIZE_BOOL
872 bool "Set custom consistent memory pool size"
873 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
874 help
875 This option allows you to set the size of the
876 consistent memory pool. This pool of virtual memory
877 is used to make consistent memory allocations.
878
879config CONSISTENT_SIZE
880 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
881 default "0x00200000" if NOT_COHERENT_CACHE
882
871config PIN_TLB 883config PIN_TLB
872 bool "Pinned Kernel TLBs (860 ONLY)" 884 bool "Pinned Kernel TLBs (860 ONLY)"
873 depends on ADVANCED_OPTIONS && 8xx 885 depends on ADVANCED_OPTIONS && 8xx
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 8da2bf963b57..9ae7b7e2ba71 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -346,7 +346,7 @@ install: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))
346clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \ 346clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
347 zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \ 347 zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \
348 zImage.iseries zImage.miboot zImage.pmac zImage.pseries \ 348 zImage.iseries zImage.miboot zImage.pmac zImage.pseries \
349 otheros.bld *.dtb 349 simpleImage.* otheros.bld *.dtb
350 350
351# clean up files cached by wrapper 351# clean up files cached by wrapper
352clean-kernel := vmlinux.strip vmlinux.bin 352clean-kernel := vmlinux.strip vmlinux.bin
diff --git a/arch/powerpc/boot/mktree.c b/arch/powerpc/boot/mktree.c
index 45d06a8c7cd1..c2baae0a3d89 100644
--- a/arch/powerpc/boot/mktree.c
+++ b/arch/powerpc/boot/mktree.c
@@ -42,7 +42,7 @@ int main(int argc, char *argv[])
42{ 42{
43 int in_fd, out_fd; 43 int in_fd, out_fd;
44 int nblks, i; 44 int nblks, i;
45 uint cksum, *cp; 45 unsigned int cksum, *cp;
46 struct stat st; 46 struct stat st;
47 boot_block_t bt; 47 boot_block_t bt;
48 48
@@ -90,7 +90,7 @@ int main(int argc, char *argv[])
90 90
91 cksum = 0; 91 cksum = 0;
92 cp = (void *)&bt; 92 cp = (void *)&bt;
93 for (i=0; i<sizeof(bt)/sizeof(uint); i++) 93 for (i = 0; i < sizeof(bt) / sizeof(unsigned int); i++)
94 cksum += *cp++; 94 cksum += *cp++;
95 95
96 /* Assume zImage is an ELF file, and skip the 64K header. 96 /* Assume zImage is an ELF file, and skip the 64K header.
@@ -101,7 +101,7 @@ int main(int argc, char *argv[])
101 exit(4); 101 exit(4);
102 } 102 }
103 103
104 if ((*(uint *)tmpbuf) != htonl(0x7f454c46)) { 104 if ((*(unsigned int *)tmpbuf) != htonl(0x7f454c46)) {
105 fprintf(stderr, "%s is not an ELF image\n", argv[1]); 105 fprintf(stderr, "%s is not an ELF image\n", argv[1]);
106 exit(4); 106 exit(4);
107 } 107 }
@@ -125,8 +125,8 @@ int main(int argc, char *argv[])
125 perror("zImage read"); 125 perror("zImage read");
126 exit(5); 126 exit(5);
127 } 127 }
128 cp = (uint *)tmpbuf; 128 cp = (unsigned int *)tmpbuf;
129 for (i=0; i<sizeof(tmpbuf)/sizeof(uint); i++) 129 for (i = 0; i < sizeof(tmpbuf) / sizeof(unsigned int); i++)
130 cksum += *cp++; 130 cksum += *cp++;
131 if (write(out_fd, tmpbuf, sizeof(tmpbuf)) != sizeof(tmpbuf)) { 131 if (write(out_fd, tmpbuf, sizeof(tmpbuf)) != sizeof(tmpbuf)) {
132 perror("boot-image write"); 132 perror("boot-image write");
diff --git a/arch/powerpc/configs/83xx/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index fc4a39a40e72..278939713775 100644
--- a/arch/powerpc/configs/83xx/asp8347_defconfig
+++ b/arch/powerpc/configs/83xx/asp8347_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:47 2009 4# Wed May 13 17:22:05 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18CONFIG_FSL_EMB_PERFMON=y 19CONFIG_FSL_EMB_PERFMON=y
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -57,6 +58,7 @@ CONFIG_REDBOOT=y
57CONFIG_ARCH_SUSPEND_POSSIBLE=y 58CONFIG_ARCH_SUSPEND_POSSIBLE=y
58# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
61 63
62# 64#
@@ -74,6 +76,15 @@ CONFIG_SYSVIPC_SYSCTL=y
74# CONFIG_BSD_PROCESS_ACCT is not set 76# CONFIG_BSD_PROCESS_ACCT is not set
75# CONFIG_TASKSTATS is not set 77# CONFIG_TASKSTATS is not set
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
79
80#
81# RCU Subsystem
82#
83CONFIG_CLASSIC_RCU=y
84# CONFIG_TREE_RCU is not set
85# CONFIG_PREEMPT_RCU is not set
86# CONFIG_TREE_RCU_TRACE is not set
87# CONFIG_PREEMPT_RCU_TRACE is not set
77# CONFIG_IKCONFIG is not set 88# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 89CONFIG_LOG_BUF_SHIFT=14
79CONFIG_GROUP_SCHED=y 90CONFIG_GROUP_SCHED=y
@@ -88,19 +99,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
88# CONFIG_NAMESPACES is not set 99# CONFIG_NAMESPACES is not set
89CONFIG_BLK_DEV_INITRD=y 100CONFIG_BLK_DEV_INITRD=y
90CONFIG_INITRAMFS_SOURCE="" 101CONFIG_INITRAMFS_SOURCE=""
102CONFIG_RD_GZIP=y
103# CONFIG_RD_BZIP2 is not set
104# CONFIG_RD_LZMA is not set
91# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 105# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
92CONFIG_SYSCTL=y 106CONFIG_SYSCTL=y
107CONFIG_ANON_INODES=y
93CONFIG_EMBEDDED=y 108CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
95# CONFIG_KALLSYMS is not set 110# CONFIG_KALLSYMS is not set
111# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 112CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 113CONFIG_PRINTK=y
98CONFIG_BUG=y 114CONFIG_BUG=y
99CONFIG_ELF_CORE=y 115CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y 116CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y 117CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104# CONFIG_EPOLL is not set 118# CONFIG_EPOLL is not set
105CONFIG_SIGNALFD=y 119CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 120CONFIG_TIMERFD=y
@@ -110,16 +124,19 @@ CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 124CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y 125CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 126CONFIG_SLUB_DEBUG=y
127CONFIG_COMPAT_BRK=y
113# CONFIG_SLAB is not set 128# CONFIG_SLAB is not set
114CONFIG_SLUB=y 129CONFIG_SLUB=y
115# CONFIG_SLOB is not set 130# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 131# CONFIG_PROFILING is not set
132# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 133CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 134CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 135CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 136CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 137CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 138CONFIG_HAVE_ARCH_TRACEHOOK=y
139# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 140# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 141CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 142CONFIG_RT_MUTEXES=y
@@ -132,7 +149,6 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_SRCVERSION_ALL is not set 149# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_BLOCK=y 150CONFIG_BLOCK=y
134# CONFIG_LBD is not set 151# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_BLK_DEV_BSG is not set 152# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 153# CONFIG_BLK_DEV_INTEGRITY is not set
138 154
@@ -148,18 +164,11 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
149# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 166CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 167# CONFIG_FREEZER is not set
157 168
158# 169#
159# Platform support 170# Platform support
160# 171#
161CONFIG_PPC_MULTIPLATFORM=y
162CONFIG_CLASSIC32=y
163# CONFIG_PPC_CHRP is not set 172# CONFIG_PPC_CHRP is not set
164# CONFIG_MPC5121_ADS is not set 173# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set 174# CONFIG_MPC5121_GENERIC is not set
@@ -184,6 +193,8 @@ CONFIG_ASP834x=y
184CONFIG_PPC_MPC834x=y 193CONFIG_PPC_MPC834x=y
185# CONFIG_PPC_86xx is not set 194# CONFIG_PPC_86xx is not set
186# CONFIG_EMBEDDED6xx is not set 195# CONFIG_EMBEDDED6xx is not set
196# CONFIG_AMIGAONE is not set
197CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
187CONFIG_IPIC=y 198CONFIG_IPIC=y
188# CONFIG_MPIC is not set 199# CONFIG_MPIC is not set
189# CONFIG_MPIC_WEIRD is not set 200# CONFIG_MPIC_WEIRD is not set
@@ -245,9 +256,12 @@ CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 257CONFIG_VIRT_TO_BUS=y
247CONFIG_UNEVICTABLE_LRU=y 258CONFIG_UNEVICTABLE_LRU=y
259CONFIG_HAVE_MLOCK=y
260CONFIG_HAVE_MLOCKED_PAGE_BIT=y
248CONFIG_PPC_4K_PAGES=y 261CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set 262# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set 263# CONFIG_PPC_64K_PAGES is not set
264# CONFIG_PPC_256K_PAGES is not set
251CONFIG_FORCE_MAX_ZONEORDER=11 265CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 266CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 267# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 287# CONFIG_PCI_MSI is not set
274# CONFIG_PCI_LEGACY is not set 288# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -469,7 +483,6 @@ CONFIG_MTD_PHYSMAP_OF=y
469# LPDDR flash memory drivers 483# LPDDR flash memory drivers
470# 484#
471# CONFIG_MTD_LPDDR is not set 485# CONFIG_MTD_LPDDR is not set
472# CONFIG_MTD_QINFO_PROBE is not set
473 486
474# 487#
475# UBI - Unsorted block images 488# UBI - Unsorted block images
@@ -499,13 +512,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
499# CONFIG_BLK_DEV_HD is not set 512# CONFIG_BLK_DEV_HD is not set
500CONFIG_MISC_DEVICES=y 513CONFIG_MISC_DEVICES=y
501# CONFIG_PHANTOM is not set 514# CONFIG_PHANTOM is not set
502# CONFIG_EEPROM_93CX6 is not set
503# CONFIG_SGI_IOC4 is not set 515# CONFIG_SGI_IOC4 is not set
504# CONFIG_TIFM_CORE is not set 516# CONFIG_TIFM_CORE is not set
505# CONFIG_ICS932S401 is not set 517# CONFIG_ICS932S401 is not set
506# CONFIG_ENCLOSURE_SERVICES is not set 518# CONFIG_ENCLOSURE_SERVICES is not set
507# CONFIG_HP_ILO is not set 519# CONFIG_HP_ILO is not set
520# CONFIG_ISL29003 is not set
508# CONFIG_C2PORT is not set 521# CONFIG_C2PORT is not set
522
523#
524# EEPROM support
525#
526# CONFIG_EEPROM_AT24 is not set
527# CONFIG_EEPROM_LEGACY is not set
528# CONFIG_EEPROM_93CX6 is not set
509CONFIG_HAVE_IDE=y 529CONFIG_HAVE_IDE=y
510# CONFIG_IDE is not set 530# CONFIG_IDE is not set
511 531
@@ -532,6 +552,7 @@ CONFIG_HAVE_IDE=y
532# CONFIG_I2O is not set 552# CONFIG_I2O is not set
533# CONFIG_MACINTOSH_DRIVERS is not set 553# CONFIG_MACINTOSH_DRIVERS is not set
534CONFIG_NETDEVICES=y 554CONFIG_NETDEVICES=y
555CONFIG_COMPAT_NET_DEV_OPS=y
535# CONFIG_DUMMY is not set 556# CONFIG_DUMMY is not set
536# CONFIG_BONDING is not set 557# CONFIG_BONDING is not set
537# CONFIG_MACVLAN is not set 558# CONFIG_MACVLAN is not set
@@ -565,6 +586,8 @@ CONFIG_MII=y
565# CONFIG_SUNGEM is not set 586# CONFIG_SUNGEM is not set
566# CONFIG_CASSINI is not set 587# CONFIG_CASSINI is not set
567# CONFIG_NET_VENDOR_3COM is not set 588# CONFIG_NET_VENDOR_3COM is not set
589# CONFIG_ETHOC is not set
590# CONFIG_DNET is not set
568# CONFIG_NET_TULIP is not set 591# CONFIG_NET_TULIP is not set
569# CONFIG_HP100 is not set 592# CONFIG_HP100 is not set
570# CONFIG_IBM_NEW_EMAC_ZMII is not set 593# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -584,6 +607,7 @@ CONFIG_NETDEV_1000=y
584# CONFIG_E1000E is not set 607# CONFIG_E1000E is not set
585# CONFIG_IP1000 is not set 608# CONFIG_IP1000 is not set
586# CONFIG_IGB is not set 609# CONFIG_IGB is not set
610# CONFIG_IGBVF is not set
587# CONFIG_NS83820 is not set 611# CONFIG_NS83820 is not set
588# CONFIG_HAMACHI is not set 612# CONFIG_HAMACHI is not set
589# CONFIG_YELLOWFIN is not set 613# CONFIG_YELLOWFIN is not set
@@ -594,11 +618,12 @@ CONFIG_NETDEV_1000=y
594# CONFIG_VIA_VELOCITY is not set 618# CONFIG_VIA_VELOCITY is not set
595# CONFIG_TIGON3 is not set 619# CONFIG_TIGON3 is not set
596# CONFIG_BNX2 is not set 620# CONFIG_BNX2 is not set
621CONFIG_FSL_PQ_MDIO=y
597CONFIG_GIANFAR=y 622CONFIG_GIANFAR=y
598# CONFIG_MV643XX_ETH is not set
599# CONFIG_QLA3XXX is not set 623# CONFIG_QLA3XXX is not set
600# CONFIG_ATL1 is not set 624# CONFIG_ATL1 is not set
601# CONFIG_ATL1E is not set 625# CONFIG_ATL1E is not set
626# CONFIG_ATL1C is not set
602# CONFIG_JME is not set 627# CONFIG_JME is not set
603# CONFIG_NETDEV_10000 is not set 628# CONFIG_NETDEV_10000 is not set
604# CONFIG_TR is not set 629# CONFIG_TR is not set
@@ -608,7 +633,6 @@ CONFIG_GIANFAR=y
608# 633#
609# CONFIG_WLAN_PRE80211 is not set 634# CONFIG_WLAN_PRE80211 is not set
610# CONFIG_WLAN_80211 is not set 635# CONFIG_WLAN_80211 is not set
611# CONFIG_IWLWIFI_LEDS is not set
612 636
613# 637#
614# Enable WiMAX (Networking options) to see the WiMAX drivers 638# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -759,12 +783,9 @@ CONFIG_I2C_MPC=y
759# Miscellaneous I2C Chip support 783# Miscellaneous I2C Chip support
760# 784#
761# CONFIG_DS1682 is not set 785# CONFIG_DS1682 is not set
762# CONFIG_EEPROM_AT24 is not set
763# CONFIG_EEPROM_LEGACY is not set
764# CONFIG_SENSORS_PCF8574 is not set 786# CONFIG_SENSORS_PCF8574 is not set
765# CONFIG_PCF8575 is not set 787# CONFIG_PCF8575 is not set
766# CONFIG_SENSORS_PCA9539 is not set 788# CONFIG_SENSORS_PCA9539 is not set
767# CONFIG_SENSORS_PCF8591 is not set
768# CONFIG_SENSORS_MAX6875 is not set 789# CONFIG_SENSORS_MAX6875 is not set
769# CONFIG_SENSORS_TSL2550 is not set 790# CONFIG_SENSORS_TSL2550 is not set
770# CONFIG_I2C_DEBUG_CORE is not set 791# CONFIG_I2C_DEBUG_CORE is not set
@@ -796,6 +817,7 @@ CONFIG_HWMON=y
796# CONFIG_SENSORS_F71805F is not set 817# CONFIG_SENSORS_F71805F is not set
797# CONFIG_SENSORS_F71882FG is not set 818# CONFIG_SENSORS_F71882FG is not set
798# CONFIG_SENSORS_F75375S is not set 819# CONFIG_SENSORS_F75375S is not set
820# CONFIG_SENSORS_G760A is not set
799# CONFIG_SENSORS_GL518SM is not set 821# CONFIG_SENSORS_GL518SM is not set
800# CONFIG_SENSORS_GL520SM is not set 822# CONFIG_SENSORS_GL520SM is not set
801# CONFIG_SENSORS_IT87 is not set 823# CONFIG_SENSORS_IT87 is not set
@@ -810,11 +832,14 @@ CONFIG_HWMON=y
810# CONFIG_SENSORS_LM90 is not set 832# CONFIG_SENSORS_LM90 is not set
811# CONFIG_SENSORS_LM92 is not set 833# CONFIG_SENSORS_LM92 is not set
812# CONFIG_SENSORS_LM93 is not set 834# CONFIG_SENSORS_LM93 is not set
835# CONFIG_SENSORS_LTC4215 is not set
813# CONFIG_SENSORS_LTC4245 is not set 836# CONFIG_SENSORS_LTC4245 is not set
837# CONFIG_SENSORS_LM95241 is not set
814# CONFIG_SENSORS_MAX1619 is not set 838# CONFIG_SENSORS_MAX1619 is not set
815# CONFIG_SENSORS_MAX6650 is not set 839# CONFIG_SENSORS_MAX6650 is not set
816# CONFIG_SENSORS_PC87360 is not set 840# CONFIG_SENSORS_PC87360 is not set
817# CONFIG_SENSORS_PC87427 is not set 841# CONFIG_SENSORS_PC87427 is not set
842# CONFIG_SENSORS_PCF8591 is not set
818# CONFIG_SENSORS_SIS5595 is not set 843# CONFIG_SENSORS_SIS5595 is not set
819# CONFIG_SENSORS_DME1737 is not set 844# CONFIG_SENSORS_DME1737 is not set
820# CONFIG_SENSORS_SMSC47M1 is not set 845# CONFIG_SENSORS_SMSC47M1 is not set
@@ -959,11 +984,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
959# CONFIG_USB_TMC is not set 984# CONFIG_USB_TMC is not set
960 985
961# 986#
962# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 987# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
963# 988#
964 989
965# 990#
966# see USB_STORAGE Help for more information 991# also be needed; see USB_STORAGE Help for more info
967# 992#
968# CONFIG_USB_LIBUSUAL is not set 993# CONFIG_USB_LIBUSUAL is not set
969 994
@@ -991,7 +1016,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
991# CONFIG_USB_LED is not set 1016# CONFIG_USB_LED is not set
992# CONFIG_USB_CYPRESS_CY7C63 is not set 1017# CONFIG_USB_CYPRESS_CY7C63 is not set
993# CONFIG_USB_CYTHERM is not set 1018# CONFIG_USB_CYTHERM is not set
994# CONFIG_USB_PHIDGET is not set
995# CONFIG_USB_IDMOUSE is not set 1019# CONFIG_USB_IDMOUSE is not set
996# CONFIG_USB_FTDI_ELAN is not set 1020# CONFIG_USB_FTDI_ELAN is not set
997# CONFIG_USB_APPLEDISPLAY is not set 1021# CONFIG_USB_APPLEDISPLAY is not set
@@ -1006,6 +1030,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1006# 1030#
1007# OTG and related infrastructure 1031# OTG and related infrastructure
1008# 1032#
1033# CONFIG_NOP_USB_XCEIV is not set
1009# CONFIG_UWB is not set 1034# CONFIG_UWB is not set
1010# CONFIG_MMC is not set 1035# CONFIG_MMC is not set
1011# CONFIG_MEMSTICK is not set 1036# CONFIG_MEMSTICK is not set
@@ -1067,8 +1092,9 @@ CONFIG_RTC_DRV_DS1374=y
1067# 1092#
1068# on-CPU RTC drivers 1093# on-CPU RTC drivers
1069# 1094#
1070# CONFIG_RTC_DRV_PPC is not set 1095# CONFIG_RTC_DRV_GENERIC is not set
1071# CONFIG_DMADEVICES is not set 1096# CONFIG_DMADEVICES is not set
1097# CONFIG_AUXDISPLAY is not set
1072# CONFIG_UIO is not set 1098# CONFIG_UIO is not set
1073# CONFIG_STAGING is not set 1099# CONFIG_STAGING is not set
1074 1100
@@ -1079,6 +1105,7 @@ CONFIG_EXT2_FS=y
1079# CONFIG_EXT2_FS_XATTR is not set 1105# CONFIG_EXT2_FS_XATTR is not set
1080# CONFIG_EXT2_FS_XIP is not set 1106# CONFIG_EXT2_FS_XIP is not set
1081CONFIG_EXT3_FS=y 1107CONFIG_EXT3_FS=y
1108# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1082CONFIG_EXT3_FS_XATTR=y 1109CONFIG_EXT3_FS_XATTR=y
1083# CONFIG_EXT3_FS_POSIX_ACL is not set 1110# CONFIG_EXT3_FS_POSIX_ACL is not set
1084# CONFIG_EXT3_FS_SECURITY is not set 1111# CONFIG_EXT3_FS_SECURITY is not set
@@ -1101,6 +1128,11 @@ CONFIG_INOTIFY_USER=y
1101# CONFIG_FUSE_FS is not set 1128# CONFIG_FUSE_FS is not set
1102 1129
1103# 1130#
1131# Caches
1132#
1133# CONFIG_FSCACHE is not set
1134
1135#
1104# CD-ROM/DVD Filesystems 1136# CD-ROM/DVD Filesystems
1105# 1137#
1106# CONFIG_ISO9660_FS is not set 1138# CONFIG_ISO9660_FS is not set
@@ -1154,6 +1186,7 @@ CONFIG_JFFS2_RTIME=y
1154# CONFIG_ROMFS_FS is not set 1186# CONFIG_ROMFS_FS is not set
1155# CONFIG_SYSV_FS is not set 1187# CONFIG_SYSV_FS is not set
1156# CONFIG_UFS_FS is not set 1188# CONFIG_UFS_FS is not set
1189# CONFIG_NILFS2_FS is not set
1157CONFIG_NETWORK_FILESYSTEMS=y 1190CONFIG_NETWORK_FILESYSTEMS=y
1158CONFIG_NFS_FS=y 1191CONFIG_NFS_FS=y
1159CONFIG_NFS_V3=y 1192CONFIG_NFS_V3=y
@@ -1166,7 +1199,6 @@ CONFIG_LOCKD_V4=y
1166CONFIG_NFS_COMMON=y 1199CONFIG_NFS_COMMON=y
1167CONFIG_SUNRPC=y 1200CONFIG_SUNRPC=y
1168CONFIG_SUNRPC_GSS=y 1201CONFIG_SUNRPC_GSS=y
1169# CONFIG_SUNRPC_REGISTER_V4 is not set
1170CONFIG_RPCSEC_GSS_KRB5=y 1202CONFIG_RPCSEC_GSS_KRB5=y
1171# CONFIG_RPCSEC_GSS_SPKM3 is not set 1203# CONFIG_RPCSEC_GSS_SPKM3 is not set
1172# CONFIG_SMB_FS is not set 1204# CONFIG_SMB_FS is not set
@@ -1233,6 +1265,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1233# CONFIG_NLS_KOI8_U is not set 1265# CONFIG_NLS_KOI8_U is not set
1234# CONFIG_NLS_UTF8 is not set 1266# CONFIG_NLS_UTF8 is not set
1235# CONFIG_DLM is not set 1267# CONFIG_DLM is not set
1268# CONFIG_BINARY_PRINTF is not set
1236 1269
1237# 1270#
1238# Library routines 1271# Library routines
@@ -1248,11 +1281,12 @@ CONFIG_CRC32=y
1248# CONFIG_LIBCRC32C is not set 1281# CONFIG_LIBCRC32C is not set
1249CONFIG_ZLIB_INFLATE=y 1282CONFIG_ZLIB_INFLATE=y
1250CONFIG_ZLIB_DEFLATE=y 1283CONFIG_ZLIB_DEFLATE=y
1251CONFIG_PLIST=y 1284CONFIG_DECOMPRESS_GZIP=y
1252CONFIG_HAS_IOMEM=y 1285CONFIG_HAS_IOMEM=y
1253CONFIG_HAS_IOPORT=y 1286CONFIG_HAS_IOPORT=y
1254CONFIG_HAS_DMA=y 1287CONFIG_HAS_DMA=y
1255CONFIG_HAVE_LMB=y 1288CONFIG_HAVE_LMB=y
1289CONFIG_NLATTR=y
1256 1290
1257# 1291#
1258# Kernel hacking 1292# Kernel hacking
@@ -1274,13 +1308,24 @@ CONFIG_FRAME_WARN=1024
1274# CONFIG_LATENCYTOP is not set 1308# CONFIG_LATENCYTOP is not set
1275# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1309# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1276CONFIG_HAVE_FUNCTION_TRACER=y 1310CONFIG_HAVE_FUNCTION_TRACER=y
1311CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1277CONFIG_HAVE_DYNAMIC_FTRACE=y 1312CONFIG_HAVE_DYNAMIC_FTRACE=y
1278CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1313CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1314CONFIG_TRACING_SUPPORT=y
1279 1315
1280# 1316#
1281# Tracers 1317# Tracers
1282# 1318#
1283# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1319# CONFIG_FUNCTION_TRACER is not set
1320# CONFIG_SCHED_TRACER is not set
1321# CONFIG_CONTEXT_SWITCH_TRACER is not set
1322# CONFIG_EVENT_TRACER is not set
1323# CONFIG_BOOT_TRACER is not set
1324# CONFIG_TRACE_BRANCH_PROFILING is not set
1325# CONFIG_STACK_TRACER is not set
1326# CONFIG_KMEMTRACE is not set
1327# CONFIG_WORKQUEUE_TRACER is not set
1328# CONFIG_BLK_DEV_IO_TRACE is not set
1284# CONFIG_SAMPLES is not set 1329# CONFIG_SAMPLES is not set
1285CONFIG_HAVE_ARCH_KGDB=y 1330CONFIG_HAVE_ARCH_KGDB=y
1286CONFIG_PRINT_STACK_DEPTH=64 1331CONFIG_PRINT_STACK_DEPTH=64
@@ -1309,10 +1354,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1309CONFIG_CRYPTO_HASH=y 1354CONFIG_CRYPTO_HASH=y
1310CONFIG_CRYPTO_HASH2=y 1355CONFIG_CRYPTO_HASH2=y
1311CONFIG_CRYPTO_RNG2=y 1356CONFIG_CRYPTO_RNG2=y
1357CONFIG_CRYPTO_PCOMP=y
1312CONFIG_CRYPTO_MANAGER=y 1358CONFIG_CRYPTO_MANAGER=y
1313CONFIG_CRYPTO_MANAGER2=y 1359CONFIG_CRYPTO_MANAGER2=y
1314# CONFIG_CRYPTO_GF128MUL is not set 1360# CONFIG_CRYPTO_GF128MUL is not set
1315# CONFIG_CRYPTO_NULL is not set 1361# CONFIG_CRYPTO_NULL is not set
1362CONFIG_CRYPTO_WORKQUEUE=y
1316# CONFIG_CRYPTO_CRYPTD is not set 1363# CONFIG_CRYPTO_CRYPTD is not set
1317# CONFIG_CRYPTO_AUTHENC is not set 1364# CONFIG_CRYPTO_AUTHENC is not set
1318# CONFIG_CRYPTO_TEST is not set 1365# CONFIG_CRYPTO_TEST is not set
@@ -1381,6 +1428,7 @@ CONFIG_CRYPTO_DES=y
1381# Compression 1428# Compression
1382# 1429#
1383# CONFIG_CRYPTO_DEFLATE is not set 1430# CONFIG_CRYPTO_DEFLATE is not set
1431# CONFIG_CRYPTO_ZLIB is not set
1384# CONFIG_CRYPTO_LZO is not set 1432# CONFIG_CRYPTO_LZO is not set
1385 1433
1386# 1434#
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index 409d017621a8..c5c0fe71a438 100644
--- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:48 2009 4# Wed May 13 17:22:06 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC831x_RDB=y
183CONFIG_PPC_MPC831x=y 192CONFIG_PPC_MPC831x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_DEBUG is not set 288# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -481,7 +495,6 @@ CONFIG_MTD_NAND_FSL_ELBC=y
481# LPDDR flash memory drivers 495# LPDDR flash memory drivers
482# 496#
483# CONFIG_MTD_LPDDR is not set 497# CONFIG_MTD_LPDDR is not set
484# CONFIG_MTD_QINFO_PROBE is not set
485 498
486# 499#
487# UBI - Unsorted block images 500# UBI - Unsorted block images
@@ -512,13 +525,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
512# CONFIG_BLK_DEV_HD is not set 525# CONFIG_BLK_DEV_HD is not set
513CONFIG_MISC_DEVICES=y 526CONFIG_MISC_DEVICES=y
514# CONFIG_PHANTOM is not set 527# CONFIG_PHANTOM is not set
515# CONFIG_EEPROM_93CX6 is not set
516# CONFIG_SGI_IOC4 is not set 528# CONFIG_SGI_IOC4 is not set
517# CONFIG_TIFM_CORE is not set 529# CONFIG_TIFM_CORE is not set
518# CONFIG_ICS932S401 is not set 530# CONFIG_ICS932S401 is not set
519# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
520# CONFIG_HP_ILO is not set 532# CONFIG_HP_ILO is not set
533# CONFIG_ISL29003 is not set
521# CONFIG_C2PORT is not set 534# CONFIG_C2PORT is not set
535
536#
537# EEPROM support
538#
539# CONFIG_EEPROM_AT24 is not set
540# CONFIG_EEPROM_AT25 is not set
541# CONFIG_EEPROM_LEGACY is not set
542# CONFIG_EEPROM_93CX6 is not set
522CONFIG_HAVE_IDE=y 543CONFIG_HAVE_IDE=y
523# CONFIG_IDE is not set 544# CONFIG_IDE is not set
524 545
@@ -576,9 +597,11 @@ CONFIG_SCSI_LOWLEVEL=y
576# CONFIG_MEGARAID_NEWGEN is not set 597# CONFIG_MEGARAID_NEWGEN is not set
577# CONFIG_MEGARAID_LEGACY is not set 598# CONFIG_MEGARAID_LEGACY is not set
578# CONFIG_MEGARAID_SAS is not set 599# CONFIG_MEGARAID_SAS is not set
600# CONFIG_SCSI_MPT2SAS is not set
579# CONFIG_SCSI_HPTIOP is not set 601# CONFIG_SCSI_HPTIOP is not set
580# CONFIG_SCSI_BUSLOGIC is not set 602# CONFIG_SCSI_BUSLOGIC is not set
581# CONFIG_LIBFC is not set 603# CONFIG_LIBFC is not set
604# CONFIG_LIBFCOE is not set
582# CONFIG_FCOE is not set 605# CONFIG_FCOE is not set
583# CONFIG_SCSI_DMX3191D is not set 606# CONFIG_SCSI_DMX3191D is not set
584# CONFIG_SCSI_EATA is not set 607# CONFIG_SCSI_EATA is not set
@@ -600,6 +623,7 @@ CONFIG_SCSI_LOWLEVEL=y
600# CONFIG_SCSI_DEBUG is not set 623# CONFIG_SCSI_DEBUG is not set
601# CONFIG_SCSI_SRP is not set 624# CONFIG_SCSI_SRP is not set
602# CONFIG_SCSI_DH is not set 625# CONFIG_SCSI_DH is not set
626# CONFIG_SCSI_OSD_INITIATOR is not set
603# CONFIG_ATA is not set 627# CONFIG_ATA is not set
604CONFIG_MD=y 628CONFIG_MD=y
605CONFIG_BLK_DEV_MD=y 629CONFIG_BLK_DEV_MD=y
@@ -626,6 +650,7 @@ CONFIG_MD_RAID1=y
626# CONFIG_I2O is not set 650# CONFIG_I2O is not set
627# CONFIG_MACINTOSH_DRIVERS is not set 651# CONFIG_MACINTOSH_DRIVERS is not set
628CONFIG_NETDEVICES=y 652CONFIG_NETDEVICES=y
653CONFIG_COMPAT_NET_DEV_OPS=y
629# CONFIG_DUMMY is not set 654# CONFIG_DUMMY is not set
630# CONFIG_BONDING is not set 655# CONFIG_BONDING is not set
631# CONFIG_MACVLAN is not set 656# CONFIG_MACVLAN is not set
@@ -660,6 +685,8 @@ CONFIG_MII=y
660# CONFIG_CASSINI is not set 685# CONFIG_CASSINI is not set
661# CONFIG_NET_VENDOR_3COM is not set 686# CONFIG_NET_VENDOR_3COM is not set
662# CONFIG_ENC28J60 is not set 687# CONFIG_ENC28J60 is not set
688# CONFIG_ETHOC is not set
689# CONFIG_DNET is not set
663# CONFIG_NET_TULIP is not set 690# CONFIG_NET_TULIP is not set
664# CONFIG_HP100 is not set 691# CONFIG_HP100 is not set
665# CONFIG_IBM_NEW_EMAC_ZMII is not set 692# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -697,6 +724,7 @@ CONFIG_NETDEV_1000=y
697# CONFIG_E1000E is not set 724# CONFIG_E1000E is not set
698# CONFIG_IP1000 is not set 725# CONFIG_IP1000 is not set
699# CONFIG_IGB is not set 726# CONFIG_IGB is not set
727# CONFIG_IGBVF is not set
700# CONFIG_NS83820 is not set 728# CONFIG_NS83820 is not set
701# CONFIG_HAMACHI is not set 729# CONFIG_HAMACHI is not set
702# CONFIG_YELLOWFIN is not set 730# CONFIG_YELLOWFIN is not set
@@ -707,11 +735,12 @@ CONFIG_NETDEV_1000=y
707# CONFIG_VIA_VELOCITY is not set 735# CONFIG_VIA_VELOCITY is not set
708# CONFIG_TIGON3 is not set 736# CONFIG_TIGON3 is not set
709# CONFIG_BNX2 is not set 737# CONFIG_BNX2 is not set
738CONFIG_FSL_PQ_MDIO=y
710CONFIG_GIANFAR=y 739CONFIG_GIANFAR=y
711# CONFIG_MV643XX_ETH is not set
712# CONFIG_QLA3XXX is not set 740# CONFIG_QLA3XXX is not set
713# CONFIG_ATL1 is not set 741# CONFIG_ATL1 is not set
714# CONFIG_ATL1E is not set 742# CONFIG_ATL1E is not set
743# CONFIG_ATL1C is not set
715# CONFIG_JME is not set 744# CONFIG_JME is not set
716CONFIG_NETDEV_10000=y 745CONFIG_NETDEV_10000=y
717# CONFIG_CHELSIO_T1 is not set 746# CONFIG_CHELSIO_T1 is not set
@@ -721,6 +750,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
721# CONFIG_IXGBE is not set 750# CONFIG_IXGBE is not set
722# CONFIG_IXGB is not set 751# CONFIG_IXGB is not set
723# CONFIG_S2IO is not set 752# CONFIG_S2IO is not set
753# CONFIG_VXGE is not set
724# CONFIG_MYRI10GE is not set 754# CONFIG_MYRI10GE is not set
725# CONFIG_NETXEN_NIC is not set 755# CONFIG_NETXEN_NIC is not set
726# CONFIG_NIU is not set 756# CONFIG_NIU is not set
@@ -730,6 +760,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
730# CONFIG_BNX2X is not set 760# CONFIG_BNX2X is not set
731# CONFIG_QLGE is not set 761# CONFIG_QLGE is not set
732# CONFIG_SFC is not set 762# CONFIG_SFC is not set
763# CONFIG_BE2NET is not set
733# CONFIG_TR is not set 764# CONFIG_TR is not set
734 765
735# 766#
@@ -737,7 +768,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
737# 768#
738# CONFIG_WLAN_PRE80211 is not set 769# CONFIG_WLAN_PRE80211 is not set
739# CONFIG_WLAN_80211 is not set 770# CONFIG_WLAN_80211 is not set
740# CONFIG_IWLWIFI_LEDS is not set
741 771
742# 772#
743# Enable WiMAX (Networking options) to see the WiMAX drivers 773# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -815,6 +845,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
815# 845#
816# Non-8250 serial port support 846# Non-8250 serial port support
817# 847#
848# CONFIG_SERIAL_MAX3100 is not set
818# CONFIG_SERIAL_UARTLITE is not set 849# CONFIG_SERIAL_UARTLITE is not set
819CONFIG_SERIAL_CORE=y 850CONFIG_SERIAL_CORE=y
820CONFIG_SERIAL_CORE_CONSOLE=y 851CONFIG_SERIAL_CORE_CONSOLE=y
@@ -827,6 +858,7 @@ CONFIG_LEGACY_PTY_COUNT=256
827# CONFIG_HVC_UDBG is not set 858# CONFIG_HVC_UDBG is not set
828# CONFIG_IPMI_HANDLER is not set 859# CONFIG_IPMI_HANDLER is not set
829CONFIG_HW_RANDOM=y 860CONFIG_HW_RANDOM=y
861# CONFIG_HW_RANDOM_TIMERIOMEM is not set
830# CONFIG_NVRAM is not set 862# CONFIG_NVRAM is not set
831# CONFIG_R3964 is not set 863# CONFIG_R3964 is not set
832# CONFIG_APPLICOM is not set 864# CONFIG_APPLICOM is not set
@@ -889,12 +921,9 @@ CONFIG_I2C_MPC=y
889# Miscellaneous I2C Chip support 921# Miscellaneous I2C Chip support
890# 922#
891# CONFIG_DS1682 is not set 923# CONFIG_DS1682 is not set
892# CONFIG_EEPROM_AT24 is not set
893# CONFIG_EEPROM_LEGACY is not set
894# CONFIG_SENSORS_PCF8574 is not set 924# CONFIG_SENSORS_PCF8574 is not set
895# CONFIG_PCF8575 is not set 925# CONFIG_PCF8575 is not set
896# CONFIG_SENSORS_PCA9539 is not set 926# CONFIG_SENSORS_PCA9539 is not set
897# CONFIG_SENSORS_PCF8591 is not set
898# CONFIG_SENSORS_MAX6875 is not set 927# CONFIG_SENSORS_MAX6875 is not set
899# CONFIG_SENSORS_TSL2550 is not set 928# CONFIG_SENSORS_TSL2550 is not set
900# CONFIG_I2C_DEBUG_CORE is not set 929# CONFIG_I2C_DEBUG_CORE is not set
@@ -914,7 +943,6 @@ CONFIG_SPI_MPC83xx=y
914# 943#
915# SPI Protocol Masters 944# SPI Protocol Masters
916# 945#
917# CONFIG_EEPROM_AT25 is not set
918# CONFIG_SPI_SPIDEV is not set 946# CONFIG_SPI_SPIDEV is not set
919# CONFIG_SPI_TLE62X0 is not set 947# CONFIG_SPI_TLE62X0 is not set
920CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 948CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -942,6 +970,7 @@ CONFIG_HWMON=y
942# CONFIG_SENSORS_F71805F is not set 970# CONFIG_SENSORS_F71805F is not set
943# CONFIG_SENSORS_F71882FG is not set 971# CONFIG_SENSORS_F71882FG is not set
944# CONFIG_SENSORS_F75375S is not set 972# CONFIG_SENSORS_F75375S is not set
973# CONFIG_SENSORS_G760A is not set
945# CONFIG_SENSORS_GL518SM is not set 974# CONFIG_SENSORS_GL518SM is not set
946# CONFIG_SENSORS_GL520SM is not set 975# CONFIG_SENSORS_GL520SM is not set
947# CONFIG_SENSORS_IT87 is not set 976# CONFIG_SENSORS_IT87 is not set
@@ -957,12 +986,15 @@ CONFIG_HWMON=y
957# CONFIG_SENSORS_LM90 is not set 986# CONFIG_SENSORS_LM90 is not set
958# CONFIG_SENSORS_LM92 is not set 987# CONFIG_SENSORS_LM92 is not set
959# CONFIG_SENSORS_LM93 is not set 988# CONFIG_SENSORS_LM93 is not set
989# CONFIG_SENSORS_LTC4215 is not set
960# CONFIG_SENSORS_LTC4245 is not set 990# CONFIG_SENSORS_LTC4245 is not set
991# CONFIG_SENSORS_LM95241 is not set
961# CONFIG_SENSORS_MAX1111 is not set 992# CONFIG_SENSORS_MAX1111 is not set
962# CONFIG_SENSORS_MAX1619 is not set 993# CONFIG_SENSORS_MAX1619 is not set
963# CONFIG_SENSORS_MAX6650 is not set 994# CONFIG_SENSORS_MAX6650 is not set
964# CONFIG_SENSORS_PC87360 is not set 995# CONFIG_SENSORS_PC87360 is not set
965# CONFIG_SENSORS_PC87427 is not set 996# CONFIG_SENSORS_PC87427 is not set
997# CONFIG_SENSORS_PCF8591 is not set
966# CONFIG_SENSORS_SIS5595 is not set 998# CONFIG_SENSORS_SIS5595 is not set
967# CONFIG_SENSORS_DME1737 is not set 999# CONFIG_SENSORS_DME1737 is not set
968# CONFIG_SENSORS_SMSC47M1 is not set 1000# CONFIG_SENSORS_SMSC47M1 is not set
@@ -981,6 +1013,7 @@ CONFIG_HWMON=y
981# CONFIG_SENSORS_W83L786NG is not set 1013# CONFIG_SENSORS_W83L786NG is not set
982# CONFIG_SENSORS_W83627HF is not set 1014# CONFIG_SENSORS_W83627HF is not set
983# CONFIG_SENSORS_W83627EHF is not set 1015# CONFIG_SENSORS_W83627EHF is not set
1016# CONFIG_SENSORS_LIS3_SPI is not set
984# CONFIG_HWMON_DEBUG_CHIP is not set 1017# CONFIG_HWMON_DEBUG_CHIP is not set
985# CONFIG_THERMAL is not set 1018# CONFIG_THERMAL is not set
986# CONFIG_THERMAL_HWMON is not set 1019# CONFIG_THERMAL_HWMON is not set
@@ -1077,7 +1110,6 @@ CONFIG_HID=y
1077# 1110#
1078# Special HID drivers 1111# Special HID drivers
1079# 1112#
1080CONFIG_HID_COMPAT=y
1081CONFIG_USB_SUPPORT=y 1113CONFIG_USB_SUPPORT=y
1082CONFIG_USB_ARCH_HAS_HCD=y 1114CONFIG_USB_ARCH_HAS_HCD=y
1083CONFIG_USB_ARCH_HAS_OHCI=y 1115CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1135,11 +1167,11 @@ CONFIG_USB_UHCI_HCD=y
1135# CONFIG_USB_TMC is not set 1167# CONFIG_USB_TMC is not set
1136 1168
1137# 1169#
1138# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1170# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1139# 1171#
1140 1172
1141# 1173#
1142# see USB_STORAGE Help for more information 1174# also be needed; see USB_STORAGE Help for more info
1143# 1175#
1144CONFIG_USB_STORAGE=y 1176CONFIG_USB_STORAGE=y
1145# CONFIG_USB_STORAGE_DEBUG is not set 1177# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1181,7 +1213,6 @@ CONFIG_USB_STORAGE=y
1181# CONFIG_USB_LED is not set 1213# CONFIG_USB_LED is not set
1182# CONFIG_USB_CYPRESS_CY7C63 is not set 1214# CONFIG_USB_CYPRESS_CY7C63 is not set
1183# CONFIG_USB_CYTHERM is not set 1215# CONFIG_USB_CYTHERM is not set
1184# CONFIG_USB_PHIDGET is not set
1185# CONFIG_USB_IDMOUSE is not set 1216# CONFIG_USB_IDMOUSE is not set
1186# CONFIG_USB_FTDI_ELAN is not set 1217# CONFIG_USB_FTDI_ELAN is not set
1187# CONFIG_USB_APPLEDISPLAY is not set 1218# CONFIG_USB_APPLEDISPLAY is not set
@@ -1228,6 +1259,7 @@ CONFIG_USB_ETH_RNDIS=y
1228# 1259#
1229# OTG and related infrastructure 1260# OTG and related infrastructure
1230# 1261#
1262# CONFIG_NOP_USB_XCEIV is not set
1231# CONFIG_UWB is not set 1263# CONFIG_UWB is not set
1232# CONFIG_MMC is not set 1264# CONFIG_MMC is not set
1233# CONFIG_MEMSTICK is not set 1265# CONFIG_MEMSTICK is not set
@@ -1296,8 +1328,9 @@ CONFIG_RTC_DRV_DS1307=y
1296# 1328#
1297# on-CPU RTC drivers 1329# on-CPU RTC drivers
1298# 1330#
1299# CONFIG_RTC_DRV_PPC is not set 1331# CONFIG_RTC_DRV_GENERIC is not set
1300# CONFIG_DMADEVICES is not set 1332# CONFIG_DMADEVICES is not set
1333# CONFIG_AUXDISPLAY is not set
1301# CONFIG_UIO is not set 1334# CONFIG_UIO is not set
1302# CONFIG_STAGING is not set 1335# CONFIG_STAGING is not set
1303 1336
@@ -1308,6 +1341,7 @@ CONFIG_EXT2_FS=y
1308# CONFIG_EXT2_FS_XATTR is not set 1341# CONFIG_EXT2_FS_XATTR is not set
1309# CONFIG_EXT2_FS_XIP is not set 1342# CONFIG_EXT2_FS_XIP is not set
1310CONFIG_EXT3_FS=y 1343CONFIG_EXT3_FS=y
1344# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1311CONFIG_EXT3_FS_XATTR=y 1345CONFIG_EXT3_FS_XATTR=y
1312# CONFIG_EXT3_FS_POSIX_ACL is not set 1346# CONFIG_EXT3_FS_POSIX_ACL is not set
1313# CONFIG_EXT3_FS_SECURITY is not set 1347# CONFIG_EXT3_FS_SECURITY is not set
@@ -1330,6 +1364,11 @@ CONFIG_INOTIFY_USER=y
1330# CONFIG_FUSE_FS is not set 1364# CONFIG_FUSE_FS is not set
1331 1365
1332# 1366#
1367# Caches
1368#
1369# CONFIG_FSCACHE is not set
1370
1371#
1333# CD-ROM/DVD Filesystems 1372# CD-ROM/DVD Filesystems
1334# 1373#
1335# CONFIG_ISO9660_FS is not set 1374# CONFIG_ISO9660_FS is not set
@@ -1383,6 +1422,7 @@ CONFIG_JFFS2_RTIME=y
1383# CONFIG_ROMFS_FS is not set 1422# CONFIG_ROMFS_FS is not set
1384# CONFIG_SYSV_FS is not set 1423# CONFIG_SYSV_FS is not set
1385# CONFIG_UFS_FS is not set 1424# CONFIG_UFS_FS is not set
1425# CONFIG_NILFS2_FS is not set
1386CONFIG_NETWORK_FILESYSTEMS=y 1426CONFIG_NETWORK_FILESYSTEMS=y
1387CONFIG_NFS_FS=y 1427CONFIG_NFS_FS=y
1388CONFIG_NFS_V3=y 1428CONFIG_NFS_V3=y
@@ -1395,7 +1435,6 @@ CONFIG_LOCKD_V4=y
1395CONFIG_NFS_COMMON=y 1435CONFIG_NFS_COMMON=y
1396CONFIG_SUNRPC=y 1436CONFIG_SUNRPC=y
1397CONFIG_SUNRPC_GSS=y 1437CONFIG_SUNRPC_GSS=y
1398# CONFIG_SUNRPC_REGISTER_V4 is not set
1399CONFIG_RPCSEC_GSS_KRB5=y 1438CONFIG_RPCSEC_GSS_KRB5=y
1400# CONFIG_RPCSEC_GSS_SPKM3 is not set 1439# CONFIG_RPCSEC_GSS_SPKM3 is not set
1401# CONFIG_SMB_FS is not set 1440# CONFIG_SMB_FS is not set
@@ -1427,6 +1466,7 @@ CONFIG_MSDOS_PARTITION=y
1427# CONFIG_SYSV68_PARTITION is not set 1466# CONFIG_SYSV68_PARTITION is not set
1428# CONFIG_NLS is not set 1467# CONFIG_NLS is not set
1429# CONFIG_DLM is not set 1468# CONFIG_DLM is not set
1469# CONFIG_BINARY_PRINTF is not set
1430 1470
1431# 1471#
1432# Library routines 1472# Library routines
@@ -1442,11 +1482,12 @@ CONFIG_CRC32=y
1442# CONFIG_LIBCRC32C is not set 1482# CONFIG_LIBCRC32C is not set
1443CONFIG_ZLIB_INFLATE=y 1483CONFIG_ZLIB_INFLATE=y
1444CONFIG_ZLIB_DEFLATE=y 1484CONFIG_ZLIB_DEFLATE=y
1445CONFIG_PLIST=y 1485CONFIG_DECOMPRESS_GZIP=y
1446CONFIG_HAS_IOMEM=y 1486CONFIG_HAS_IOMEM=y
1447CONFIG_HAS_IOPORT=y 1487CONFIG_HAS_IOPORT=y
1448CONFIG_HAS_DMA=y 1488CONFIG_HAS_DMA=y
1449CONFIG_HAVE_LMB=y 1489CONFIG_HAVE_LMB=y
1490CONFIG_NLATTR=y
1450 1491
1451# 1492#
1452# Kernel hacking 1493# Kernel hacking
@@ -1464,6 +1505,9 @@ CONFIG_DEBUG_KERNEL=y
1464CONFIG_DETECT_SOFTLOCKUP=y 1505CONFIG_DETECT_SOFTLOCKUP=y
1465# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1506# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1466CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1507CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1508CONFIG_DETECT_HUNG_TASK=y
1509# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1510CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1467CONFIG_SCHED_DEBUG=y 1511CONFIG_SCHED_DEBUG=y
1468# CONFIG_SCHEDSTATS is not set 1512# CONFIG_SCHEDSTATS is not set
1469# CONFIG_TIMER_STATS is not set 1513# CONFIG_TIMER_STATS is not set
@@ -1493,9 +1537,12 @@ CONFIG_SCHED_DEBUG=y
1493# CONFIG_FAULT_INJECTION is not set 1537# CONFIG_FAULT_INJECTION is not set
1494# CONFIG_LATENCYTOP is not set 1538# CONFIG_LATENCYTOP is not set
1495CONFIG_SYSCTL_SYSCALL_CHECK=y 1539CONFIG_SYSCTL_SYSCALL_CHECK=y
1540# CONFIG_DEBUG_PAGEALLOC is not set
1496CONFIG_HAVE_FUNCTION_TRACER=y 1541CONFIG_HAVE_FUNCTION_TRACER=y
1542CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1497CONFIG_HAVE_DYNAMIC_FTRACE=y 1543CONFIG_HAVE_DYNAMIC_FTRACE=y
1498CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1544CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1545CONFIG_TRACING_SUPPORT=y
1499 1546
1500# 1547#
1501# Tracers 1548# Tracers
@@ -1503,17 +1550,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1503# CONFIG_FUNCTION_TRACER is not set 1550# CONFIG_FUNCTION_TRACER is not set
1504# CONFIG_SCHED_TRACER is not set 1551# CONFIG_SCHED_TRACER is not set
1505# CONFIG_CONTEXT_SWITCH_TRACER is not set 1552# CONFIG_CONTEXT_SWITCH_TRACER is not set
1553# CONFIG_EVENT_TRACER is not set
1506# CONFIG_BOOT_TRACER is not set 1554# CONFIG_BOOT_TRACER is not set
1507# CONFIG_TRACE_BRANCH_PROFILING is not set 1555# CONFIG_TRACE_BRANCH_PROFILING is not set
1508# CONFIG_STACK_TRACER is not set 1556# CONFIG_STACK_TRACER is not set
1509# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1557# CONFIG_KMEMTRACE is not set
1558# CONFIG_WORKQUEUE_TRACER is not set
1559# CONFIG_BLK_DEV_IO_TRACE is not set
1510# CONFIG_SAMPLES is not set 1560# CONFIG_SAMPLES is not set
1511CONFIG_HAVE_ARCH_KGDB=y 1561CONFIG_HAVE_ARCH_KGDB=y
1512# CONFIG_KGDB is not set 1562# CONFIG_KGDB is not set
1513CONFIG_PRINT_STACK_DEPTH=64 1563CONFIG_PRINT_STACK_DEPTH=64
1514# CONFIG_DEBUG_STACKOVERFLOW is not set 1564# CONFIG_DEBUG_STACKOVERFLOW is not set
1515# CONFIG_DEBUG_STACK_USAGE is not set 1565# CONFIG_DEBUG_STACK_USAGE is not set
1516# CONFIG_DEBUG_PAGEALLOC is not set
1517# CONFIG_CODE_PATCHING_SELFTEST is not set 1566# CONFIG_CODE_PATCHING_SELFTEST is not set
1518# CONFIG_FTR_FIXUP_SELFTEST is not set 1567# CONFIG_FTR_FIXUP_SELFTEST is not set
1519# CONFIG_MSI_BITMAP_SELFTEST is not set 1568# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1544,10 +1593,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1544CONFIG_CRYPTO_HASH=y 1593CONFIG_CRYPTO_HASH=y
1545CONFIG_CRYPTO_HASH2=y 1594CONFIG_CRYPTO_HASH2=y
1546CONFIG_CRYPTO_RNG2=y 1595CONFIG_CRYPTO_RNG2=y
1596CONFIG_CRYPTO_PCOMP=y
1547CONFIG_CRYPTO_MANAGER=y 1597CONFIG_CRYPTO_MANAGER=y
1548CONFIG_CRYPTO_MANAGER2=y 1598CONFIG_CRYPTO_MANAGER2=y
1549# CONFIG_CRYPTO_GF128MUL is not set 1599# CONFIG_CRYPTO_GF128MUL is not set
1550# CONFIG_CRYPTO_NULL is not set 1600# CONFIG_CRYPTO_NULL is not set
1601CONFIG_CRYPTO_WORKQUEUE=y
1551# CONFIG_CRYPTO_CRYPTD is not set 1602# CONFIG_CRYPTO_CRYPTD is not set
1552# CONFIG_CRYPTO_AUTHENC is not set 1603# CONFIG_CRYPTO_AUTHENC is not set
1553# CONFIG_CRYPTO_TEST is not set 1604# CONFIG_CRYPTO_TEST is not set
@@ -1616,6 +1667,7 @@ CONFIG_CRYPTO_DES=y
1616# Compression 1667# Compression
1617# 1668#
1618# CONFIG_CRYPTO_DEFLATE is not set 1669# CONFIG_CRYPTO_DEFLATE is not set
1670# CONFIG_CRYPTO_ZLIB is not set
1619# CONFIG_CRYPTO_LZO is not set 1671# CONFIG_CRYPTO_LZO is not set
1620 1672
1621# 1673#
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index 03db97c6cf33..af4952feba36 100644
--- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:49 2009 4# Wed May 13 17:22:06 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC831x_RDB=y
183CONFIG_PPC_MPC831x=y 192CONFIG_PPC_MPC831x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_DEBUG is not set 288# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -481,7 +495,6 @@ CONFIG_MTD_NAND_IDS=y
481# LPDDR flash memory drivers 495# LPDDR flash memory drivers
482# 496#
483# CONFIG_MTD_LPDDR is not set 497# CONFIG_MTD_LPDDR is not set
484# CONFIG_MTD_QINFO_PROBE is not set
485 498
486# 499#
487# UBI - Unsorted block images 500# UBI - Unsorted block images
@@ -512,13 +525,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
512# CONFIG_BLK_DEV_HD is not set 525# CONFIG_BLK_DEV_HD is not set
513CONFIG_MISC_DEVICES=y 526CONFIG_MISC_DEVICES=y
514# CONFIG_PHANTOM is not set 527# CONFIG_PHANTOM is not set
515# CONFIG_EEPROM_93CX6 is not set
516# CONFIG_SGI_IOC4 is not set 528# CONFIG_SGI_IOC4 is not set
517# CONFIG_TIFM_CORE is not set 529# CONFIG_TIFM_CORE is not set
518# CONFIG_ICS932S401 is not set 530# CONFIG_ICS932S401 is not set
519# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
520# CONFIG_HP_ILO is not set 532# CONFIG_HP_ILO is not set
533# CONFIG_ISL29003 is not set
521# CONFIG_C2PORT is not set 534# CONFIG_C2PORT is not set
535
536#
537# EEPROM support
538#
539# CONFIG_EEPROM_AT24 is not set
540# CONFIG_EEPROM_AT25 is not set
541# CONFIG_EEPROM_LEGACY is not set
542# CONFIG_EEPROM_93CX6 is not set
522CONFIG_HAVE_IDE=y 543CONFIG_HAVE_IDE=y
523# CONFIG_IDE is not set 544# CONFIG_IDE is not set
524 545
@@ -576,9 +597,11 @@ CONFIG_SCSI_LOWLEVEL=y
576# CONFIG_MEGARAID_NEWGEN is not set 597# CONFIG_MEGARAID_NEWGEN is not set
577# CONFIG_MEGARAID_LEGACY is not set 598# CONFIG_MEGARAID_LEGACY is not set
578# CONFIG_MEGARAID_SAS is not set 599# CONFIG_MEGARAID_SAS is not set
600# CONFIG_SCSI_MPT2SAS is not set
579# CONFIG_SCSI_HPTIOP is not set 601# CONFIG_SCSI_HPTIOP is not set
580# CONFIG_SCSI_BUSLOGIC is not set 602# CONFIG_SCSI_BUSLOGIC is not set
581# CONFIG_LIBFC is not set 603# CONFIG_LIBFC is not set
604# CONFIG_LIBFCOE is not set
582# CONFIG_FCOE is not set 605# CONFIG_FCOE is not set
583# CONFIG_SCSI_DMX3191D is not set 606# CONFIG_SCSI_DMX3191D is not set
584# CONFIG_SCSI_EATA is not set 607# CONFIG_SCSI_EATA is not set
@@ -601,6 +624,7 @@ CONFIG_SCSI_LOWLEVEL=y
601# CONFIG_SCSI_DEBUG is not set 624# CONFIG_SCSI_DEBUG is not set
602# CONFIG_SCSI_SRP is not set 625# CONFIG_SCSI_SRP is not set
603# CONFIG_SCSI_DH is not set 626# CONFIG_SCSI_DH is not set
627# CONFIG_SCSI_OSD_INITIATOR is not set
604CONFIG_ATA=y 628CONFIG_ATA=y
605# CONFIG_ATA_NONSTANDARD is not set 629# CONFIG_ATA_NONSTANDARD is not set
606CONFIG_SATA_PMP=y 630CONFIG_SATA_PMP=y
@@ -687,6 +711,7 @@ CONFIG_MD_RAID1=y
687# CONFIG_I2O is not set 711# CONFIG_I2O is not set
688# CONFIG_MACINTOSH_DRIVERS is not set 712# CONFIG_MACINTOSH_DRIVERS is not set
689CONFIG_NETDEVICES=y 713CONFIG_NETDEVICES=y
714CONFIG_COMPAT_NET_DEV_OPS=y
690# CONFIG_DUMMY is not set 715# CONFIG_DUMMY is not set
691# CONFIG_BONDING is not set 716# CONFIG_BONDING is not set
692# CONFIG_MACVLAN is not set 717# CONFIG_MACVLAN is not set
@@ -721,6 +746,8 @@ CONFIG_MII=y
721# CONFIG_CASSINI is not set 746# CONFIG_CASSINI is not set
722# CONFIG_NET_VENDOR_3COM is not set 747# CONFIG_NET_VENDOR_3COM is not set
723# CONFIG_ENC28J60 is not set 748# CONFIG_ENC28J60 is not set
749# CONFIG_ETHOC is not set
750# CONFIG_DNET is not set
724# CONFIG_NET_TULIP is not set 751# CONFIG_NET_TULIP is not set
725# CONFIG_HP100 is not set 752# CONFIG_HP100 is not set
726# CONFIG_IBM_NEW_EMAC_ZMII is not set 753# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -758,6 +785,7 @@ CONFIG_NETDEV_1000=y
758# CONFIG_E1000E is not set 785# CONFIG_E1000E is not set
759# CONFIG_IP1000 is not set 786# CONFIG_IP1000 is not set
760# CONFIG_IGB is not set 787# CONFIG_IGB is not set
788# CONFIG_IGBVF is not set
761# CONFIG_NS83820 is not set 789# CONFIG_NS83820 is not set
762# CONFIG_HAMACHI is not set 790# CONFIG_HAMACHI is not set
763# CONFIG_YELLOWFIN is not set 791# CONFIG_YELLOWFIN is not set
@@ -768,11 +796,12 @@ CONFIG_NETDEV_1000=y
768# CONFIG_VIA_VELOCITY is not set 796# CONFIG_VIA_VELOCITY is not set
769# CONFIG_TIGON3 is not set 797# CONFIG_TIGON3 is not set
770# CONFIG_BNX2 is not set 798# CONFIG_BNX2 is not set
799CONFIG_FSL_PQ_MDIO=y
771CONFIG_GIANFAR=y 800CONFIG_GIANFAR=y
772# CONFIG_MV643XX_ETH is not set
773# CONFIG_QLA3XXX is not set 801# CONFIG_QLA3XXX is not set
774# CONFIG_ATL1 is not set 802# CONFIG_ATL1 is not set
775# CONFIG_ATL1E is not set 803# CONFIG_ATL1E is not set
804# CONFIG_ATL1C is not set
776# CONFIG_JME is not set 805# CONFIG_JME is not set
777CONFIG_NETDEV_10000=y 806CONFIG_NETDEV_10000=y
778# CONFIG_CHELSIO_T1 is not set 807# CONFIG_CHELSIO_T1 is not set
@@ -782,6 +811,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
782# CONFIG_IXGBE is not set 811# CONFIG_IXGBE is not set
783# CONFIG_IXGB is not set 812# CONFIG_IXGB is not set
784# CONFIG_S2IO is not set 813# CONFIG_S2IO is not set
814# CONFIG_VXGE is not set
785# CONFIG_MYRI10GE is not set 815# CONFIG_MYRI10GE is not set
786# CONFIG_NETXEN_NIC is not set 816# CONFIG_NETXEN_NIC is not set
787# CONFIG_NIU is not set 817# CONFIG_NIU is not set
@@ -791,6 +821,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
791# CONFIG_BNX2X is not set 821# CONFIG_BNX2X is not set
792# CONFIG_QLGE is not set 822# CONFIG_QLGE is not set
793# CONFIG_SFC is not set 823# CONFIG_SFC is not set
824# CONFIG_BE2NET is not set
794# CONFIG_TR is not set 825# CONFIG_TR is not set
795 826
796# 827#
@@ -798,7 +829,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
798# 829#
799# CONFIG_WLAN_PRE80211 is not set 830# CONFIG_WLAN_PRE80211 is not set
800# CONFIG_WLAN_80211 is not set 831# CONFIG_WLAN_80211 is not set
801# CONFIG_IWLWIFI_LEDS is not set
802 832
803# 833#
804# Enable WiMAX (Networking options) to see the WiMAX drivers 834# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -876,6 +906,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
876# 906#
877# Non-8250 serial port support 907# Non-8250 serial port support
878# 908#
909# CONFIG_SERIAL_MAX3100 is not set
879# CONFIG_SERIAL_UARTLITE is not set 910# CONFIG_SERIAL_UARTLITE is not set
880CONFIG_SERIAL_CORE=y 911CONFIG_SERIAL_CORE=y
881CONFIG_SERIAL_CORE_CONSOLE=y 912CONFIG_SERIAL_CORE_CONSOLE=y
@@ -888,6 +919,7 @@ CONFIG_LEGACY_PTY_COUNT=256
888# CONFIG_HVC_UDBG is not set 919# CONFIG_HVC_UDBG is not set
889# CONFIG_IPMI_HANDLER is not set 920# CONFIG_IPMI_HANDLER is not set
890CONFIG_HW_RANDOM=y 921CONFIG_HW_RANDOM=y
922# CONFIG_HW_RANDOM_TIMERIOMEM is not set
891# CONFIG_NVRAM is not set 923# CONFIG_NVRAM is not set
892# CONFIG_R3964 is not set 924# CONFIG_R3964 is not set
893# CONFIG_APPLICOM is not set 925# CONFIG_APPLICOM is not set
@@ -950,12 +982,9 @@ CONFIG_I2C_MPC=y
950# Miscellaneous I2C Chip support 982# Miscellaneous I2C Chip support
951# 983#
952# CONFIG_DS1682 is not set 984# CONFIG_DS1682 is not set
953# CONFIG_EEPROM_AT24 is not set
954# CONFIG_EEPROM_LEGACY is not set
955# CONFIG_SENSORS_PCF8574 is not set 985# CONFIG_SENSORS_PCF8574 is not set
956# CONFIG_PCF8575 is not set 986# CONFIG_PCF8575 is not set
957# CONFIG_SENSORS_PCA9539 is not set 987# CONFIG_SENSORS_PCA9539 is not set
958# CONFIG_SENSORS_PCF8591 is not set
959# CONFIG_SENSORS_MAX6875 is not set 988# CONFIG_SENSORS_MAX6875 is not set
960# CONFIG_SENSORS_TSL2550 is not set 989# CONFIG_SENSORS_TSL2550 is not set
961# CONFIG_I2C_DEBUG_CORE is not set 990# CONFIG_I2C_DEBUG_CORE is not set
@@ -975,7 +1004,6 @@ CONFIG_SPI_MPC83xx=y
975# 1004#
976# SPI Protocol Masters 1005# SPI Protocol Masters
977# 1006#
978# CONFIG_EEPROM_AT25 is not set
979# CONFIG_SPI_SPIDEV is not set 1007# CONFIG_SPI_SPIDEV is not set
980# CONFIG_SPI_TLE62X0 is not set 1008# CONFIG_SPI_TLE62X0 is not set
981CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 1009CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -1003,6 +1031,7 @@ CONFIG_HWMON=y
1003# CONFIG_SENSORS_F71805F is not set 1031# CONFIG_SENSORS_F71805F is not set
1004# CONFIG_SENSORS_F71882FG is not set 1032# CONFIG_SENSORS_F71882FG is not set
1005# CONFIG_SENSORS_F75375S is not set 1033# CONFIG_SENSORS_F75375S is not set
1034# CONFIG_SENSORS_G760A is not set
1006# CONFIG_SENSORS_GL518SM is not set 1035# CONFIG_SENSORS_GL518SM is not set
1007# CONFIG_SENSORS_GL520SM is not set 1036# CONFIG_SENSORS_GL520SM is not set
1008# CONFIG_SENSORS_IT87 is not set 1037# CONFIG_SENSORS_IT87 is not set
@@ -1018,12 +1047,15 @@ CONFIG_HWMON=y
1018# CONFIG_SENSORS_LM90 is not set 1047# CONFIG_SENSORS_LM90 is not set
1019# CONFIG_SENSORS_LM92 is not set 1048# CONFIG_SENSORS_LM92 is not set
1020# CONFIG_SENSORS_LM93 is not set 1049# CONFIG_SENSORS_LM93 is not set
1050# CONFIG_SENSORS_LTC4215 is not set
1021# CONFIG_SENSORS_LTC4245 is not set 1051# CONFIG_SENSORS_LTC4245 is not set
1052# CONFIG_SENSORS_LM95241 is not set
1022# CONFIG_SENSORS_MAX1111 is not set 1053# CONFIG_SENSORS_MAX1111 is not set
1023# CONFIG_SENSORS_MAX1619 is not set 1054# CONFIG_SENSORS_MAX1619 is not set
1024# CONFIG_SENSORS_MAX6650 is not set 1055# CONFIG_SENSORS_MAX6650 is not set
1025# CONFIG_SENSORS_PC87360 is not set 1056# CONFIG_SENSORS_PC87360 is not set
1026# CONFIG_SENSORS_PC87427 is not set 1057# CONFIG_SENSORS_PC87427 is not set
1058# CONFIG_SENSORS_PCF8591 is not set
1027# CONFIG_SENSORS_SIS5595 is not set 1059# CONFIG_SENSORS_SIS5595 is not set
1028# CONFIG_SENSORS_DME1737 is not set 1060# CONFIG_SENSORS_DME1737 is not set
1029# CONFIG_SENSORS_SMSC47M1 is not set 1061# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1042,6 +1074,7 @@ CONFIG_HWMON=y
1042# CONFIG_SENSORS_W83L786NG is not set 1074# CONFIG_SENSORS_W83L786NG is not set
1043# CONFIG_SENSORS_W83627HF is not set 1075# CONFIG_SENSORS_W83627HF is not set
1044# CONFIG_SENSORS_W83627EHF is not set 1076# CONFIG_SENSORS_W83627EHF is not set
1077# CONFIG_SENSORS_LIS3_SPI is not set
1045# CONFIG_HWMON_DEBUG_CHIP is not set 1078# CONFIG_HWMON_DEBUG_CHIP is not set
1046# CONFIG_THERMAL is not set 1079# CONFIG_THERMAL is not set
1047# CONFIG_THERMAL_HWMON is not set 1080# CONFIG_THERMAL_HWMON is not set
@@ -1138,7 +1171,6 @@ CONFIG_HID=y
1138# 1171#
1139# Special HID drivers 1172# Special HID drivers
1140# 1173#
1141CONFIG_HID_COMPAT=y
1142CONFIG_USB_SUPPORT=y 1174CONFIG_USB_SUPPORT=y
1143CONFIG_USB_ARCH_HAS_HCD=y 1175CONFIG_USB_ARCH_HAS_HCD=y
1144CONFIG_USB_ARCH_HAS_OHCI=y 1176CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1196,11 +1228,11 @@ CONFIG_USB_UHCI_HCD=y
1196# CONFIG_USB_TMC is not set 1228# CONFIG_USB_TMC is not set
1197 1229
1198# 1230#
1199# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1231# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1200# 1232#
1201 1233
1202# 1234#
1203# see USB_STORAGE Help for more information 1235# also be needed; see USB_STORAGE Help for more info
1204# 1236#
1205CONFIG_USB_STORAGE=y 1237CONFIG_USB_STORAGE=y
1206# CONFIG_USB_STORAGE_DEBUG is not set 1238# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1242,7 +1274,6 @@ CONFIG_USB_STORAGE=y
1242# CONFIG_USB_LED is not set 1274# CONFIG_USB_LED is not set
1243# CONFIG_USB_CYPRESS_CY7C63 is not set 1275# CONFIG_USB_CYPRESS_CY7C63 is not set
1244# CONFIG_USB_CYTHERM is not set 1276# CONFIG_USB_CYTHERM is not set
1245# CONFIG_USB_PHIDGET is not set
1246# CONFIG_USB_IDMOUSE is not set 1277# CONFIG_USB_IDMOUSE is not set
1247# CONFIG_USB_FTDI_ELAN is not set 1278# CONFIG_USB_FTDI_ELAN is not set
1248# CONFIG_USB_APPLEDISPLAY is not set 1279# CONFIG_USB_APPLEDISPLAY is not set
@@ -1289,6 +1320,7 @@ CONFIG_USB_ETH_RNDIS=y
1289# 1320#
1290# OTG and related infrastructure 1321# OTG and related infrastructure
1291# 1322#
1323# CONFIG_NOP_USB_XCEIV is not set
1292# CONFIG_UWB is not set 1324# CONFIG_UWB is not set
1293# CONFIG_MMC is not set 1325# CONFIG_MMC is not set
1294# CONFIG_MEMSTICK is not set 1326# CONFIG_MEMSTICK is not set
@@ -1357,8 +1389,9 @@ CONFIG_RTC_DRV_DS1307=y
1357# 1389#
1358# on-CPU RTC drivers 1390# on-CPU RTC drivers
1359# 1391#
1360# CONFIG_RTC_DRV_PPC is not set 1392# CONFIG_RTC_DRV_GENERIC is not set
1361# CONFIG_DMADEVICES is not set 1393# CONFIG_DMADEVICES is not set
1394# CONFIG_AUXDISPLAY is not set
1362# CONFIG_UIO is not set 1395# CONFIG_UIO is not set
1363# CONFIG_STAGING is not set 1396# CONFIG_STAGING is not set
1364 1397
@@ -1369,6 +1402,7 @@ CONFIG_EXT2_FS=y
1369# CONFIG_EXT2_FS_XATTR is not set 1402# CONFIG_EXT2_FS_XATTR is not set
1370# CONFIG_EXT2_FS_XIP is not set 1403# CONFIG_EXT2_FS_XIP is not set
1371CONFIG_EXT3_FS=y 1404CONFIG_EXT3_FS=y
1405# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1372CONFIG_EXT3_FS_XATTR=y 1406CONFIG_EXT3_FS_XATTR=y
1373# CONFIG_EXT3_FS_POSIX_ACL is not set 1407# CONFIG_EXT3_FS_POSIX_ACL is not set
1374# CONFIG_EXT3_FS_SECURITY is not set 1408# CONFIG_EXT3_FS_SECURITY is not set
@@ -1391,6 +1425,11 @@ CONFIG_INOTIFY_USER=y
1391# CONFIG_FUSE_FS is not set 1425# CONFIG_FUSE_FS is not set
1392 1426
1393# 1427#
1428# Caches
1429#
1430# CONFIG_FSCACHE is not set
1431
1432#
1394# CD-ROM/DVD Filesystems 1433# CD-ROM/DVD Filesystems
1395# 1434#
1396# CONFIG_ISO9660_FS is not set 1435# CONFIG_ISO9660_FS is not set
@@ -1444,6 +1483,7 @@ CONFIG_JFFS2_RTIME=y
1444# CONFIG_ROMFS_FS is not set 1483# CONFIG_ROMFS_FS is not set
1445# CONFIG_SYSV_FS is not set 1484# CONFIG_SYSV_FS is not set
1446# CONFIG_UFS_FS is not set 1485# CONFIG_UFS_FS is not set
1486# CONFIG_NILFS2_FS is not set
1447CONFIG_NETWORK_FILESYSTEMS=y 1487CONFIG_NETWORK_FILESYSTEMS=y
1448CONFIG_NFS_FS=y 1488CONFIG_NFS_FS=y
1449CONFIG_NFS_V3=y 1489CONFIG_NFS_V3=y
@@ -1456,7 +1496,6 @@ CONFIG_LOCKD_V4=y
1456CONFIG_NFS_COMMON=y 1496CONFIG_NFS_COMMON=y
1457CONFIG_SUNRPC=y 1497CONFIG_SUNRPC=y
1458CONFIG_SUNRPC_GSS=y 1498CONFIG_SUNRPC_GSS=y
1459# CONFIG_SUNRPC_REGISTER_V4 is not set
1460CONFIG_RPCSEC_GSS_KRB5=y 1499CONFIG_RPCSEC_GSS_KRB5=y
1461# CONFIG_RPCSEC_GSS_SPKM3 is not set 1500# CONFIG_RPCSEC_GSS_SPKM3 is not set
1462# CONFIG_SMB_FS is not set 1501# CONFIG_SMB_FS is not set
@@ -1488,6 +1527,7 @@ CONFIG_MSDOS_PARTITION=y
1488# CONFIG_SYSV68_PARTITION is not set 1527# CONFIG_SYSV68_PARTITION is not set
1489# CONFIG_NLS is not set 1528# CONFIG_NLS is not set
1490# CONFIG_DLM is not set 1529# CONFIG_DLM is not set
1530# CONFIG_BINARY_PRINTF is not set
1491 1531
1492# 1532#
1493# Library routines 1533# Library routines
@@ -1503,11 +1543,12 @@ CONFIG_CRC32=y
1503# CONFIG_LIBCRC32C is not set 1543# CONFIG_LIBCRC32C is not set
1504CONFIG_ZLIB_INFLATE=y 1544CONFIG_ZLIB_INFLATE=y
1505CONFIG_ZLIB_DEFLATE=y 1545CONFIG_ZLIB_DEFLATE=y
1506CONFIG_PLIST=y 1546CONFIG_DECOMPRESS_GZIP=y
1507CONFIG_HAS_IOMEM=y 1547CONFIG_HAS_IOMEM=y
1508CONFIG_HAS_IOPORT=y 1548CONFIG_HAS_IOPORT=y
1509CONFIG_HAS_DMA=y 1549CONFIG_HAS_DMA=y
1510CONFIG_HAVE_LMB=y 1550CONFIG_HAVE_LMB=y
1551CONFIG_NLATTR=y
1511 1552
1512# 1553#
1513# Kernel hacking 1554# Kernel hacking
@@ -1525,6 +1566,9 @@ CONFIG_DEBUG_KERNEL=y
1525CONFIG_DETECT_SOFTLOCKUP=y 1566CONFIG_DETECT_SOFTLOCKUP=y
1526# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1567# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1527CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1568CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1569CONFIG_DETECT_HUNG_TASK=y
1570# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1571CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1528CONFIG_SCHED_DEBUG=y 1572CONFIG_SCHED_DEBUG=y
1529# CONFIG_SCHEDSTATS is not set 1573# CONFIG_SCHEDSTATS is not set
1530# CONFIG_TIMER_STATS is not set 1574# CONFIG_TIMER_STATS is not set
@@ -1554,9 +1598,12 @@ CONFIG_SCHED_DEBUG=y
1554# CONFIG_FAULT_INJECTION is not set 1598# CONFIG_FAULT_INJECTION is not set
1555# CONFIG_LATENCYTOP is not set 1599# CONFIG_LATENCYTOP is not set
1556CONFIG_SYSCTL_SYSCALL_CHECK=y 1600CONFIG_SYSCTL_SYSCALL_CHECK=y
1601# CONFIG_DEBUG_PAGEALLOC is not set
1557CONFIG_HAVE_FUNCTION_TRACER=y 1602CONFIG_HAVE_FUNCTION_TRACER=y
1603CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1558CONFIG_HAVE_DYNAMIC_FTRACE=y 1604CONFIG_HAVE_DYNAMIC_FTRACE=y
1559CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1605CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1606CONFIG_TRACING_SUPPORT=y
1560 1607
1561# 1608#
1562# Tracers 1609# Tracers
@@ -1564,17 +1611,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1564# CONFIG_FUNCTION_TRACER is not set 1611# CONFIG_FUNCTION_TRACER is not set
1565# CONFIG_SCHED_TRACER is not set 1612# CONFIG_SCHED_TRACER is not set
1566# CONFIG_CONTEXT_SWITCH_TRACER is not set 1613# CONFIG_CONTEXT_SWITCH_TRACER is not set
1614# CONFIG_EVENT_TRACER is not set
1567# CONFIG_BOOT_TRACER is not set 1615# CONFIG_BOOT_TRACER is not set
1568# CONFIG_TRACE_BRANCH_PROFILING is not set 1616# CONFIG_TRACE_BRANCH_PROFILING is not set
1569# CONFIG_STACK_TRACER is not set 1617# CONFIG_STACK_TRACER is not set
1570# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1618# CONFIG_KMEMTRACE is not set
1619# CONFIG_WORKQUEUE_TRACER is not set
1620# CONFIG_BLK_DEV_IO_TRACE is not set
1571# CONFIG_SAMPLES is not set 1621# CONFIG_SAMPLES is not set
1572CONFIG_HAVE_ARCH_KGDB=y 1622CONFIG_HAVE_ARCH_KGDB=y
1573# CONFIG_KGDB is not set 1623# CONFIG_KGDB is not set
1574CONFIG_PRINT_STACK_DEPTH=64 1624CONFIG_PRINT_STACK_DEPTH=64
1575# CONFIG_DEBUG_STACKOVERFLOW is not set 1625# CONFIG_DEBUG_STACKOVERFLOW is not set
1576# CONFIG_DEBUG_STACK_USAGE is not set 1626# CONFIG_DEBUG_STACK_USAGE is not set
1577# CONFIG_DEBUG_PAGEALLOC is not set
1578# CONFIG_CODE_PATCHING_SELFTEST is not set 1627# CONFIG_CODE_PATCHING_SELFTEST is not set
1579# CONFIG_FTR_FIXUP_SELFTEST is not set 1628# CONFIG_FTR_FIXUP_SELFTEST is not set
1580# CONFIG_MSI_BITMAP_SELFTEST is not set 1629# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1605,10 +1654,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1605CONFIG_CRYPTO_HASH=y 1654CONFIG_CRYPTO_HASH=y
1606CONFIG_CRYPTO_HASH2=y 1655CONFIG_CRYPTO_HASH2=y
1607CONFIG_CRYPTO_RNG2=y 1656CONFIG_CRYPTO_RNG2=y
1657CONFIG_CRYPTO_PCOMP=y
1608CONFIG_CRYPTO_MANAGER=y 1658CONFIG_CRYPTO_MANAGER=y
1609CONFIG_CRYPTO_MANAGER2=y 1659CONFIG_CRYPTO_MANAGER2=y
1610# CONFIG_CRYPTO_GF128MUL is not set 1660# CONFIG_CRYPTO_GF128MUL is not set
1611# CONFIG_CRYPTO_NULL is not set 1661# CONFIG_CRYPTO_NULL is not set
1662CONFIG_CRYPTO_WORKQUEUE=y
1612# CONFIG_CRYPTO_CRYPTD is not set 1663# CONFIG_CRYPTO_CRYPTD is not set
1613# CONFIG_CRYPTO_AUTHENC is not set 1664# CONFIG_CRYPTO_AUTHENC is not set
1614# CONFIG_CRYPTO_TEST is not set 1665# CONFIG_CRYPTO_TEST is not set
@@ -1677,6 +1728,7 @@ CONFIG_CRYPTO_DES=y
1677# Compression 1728# Compression
1678# 1729#
1679# CONFIG_CRYPTO_DEFLATE is not set 1730# CONFIG_CRYPTO_DEFLATE is not set
1731# CONFIG_CRYPTO_ZLIB is not set
1680# CONFIG_CRYPTO_LZO is not set 1732# CONFIG_CRYPTO_LZO is not set
1681 1733
1682# 1734#
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index fb17de53cc02..8c8f660b4fc7 100644
--- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:50 2009 4# Wed May 13 17:22:07 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC832x_MDS=y
183CONFIG_PPC_MPC832x=y 192CONFIG_PPC_MPC832x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -245,9 +256,12 @@ CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 257CONFIG_VIRT_TO_BUS=y
247CONFIG_UNEVICTABLE_LRU=y 258CONFIG_UNEVICTABLE_LRU=y
259CONFIG_HAVE_MLOCK=y
260CONFIG_HAVE_MLOCKED_PAGE_BIT=y
248CONFIG_PPC_4K_PAGES=y 261CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set 262# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set 263# CONFIG_PPC_64K_PAGES is not set
264# CONFIG_PPC_256K_PAGES is not set
251CONFIG_FORCE_MAX_ZONEORDER=11 265CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 266CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 267# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 287# CONFIG_PCI_MSI is not set
274# CONFIG_PCI_LEGACY is not set 288# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -411,13 +425,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
411# CONFIG_BLK_DEV_HD is not set 425# CONFIG_BLK_DEV_HD is not set
412CONFIG_MISC_DEVICES=y 426CONFIG_MISC_DEVICES=y
413# CONFIG_PHANTOM is not set 427# CONFIG_PHANTOM is not set
414# CONFIG_EEPROM_93CX6 is not set
415# CONFIG_SGI_IOC4 is not set 428# CONFIG_SGI_IOC4 is not set
416# CONFIG_TIFM_CORE is not set 429# CONFIG_TIFM_CORE is not set
417# CONFIG_ICS932S401 is not set 430# CONFIG_ICS932S401 is not set
418# CONFIG_ENCLOSURE_SERVICES is not set 431# CONFIG_ENCLOSURE_SERVICES is not set
419# CONFIG_HP_ILO is not set 432# CONFIG_HP_ILO is not set
433# CONFIG_ISL29003 is not set
420# CONFIG_C2PORT is not set 434# CONFIG_C2PORT is not set
435
436#
437# EEPROM support
438#
439# CONFIG_EEPROM_AT24 is not set
440# CONFIG_EEPROM_LEGACY is not set
441# CONFIG_EEPROM_93CX6 is not set
421CONFIG_HAVE_IDE=y 442CONFIG_HAVE_IDE=y
422# CONFIG_IDE is not set 443# CONFIG_IDE is not set
423 444
@@ -475,9 +496,11 @@ CONFIG_SCSI_LOWLEVEL=y
475# CONFIG_MEGARAID_NEWGEN is not set 496# CONFIG_MEGARAID_NEWGEN is not set
476# CONFIG_MEGARAID_LEGACY is not set 497# CONFIG_MEGARAID_LEGACY is not set
477# CONFIG_MEGARAID_SAS is not set 498# CONFIG_MEGARAID_SAS is not set
499# CONFIG_SCSI_MPT2SAS is not set
478# CONFIG_SCSI_HPTIOP is not set 500# CONFIG_SCSI_HPTIOP is not set
479# CONFIG_SCSI_BUSLOGIC is not set 501# CONFIG_SCSI_BUSLOGIC is not set
480# CONFIG_LIBFC is not set 502# CONFIG_LIBFC is not set
503# CONFIG_LIBFCOE is not set
481# CONFIG_FCOE is not set 504# CONFIG_FCOE is not set
482# CONFIG_SCSI_DMX3191D is not set 505# CONFIG_SCSI_DMX3191D is not set
483# CONFIG_SCSI_EATA is not set 506# CONFIG_SCSI_EATA is not set
@@ -499,6 +522,7 @@ CONFIG_SCSI_LOWLEVEL=y
499# CONFIG_SCSI_DEBUG is not set 522# CONFIG_SCSI_DEBUG is not set
500# CONFIG_SCSI_SRP is not set 523# CONFIG_SCSI_SRP is not set
501# CONFIG_SCSI_DH is not set 524# CONFIG_SCSI_DH is not set
525# CONFIG_SCSI_OSD_INITIATOR is not set
502# CONFIG_ATA is not set 526# CONFIG_ATA is not set
503# CONFIG_MD is not set 527# CONFIG_MD is not set
504# CONFIG_FUSION is not set 528# CONFIG_FUSION is not set
@@ -515,6 +539,7 @@ CONFIG_SCSI_LOWLEVEL=y
515# CONFIG_I2O is not set 539# CONFIG_I2O is not set
516# CONFIG_MACINTOSH_DRIVERS is not set 540# CONFIG_MACINTOSH_DRIVERS is not set
517CONFIG_NETDEVICES=y 541CONFIG_NETDEVICES=y
542CONFIG_COMPAT_NET_DEV_OPS=y
518# CONFIG_DUMMY is not set 543# CONFIG_DUMMY is not set
519# CONFIG_BONDING is not set 544# CONFIG_BONDING is not set
520# CONFIG_MACVLAN is not set 545# CONFIG_MACVLAN is not set
@@ -548,6 +573,8 @@ CONFIG_MII=y
548# CONFIG_SUNGEM is not set 573# CONFIG_SUNGEM is not set
549# CONFIG_CASSINI is not set 574# CONFIG_CASSINI is not set
550# CONFIG_NET_VENDOR_3COM is not set 575# CONFIG_NET_VENDOR_3COM is not set
576# CONFIG_ETHOC is not set
577# CONFIG_DNET is not set
551# CONFIG_NET_TULIP is not set 578# CONFIG_NET_TULIP is not set
552# CONFIG_HP100 is not set 579# CONFIG_HP100 is not set
553# CONFIG_IBM_NEW_EMAC_ZMII is not set 580# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -567,6 +594,7 @@ CONFIG_NETDEV_1000=y
567# CONFIG_E1000E is not set 594# CONFIG_E1000E is not set
568# CONFIG_IP1000 is not set 595# CONFIG_IP1000 is not set
569# CONFIG_IGB is not set 596# CONFIG_IGB is not set
597# CONFIG_IGBVF is not set
570# CONFIG_NS83820 is not set 598# CONFIG_NS83820 is not set
571# CONFIG_HAMACHI is not set 599# CONFIG_HAMACHI is not set
572# CONFIG_YELLOWFIN is not set 600# CONFIG_YELLOWFIN is not set
@@ -577,14 +605,15 @@ CONFIG_NETDEV_1000=y
577# CONFIG_VIA_VELOCITY is not set 605# CONFIG_VIA_VELOCITY is not set
578# CONFIG_TIGON3 is not set 606# CONFIG_TIGON3 is not set
579# CONFIG_BNX2 is not set 607# CONFIG_BNX2 is not set
608CONFIG_FSL_PQ_MDIO=y
580# CONFIG_GIANFAR is not set 609# CONFIG_GIANFAR is not set
581CONFIG_UCC_GETH=y 610CONFIG_UCC_GETH=y
582# CONFIG_UGETH_MAGIC_PACKET is not set 611# CONFIG_UGETH_MAGIC_PACKET is not set
583# CONFIG_UGETH_TX_ON_DEMAND is not set 612# CONFIG_UGETH_TX_ON_DEMAND is not set
584# CONFIG_MV643XX_ETH is not set
585# CONFIG_QLA3XXX is not set 613# CONFIG_QLA3XXX is not set
586# CONFIG_ATL1 is not set 614# CONFIG_ATL1 is not set
587# CONFIG_ATL1E is not set 615# CONFIG_ATL1E is not set
616# CONFIG_ATL1C is not set
588# CONFIG_JME is not set 617# CONFIG_JME is not set
589CONFIG_NETDEV_10000=y 618CONFIG_NETDEV_10000=y
590# CONFIG_CHELSIO_T1 is not set 619# CONFIG_CHELSIO_T1 is not set
@@ -594,6 +623,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
594# CONFIG_IXGBE is not set 623# CONFIG_IXGBE is not set
595# CONFIG_IXGB is not set 624# CONFIG_IXGB is not set
596# CONFIG_S2IO is not set 625# CONFIG_S2IO is not set
626# CONFIG_VXGE is not set
597# CONFIG_MYRI10GE is not set 627# CONFIG_MYRI10GE is not set
598# CONFIG_NETXEN_NIC is not set 628# CONFIG_NETXEN_NIC is not set
599# CONFIG_NIU is not set 629# CONFIG_NIU is not set
@@ -603,6 +633,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
603# CONFIG_BNX2X is not set 633# CONFIG_BNX2X is not set
604# CONFIG_QLGE is not set 634# CONFIG_QLGE is not set
605# CONFIG_SFC is not set 635# CONFIG_SFC is not set
636# CONFIG_BE2NET is not set
606# CONFIG_TR is not set 637# CONFIG_TR is not set
607 638
608# 639#
@@ -610,7 +641,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
610# 641#
611# CONFIG_WLAN_PRE80211 is not set 642# CONFIG_WLAN_PRE80211 is not set
612# CONFIG_WLAN_80211 is not set 643# CONFIG_WLAN_80211 is not set
613# CONFIG_IWLWIFI_LEDS is not set
614 644
615# 645#
616# Enable WiMAX (Networking options) to see the WiMAX drivers 646# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -692,6 +722,7 @@ CONFIG_LEGACY_PTY_COUNT=256
692# CONFIG_HVC_UDBG is not set 722# CONFIG_HVC_UDBG is not set
693# CONFIG_IPMI_HANDLER is not set 723# CONFIG_IPMI_HANDLER is not set
694CONFIG_HW_RANDOM=y 724CONFIG_HW_RANDOM=y
725# CONFIG_HW_RANDOM_TIMERIOMEM is not set
695# CONFIG_NVRAM is not set 726# CONFIG_NVRAM is not set
696# CONFIG_R3964 is not set 727# CONFIG_R3964 is not set
697# CONFIG_APPLICOM is not set 728# CONFIG_APPLICOM is not set
@@ -753,12 +784,9 @@ CONFIG_I2C_MPC=y
753# Miscellaneous I2C Chip support 784# Miscellaneous I2C Chip support
754# 785#
755# CONFIG_DS1682 is not set 786# CONFIG_DS1682 is not set
756# CONFIG_EEPROM_AT24 is not set
757# CONFIG_EEPROM_LEGACY is not set
758# CONFIG_SENSORS_PCF8574 is not set 787# CONFIG_SENSORS_PCF8574 is not set
759# CONFIG_PCF8575 is not set 788# CONFIG_PCF8575 is not set
760# CONFIG_SENSORS_PCA9539 is not set 789# CONFIG_SENSORS_PCA9539 is not set
761# CONFIG_SENSORS_PCF8591 is not set
762# CONFIG_SENSORS_MAX6875 is not set 790# CONFIG_SENSORS_MAX6875 is not set
763# CONFIG_SENSORS_TSL2550 is not set 791# CONFIG_SENSORS_TSL2550 is not set
764# CONFIG_I2C_DEBUG_CORE is not set 792# CONFIG_I2C_DEBUG_CORE is not set
@@ -790,6 +818,7 @@ CONFIG_HWMON=y
790# CONFIG_SENSORS_F71805F is not set 818# CONFIG_SENSORS_F71805F is not set
791# CONFIG_SENSORS_F71882FG is not set 819# CONFIG_SENSORS_F71882FG is not set
792# CONFIG_SENSORS_F75375S is not set 820# CONFIG_SENSORS_F75375S is not set
821# CONFIG_SENSORS_G760A is not set
793# CONFIG_SENSORS_GL518SM is not set 822# CONFIG_SENSORS_GL518SM is not set
794# CONFIG_SENSORS_GL520SM is not set 823# CONFIG_SENSORS_GL520SM is not set
795# CONFIG_SENSORS_IT87 is not set 824# CONFIG_SENSORS_IT87 is not set
@@ -804,11 +833,14 @@ CONFIG_HWMON=y
804# CONFIG_SENSORS_LM90 is not set 833# CONFIG_SENSORS_LM90 is not set
805# CONFIG_SENSORS_LM92 is not set 834# CONFIG_SENSORS_LM92 is not set
806# CONFIG_SENSORS_LM93 is not set 835# CONFIG_SENSORS_LM93 is not set
836# CONFIG_SENSORS_LTC4215 is not set
807# CONFIG_SENSORS_LTC4245 is not set 837# CONFIG_SENSORS_LTC4245 is not set
838# CONFIG_SENSORS_LM95241 is not set
808# CONFIG_SENSORS_MAX1619 is not set 839# CONFIG_SENSORS_MAX1619 is not set
809# CONFIG_SENSORS_MAX6650 is not set 840# CONFIG_SENSORS_MAX6650 is not set
810# CONFIG_SENSORS_PC87360 is not set 841# CONFIG_SENSORS_PC87360 is not set
811# CONFIG_SENSORS_PC87427 is not set 842# CONFIG_SENSORS_PC87427 is not set
843# CONFIG_SENSORS_PCF8591 is not set
812# CONFIG_SENSORS_SIS5595 is not set 844# CONFIG_SENSORS_SIS5595 is not set
813# CONFIG_SENSORS_DME1737 is not set 845# CONFIG_SENSORS_DME1737 is not set
814# CONFIG_SENSORS_SMSC47M1 is not set 846# CONFIG_SENSORS_SMSC47M1 is not set
@@ -906,7 +938,6 @@ CONFIG_HID=y
906# 938#
907# Special HID drivers 939# Special HID drivers
908# 940#
909CONFIG_HID_COMPAT=y
910CONFIG_USB_SUPPORT=y 941CONFIG_USB_SUPPORT=y
911CONFIG_USB_ARCH_HAS_HCD=y 942CONFIG_USB_ARCH_HAS_HCD=y
912CONFIG_USB_ARCH_HAS_OHCI=y 943CONFIG_USB_ARCH_HAS_OHCI=y
@@ -920,7 +951,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
920# 951#
921 952
922# 953#
923# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 954# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
924# 955#
925# CONFIG_USB_GADGET is not set 956# CONFIG_USB_GADGET is not set
926 957
@@ -988,8 +1019,9 @@ CONFIG_RTC_DRV_DS1374=y
988# 1019#
989# on-CPU RTC drivers 1020# on-CPU RTC drivers
990# 1021#
991# CONFIG_RTC_DRV_PPC is not set 1022# CONFIG_RTC_DRV_GENERIC is not set
992# CONFIG_DMADEVICES is not set 1023# CONFIG_DMADEVICES is not set
1024# CONFIG_AUXDISPLAY is not set
993# CONFIG_UIO is not set 1025# CONFIG_UIO is not set
994# CONFIG_STAGING is not set 1026# CONFIG_STAGING is not set
995 1027
@@ -1000,6 +1032,7 @@ CONFIG_EXT2_FS=y
1000# CONFIG_EXT2_FS_XATTR is not set 1032# CONFIG_EXT2_FS_XATTR is not set
1001# CONFIG_EXT2_FS_XIP is not set 1033# CONFIG_EXT2_FS_XIP is not set
1002CONFIG_EXT3_FS=y 1034CONFIG_EXT3_FS=y
1035# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1003CONFIG_EXT3_FS_XATTR=y 1036CONFIG_EXT3_FS_XATTR=y
1004# CONFIG_EXT3_FS_POSIX_ACL is not set 1037# CONFIG_EXT3_FS_POSIX_ACL is not set
1005# CONFIG_EXT3_FS_SECURITY is not set 1038# CONFIG_EXT3_FS_SECURITY is not set
@@ -1022,6 +1055,11 @@ CONFIG_INOTIFY_USER=y
1022# CONFIG_FUSE_FS is not set 1055# CONFIG_FUSE_FS is not set
1023 1056
1024# 1057#
1058# Caches
1059#
1060# CONFIG_FSCACHE is not set
1061
1062#
1025# CD-ROM/DVD Filesystems 1063# CD-ROM/DVD Filesystems
1026# 1064#
1027# CONFIG_ISO9660_FS is not set 1065# CONFIG_ISO9660_FS is not set
@@ -1064,6 +1102,7 @@ CONFIG_MISC_FILESYSTEMS=y
1064# CONFIG_ROMFS_FS is not set 1102# CONFIG_ROMFS_FS is not set
1065# CONFIG_SYSV_FS is not set 1103# CONFIG_SYSV_FS is not set
1066# CONFIG_UFS_FS is not set 1104# CONFIG_UFS_FS is not set
1105# CONFIG_NILFS2_FS is not set
1067CONFIG_NETWORK_FILESYSTEMS=y 1106CONFIG_NETWORK_FILESYSTEMS=y
1068CONFIG_NFS_FS=y 1107CONFIG_NFS_FS=y
1069CONFIG_NFS_V3=y 1108CONFIG_NFS_V3=y
@@ -1076,7 +1115,6 @@ CONFIG_LOCKD_V4=y
1076CONFIG_NFS_COMMON=y 1115CONFIG_NFS_COMMON=y
1077CONFIG_SUNRPC=y 1116CONFIG_SUNRPC=y
1078CONFIG_SUNRPC_GSS=y 1117CONFIG_SUNRPC_GSS=y
1079# CONFIG_SUNRPC_REGISTER_V4 is not set
1080CONFIG_RPCSEC_GSS_KRB5=y 1118CONFIG_RPCSEC_GSS_KRB5=y
1081# CONFIG_RPCSEC_GSS_SPKM3 is not set 1119# CONFIG_RPCSEC_GSS_SPKM3 is not set
1082# CONFIG_SMB_FS is not set 1120# CONFIG_SMB_FS is not set
@@ -1106,6 +1144,7 @@ CONFIG_PARTITION_ADVANCED=y
1106# CONFIG_DLM is not set 1144# CONFIG_DLM is not set
1107CONFIG_UCC_FAST=y 1145CONFIG_UCC_FAST=y
1108CONFIG_UCC=y 1146CONFIG_UCC=y
1147# CONFIG_BINARY_PRINTF is not set
1109 1148
1110# 1149#
1111# Library routines 1150# Library routines
@@ -1119,11 +1158,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
1119CONFIG_CRC32=y 1158CONFIG_CRC32=y
1120# CONFIG_CRC7 is not set 1159# CONFIG_CRC7 is not set
1121# CONFIG_LIBCRC32C is not set 1160# CONFIG_LIBCRC32C is not set
1122CONFIG_PLIST=y 1161CONFIG_ZLIB_INFLATE=y
1162CONFIG_DECOMPRESS_GZIP=y
1123CONFIG_HAS_IOMEM=y 1163CONFIG_HAS_IOMEM=y
1124CONFIG_HAS_IOPORT=y 1164CONFIG_HAS_IOPORT=y
1125CONFIG_HAS_DMA=y 1165CONFIG_HAS_DMA=y
1126CONFIG_HAVE_LMB=y 1166CONFIG_HAVE_LMB=y
1167CONFIG_NLATTR=y
1127 1168
1128# 1169#
1129# Kernel hacking 1170# Kernel hacking
@@ -1145,13 +1186,24 @@ CONFIG_FRAME_WARN=1024
1145# CONFIG_LATENCYTOP is not set 1186# CONFIG_LATENCYTOP is not set
1146CONFIG_SYSCTL_SYSCALL_CHECK=y 1187CONFIG_SYSCTL_SYSCALL_CHECK=y
1147CONFIG_HAVE_FUNCTION_TRACER=y 1188CONFIG_HAVE_FUNCTION_TRACER=y
1189CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1148CONFIG_HAVE_DYNAMIC_FTRACE=y 1190CONFIG_HAVE_DYNAMIC_FTRACE=y
1149CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1191CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1192CONFIG_TRACING_SUPPORT=y
1150 1193
1151# 1194#
1152# Tracers 1195# Tracers
1153# 1196#
1154# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1197# CONFIG_FUNCTION_TRACER is not set
1198# CONFIG_SCHED_TRACER is not set
1199# CONFIG_CONTEXT_SWITCH_TRACER is not set
1200# CONFIG_EVENT_TRACER is not set
1201# CONFIG_BOOT_TRACER is not set
1202# CONFIG_TRACE_BRANCH_PROFILING is not set
1203# CONFIG_STACK_TRACER is not set
1204# CONFIG_KMEMTRACE is not set
1205# CONFIG_WORKQUEUE_TRACER is not set
1206# CONFIG_BLK_DEV_IO_TRACE is not set
1155# CONFIG_SAMPLES is not set 1207# CONFIG_SAMPLES is not set
1156CONFIG_HAVE_ARCH_KGDB=y 1208CONFIG_HAVE_ARCH_KGDB=y
1157CONFIG_PRINT_STACK_DEPTH=64 1209CONFIG_PRINT_STACK_DEPTH=64
@@ -1180,10 +1232,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1180CONFIG_CRYPTO_HASH=y 1232CONFIG_CRYPTO_HASH=y
1181CONFIG_CRYPTO_HASH2=y 1233CONFIG_CRYPTO_HASH2=y
1182CONFIG_CRYPTO_RNG2=y 1234CONFIG_CRYPTO_RNG2=y
1235CONFIG_CRYPTO_PCOMP=y
1183CONFIG_CRYPTO_MANAGER=y 1236CONFIG_CRYPTO_MANAGER=y
1184CONFIG_CRYPTO_MANAGER2=y 1237CONFIG_CRYPTO_MANAGER2=y
1185# CONFIG_CRYPTO_GF128MUL is not set 1238# CONFIG_CRYPTO_GF128MUL is not set
1186# CONFIG_CRYPTO_NULL is not set 1239# CONFIG_CRYPTO_NULL is not set
1240CONFIG_CRYPTO_WORKQUEUE=y
1187# CONFIG_CRYPTO_CRYPTD is not set 1241# CONFIG_CRYPTO_CRYPTD is not set
1188# CONFIG_CRYPTO_AUTHENC is not set 1242# CONFIG_CRYPTO_AUTHENC is not set
1189# CONFIG_CRYPTO_TEST is not set 1243# CONFIG_CRYPTO_TEST is not set
@@ -1252,6 +1306,7 @@ CONFIG_CRYPTO_DES=y
1252# Compression 1306# Compression
1253# 1307#
1254# CONFIG_CRYPTO_DEFLATE is not set 1308# CONFIG_CRYPTO_DEFLATE is not set
1309# CONFIG_CRYPTO_ZLIB is not set
1255# CONFIG_CRYPTO_LZO is not set 1310# CONFIG_CRYPTO_LZO is not set
1256 1311
1257# 1312#
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index a012ce235203..227dbba76795 100644
--- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:52 2009 4# Wed May 13 17:22:08 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC832x_RDB=y
183CONFIG_PPC_MPC832x=y 192CONFIG_PPC_MPC832x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -245,9 +256,12 @@ CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 257CONFIG_VIRT_TO_BUS=y
247CONFIG_UNEVICTABLE_LRU=y 258CONFIG_UNEVICTABLE_LRU=y
259CONFIG_HAVE_MLOCK=y
260CONFIG_HAVE_MLOCKED_PAGE_BIT=y
248CONFIG_PPC_4K_PAGES=y 261CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set 262# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set 263# CONFIG_PPC_64K_PAGES is not set
264# CONFIG_PPC_256K_PAGES is not set
251CONFIG_FORCE_MAX_ZONEORDER=11 265CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 266CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 267# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 287# CONFIG_PCI_MSI is not set
274# CONFIG_PCI_LEGACY is not set 288# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -413,13 +427,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
413# CONFIG_BLK_DEV_HD is not set 427# CONFIG_BLK_DEV_HD is not set
414CONFIG_MISC_DEVICES=y 428CONFIG_MISC_DEVICES=y
415# CONFIG_PHANTOM is not set 429# CONFIG_PHANTOM is not set
416# CONFIG_EEPROM_93CX6 is not set
417# CONFIG_SGI_IOC4 is not set 430# CONFIG_SGI_IOC4 is not set
418# CONFIG_TIFM_CORE is not set 431# CONFIG_TIFM_CORE is not set
419# CONFIG_ICS932S401 is not set 432# CONFIG_ICS932S401 is not set
420# CONFIG_ENCLOSURE_SERVICES is not set 433# CONFIG_ENCLOSURE_SERVICES is not set
421# CONFIG_HP_ILO is not set 434# CONFIG_HP_ILO is not set
435# CONFIG_ISL29003 is not set
422# CONFIG_C2PORT is not set 436# CONFIG_C2PORT is not set
437
438#
439# EEPROM support
440#
441# CONFIG_EEPROM_AT24 is not set
442# CONFIG_EEPROM_AT25 is not set
443# CONFIG_EEPROM_LEGACY is not set
444# CONFIG_EEPROM_93CX6 is not set
423CONFIG_HAVE_IDE=y 445CONFIG_HAVE_IDE=y
424# CONFIG_IDE is not set 446# CONFIG_IDE is not set
425 447
@@ -477,9 +499,11 @@ CONFIG_SCSI_LOWLEVEL=y
477# CONFIG_MEGARAID_NEWGEN is not set 499# CONFIG_MEGARAID_NEWGEN is not set
478# CONFIG_MEGARAID_LEGACY is not set 500# CONFIG_MEGARAID_LEGACY is not set
479# CONFIG_MEGARAID_SAS is not set 501# CONFIG_MEGARAID_SAS is not set
502# CONFIG_SCSI_MPT2SAS is not set
480# CONFIG_SCSI_HPTIOP is not set 503# CONFIG_SCSI_HPTIOP is not set
481# CONFIG_SCSI_BUSLOGIC is not set 504# CONFIG_SCSI_BUSLOGIC is not set
482# CONFIG_LIBFC is not set 505# CONFIG_LIBFC is not set
506# CONFIG_LIBFCOE is not set
483# CONFIG_FCOE is not set 507# CONFIG_FCOE is not set
484# CONFIG_SCSI_DMX3191D is not set 508# CONFIG_SCSI_DMX3191D is not set
485# CONFIG_SCSI_EATA is not set 509# CONFIG_SCSI_EATA is not set
@@ -501,6 +525,7 @@ CONFIG_SCSI_LOWLEVEL=y
501# CONFIG_SCSI_DEBUG is not set 525# CONFIG_SCSI_DEBUG is not set
502# CONFIG_SCSI_SRP is not set 526# CONFIG_SCSI_SRP is not set
503# CONFIG_SCSI_DH is not set 527# CONFIG_SCSI_DH is not set
528# CONFIG_SCSI_OSD_INITIATOR is not set
504# CONFIG_ATA is not set 529# CONFIG_ATA is not set
505# CONFIG_MD is not set 530# CONFIG_MD is not set
506# CONFIG_FUSION is not set 531# CONFIG_FUSION is not set
@@ -517,6 +542,7 @@ CONFIG_SCSI_LOWLEVEL=y
517# CONFIG_I2O is not set 542# CONFIG_I2O is not set
518# CONFIG_MACINTOSH_DRIVERS is not set 543# CONFIG_MACINTOSH_DRIVERS is not set
519CONFIG_NETDEVICES=y 544CONFIG_NETDEVICES=y
545CONFIG_COMPAT_NET_DEV_OPS=y
520# CONFIG_DUMMY is not set 546# CONFIG_DUMMY is not set
521# CONFIG_BONDING is not set 547# CONFIG_BONDING is not set
522# CONFIG_MACVLAN is not set 548# CONFIG_MACVLAN is not set
@@ -551,6 +577,8 @@ CONFIG_MII=y
551# CONFIG_CASSINI is not set 577# CONFIG_CASSINI is not set
552# CONFIG_NET_VENDOR_3COM is not set 578# CONFIG_NET_VENDOR_3COM is not set
553# CONFIG_ENC28J60 is not set 579# CONFIG_ENC28J60 is not set
580# CONFIG_ETHOC is not set
581# CONFIG_DNET is not set
554# CONFIG_NET_TULIP is not set 582# CONFIG_NET_TULIP is not set
555# CONFIG_HP100 is not set 583# CONFIG_HP100 is not set
556# CONFIG_IBM_NEW_EMAC_ZMII is not set 584# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -570,6 +598,7 @@ CONFIG_E1000=y
570# CONFIG_E1000E is not set 598# CONFIG_E1000E is not set
571# CONFIG_IP1000 is not set 599# CONFIG_IP1000 is not set
572# CONFIG_IGB is not set 600# CONFIG_IGB is not set
601# CONFIG_IGBVF is not set
573# CONFIG_NS83820 is not set 602# CONFIG_NS83820 is not set
574# CONFIG_HAMACHI is not set 603# CONFIG_HAMACHI is not set
575# CONFIG_YELLOWFIN is not set 604# CONFIG_YELLOWFIN is not set
@@ -580,14 +609,15 @@ CONFIG_E1000=y
580# CONFIG_VIA_VELOCITY is not set 609# CONFIG_VIA_VELOCITY is not set
581# CONFIG_TIGON3 is not set 610# CONFIG_TIGON3 is not set
582# CONFIG_BNX2 is not set 611# CONFIG_BNX2 is not set
612CONFIG_FSL_PQ_MDIO=y
583# CONFIG_GIANFAR is not set 613# CONFIG_GIANFAR is not set
584CONFIG_UCC_GETH=y 614CONFIG_UCC_GETH=y
585# CONFIG_UGETH_MAGIC_PACKET is not set 615# CONFIG_UGETH_MAGIC_PACKET is not set
586# CONFIG_UGETH_TX_ON_DEMAND is not set 616# CONFIG_UGETH_TX_ON_DEMAND is not set
587# CONFIG_MV643XX_ETH is not set
588# CONFIG_QLA3XXX is not set 617# CONFIG_QLA3XXX is not set
589# CONFIG_ATL1 is not set 618# CONFIG_ATL1 is not set
590# CONFIG_ATL1E is not set 619# CONFIG_ATL1E is not set
620# CONFIG_ATL1C is not set
591# CONFIG_JME is not set 621# CONFIG_JME is not set
592CONFIG_NETDEV_10000=y 622CONFIG_NETDEV_10000=y
593# CONFIG_CHELSIO_T1 is not set 623# CONFIG_CHELSIO_T1 is not set
@@ -597,6 +627,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
597# CONFIG_IXGBE is not set 627# CONFIG_IXGBE is not set
598# CONFIG_IXGB is not set 628# CONFIG_IXGB is not set
599# CONFIG_S2IO is not set 629# CONFIG_S2IO is not set
630# CONFIG_VXGE is not set
600# CONFIG_MYRI10GE is not set 631# CONFIG_MYRI10GE is not set
601# CONFIG_NETXEN_NIC is not set 632# CONFIG_NETXEN_NIC is not set
602# CONFIG_NIU is not set 633# CONFIG_NIU is not set
@@ -606,6 +637,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
606# CONFIG_BNX2X is not set 637# CONFIG_BNX2X is not set
607# CONFIG_QLGE is not set 638# CONFIG_QLGE is not set
608# CONFIG_SFC is not set 639# CONFIG_SFC is not set
640# CONFIG_BE2NET is not set
609# CONFIG_TR is not set 641# CONFIG_TR is not set
610 642
611# 643#
@@ -613,7 +645,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
613# 645#
614# CONFIG_WLAN_PRE80211 is not set 646# CONFIG_WLAN_PRE80211 is not set
615# CONFIG_WLAN_80211 is not set 647# CONFIG_WLAN_80211 is not set
616# CONFIG_IWLWIFI_LEDS is not set
617 648
618# 649#
619# Enable WiMAX (Networking options) to see the WiMAX drivers 650# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -691,6 +722,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
691# 722#
692# Non-8250 serial port support 723# Non-8250 serial port support
693# 724#
725# CONFIG_SERIAL_MAX3100 is not set
694# CONFIG_SERIAL_UARTLITE is not set 726# CONFIG_SERIAL_UARTLITE is not set
695CONFIG_SERIAL_CORE=y 727CONFIG_SERIAL_CORE=y
696CONFIG_SERIAL_CORE_CONSOLE=y 728CONFIG_SERIAL_CORE_CONSOLE=y
@@ -704,6 +736,7 @@ CONFIG_LEGACY_PTY_COUNT=256
704# CONFIG_HVC_UDBG is not set 736# CONFIG_HVC_UDBG is not set
705# CONFIG_IPMI_HANDLER is not set 737# CONFIG_IPMI_HANDLER is not set
706CONFIG_HW_RANDOM=y 738CONFIG_HW_RANDOM=y
739# CONFIG_HW_RANDOM_TIMERIOMEM is not set
707# CONFIG_NVRAM is not set 740# CONFIG_NVRAM is not set
708CONFIG_GEN_RTC=y 741CONFIG_GEN_RTC=y
709# CONFIG_GEN_RTC_X is not set 742# CONFIG_GEN_RTC_X is not set
@@ -768,12 +801,9 @@ CONFIG_I2C_MPC=y
768# Miscellaneous I2C Chip support 801# Miscellaneous I2C Chip support
769# 802#
770# CONFIG_DS1682 is not set 803# CONFIG_DS1682 is not set
771# CONFIG_EEPROM_AT24 is not set
772# CONFIG_EEPROM_LEGACY is not set
773# CONFIG_SENSORS_PCF8574 is not set 804# CONFIG_SENSORS_PCF8574 is not set
774# CONFIG_PCF8575 is not set 805# CONFIG_PCF8575 is not set
775# CONFIG_SENSORS_PCA9539 is not set 806# CONFIG_SENSORS_PCA9539 is not set
776# CONFIG_SENSORS_PCF8591 is not set
777# CONFIG_SENSORS_MAX6875 is not set 807# CONFIG_SENSORS_MAX6875 is not set
778# CONFIG_SENSORS_TSL2550 is not set 808# CONFIG_SENSORS_TSL2550 is not set
779# CONFIG_I2C_DEBUG_CORE is not set 809# CONFIG_I2C_DEBUG_CORE is not set
@@ -792,7 +822,6 @@ CONFIG_SPI_MPC83xx=y
792# 822#
793# SPI Protocol Masters 823# SPI Protocol Masters
794# 824#
795# CONFIG_EEPROM_AT25 is not set
796# CONFIG_SPI_SPIDEV is not set 825# CONFIG_SPI_SPIDEV is not set
797# CONFIG_SPI_TLE62X0 is not set 826# CONFIG_SPI_TLE62X0 is not set
798CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 827CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -820,6 +849,7 @@ CONFIG_HWMON=y
820# CONFIG_SENSORS_F71805F is not set 849# CONFIG_SENSORS_F71805F is not set
821# CONFIG_SENSORS_F71882FG is not set 850# CONFIG_SENSORS_F71882FG is not set
822# CONFIG_SENSORS_F75375S is not set 851# CONFIG_SENSORS_F75375S is not set
852# CONFIG_SENSORS_G760A is not set
823# CONFIG_SENSORS_GL518SM is not set 853# CONFIG_SENSORS_GL518SM is not set
824# CONFIG_SENSORS_GL520SM is not set 854# CONFIG_SENSORS_GL520SM is not set
825# CONFIG_SENSORS_IT87 is not set 855# CONFIG_SENSORS_IT87 is not set
@@ -835,12 +865,15 @@ CONFIG_HWMON=y
835# CONFIG_SENSORS_LM90 is not set 865# CONFIG_SENSORS_LM90 is not set
836# CONFIG_SENSORS_LM92 is not set 866# CONFIG_SENSORS_LM92 is not set
837# CONFIG_SENSORS_LM93 is not set 867# CONFIG_SENSORS_LM93 is not set
868# CONFIG_SENSORS_LTC4215 is not set
838# CONFIG_SENSORS_LTC4245 is not set 869# CONFIG_SENSORS_LTC4245 is not set
870# CONFIG_SENSORS_LM95241 is not set
839# CONFIG_SENSORS_MAX1111 is not set 871# CONFIG_SENSORS_MAX1111 is not set
840# CONFIG_SENSORS_MAX1619 is not set 872# CONFIG_SENSORS_MAX1619 is not set
841# CONFIG_SENSORS_MAX6650 is not set 873# CONFIG_SENSORS_MAX6650 is not set
842# CONFIG_SENSORS_PC87360 is not set 874# CONFIG_SENSORS_PC87360 is not set
843# CONFIG_SENSORS_PC87427 is not set 875# CONFIG_SENSORS_PC87427 is not set
876# CONFIG_SENSORS_PCF8591 is not set
844# CONFIG_SENSORS_SIS5595 is not set 877# CONFIG_SENSORS_SIS5595 is not set
845# CONFIG_SENSORS_DME1737 is not set 878# CONFIG_SENSORS_DME1737 is not set
846# CONFIG_SENSORS_SMSC47M1 is not set 879# CONFIG_SENSORS_SMSC47M1 is not set
@@ -859,6 +892,7 @@ CONFIG_HWMON=y
859# CONFIG_SENSORS_W83L786NG is not set 892# CONFIG_SENSORS_W83L786NG is not set
860# CONFIG_SENSORS_W83627HF is not set 893# CONFIG_SENSORS_W83627HF is not set
861# CONFIG_SENSORS_W83627EHF is not set 894# CONFIG_SENSORS_W83627EHF is not set
895# CONFIG_SENSORS_LIS3_SPI is not set
862# CONFIG_HWMON_DEBUG_CHIP is not set 896# CONFIG_HWMON_DEBUG_CHIP is not set
863# CONFIG_THERMAL is not set 897# CONFIG_THERMAL is not set
864# CONFIG_THERMAL_HWMON is not set 898# CONFIG_THERMAL_HWMON is not set
@@ -955,7 +989,6 @@ CONFIG_HID=y
955# 989#
956# Special HID drivers 990# Special HID drivers
957# 991#
958CONFIG_HID_COMPAT=y
959CONFIG_USB_SUPPORT=y 992CONFIG_USB_SUPPORT=y
960CONFIG_USB_ARCH_HAS_HCD=y 993CONFIG_USB_ARCH_HAS_HCD=y
961CONFIG_USB_ARCH_HAS_OHCI=y 994CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1012,11 +1045,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1012# CONFIG_USB_TMC is not set 1045# CONFIG_USB_TMC is not set
1013 1046
1014# 1047#
1015# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1048# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1016# 1049#
1017 1050
1018# 1051#
1019# see USB_STORAGE Help for more information 1052# also be needed; see USB_STORAGE Help for more info
1020# 1053#
1021CONFIG_USB_STORAGE=y 1054CONFIG_USB_STORAGE=y
1022# CONFIG_USB_STORAGE_DEBUG is not set 1055# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1058,7 +1091,6 @@ CONFIG_USB_STORAGE=y
1058# CONFIG_USB_LED is not set 1091# CONFIG_USB_LED is not set
1059# CONFIG_USB_CYPRESS_CY7C63 is not set 1092# CONFIG_USB_CYPRESS_CY7C63 is not set
1060# CONFIG_USB_CYTHERM is not set 1093# CONFIG_USB_CYTHERM is not set
1061# CONFIG_USB_PHIDGET is not set
1062# CONFIG_USB_IDMOUSE is not set 1094# CONFIG_USB_IDMOUSE is not set
1063# CONFIG_USB_FTDI_ELAN is not set 1095# CONFIG_USB_FTDI_ELAN is not set
1064# CONFIG_USB_APPLEDISPLAY is not set 1096# CONFIG_USB_APPLEDISPLAY is not set
@@ -1074,6 +1106,7 @@ CONFIG_USB_STORAGE=y
1074# 1106#
1075# OTG and related infrastructure 1107# OTG and related infrastructure
1076# 1108#
1109# CONFIG_NOP_USB_XCEIV is not set
1077# CONFIG_UWB is not set 1110# CONFIG_UWB is not set
1078CONFIG_MMC=y 1111CONFIG_MMC=y
1079# CONFIG_MMC_DEBUG is not set 1112# CONFIG_MMC_DEBUG is not set
@@ -1101,6 +1134,7 @@ CONFIG_MMC_SPI=y
1101# CONFIG_EDAC is not set 1134# CONFIG_EDAC is not set
1102# CONFIG_RTC_CLASS is not set 1135# CONFIG_RTC_CLASS is not set
1103# CONFIG_DMADEVICES is not set 1136# CONFIG_DMADEVICES is not set
1137# CONFIG_AUXDISPLAY is not set
1104# CONFIG_UIO is not set 1138# CONFIG_UIO is not set
1105# CONFIG_STAGING is not set 1139# CONFIG_STAGING is not set
1106 1140
@@ -1111,6 +1145,7 @@ CONFIG_EXT2_FS=y
1111# CONFIG_EXT2_FS_XATTR is not set 1145# CONFIG_EXT2_FS_XATTR is not set
1112# CONFIG_EXT2_FS_XIP is not set 1146# CONFIG_EXT2_FS_XIP is not set
1113CONFIG_EXT3_FS=y 1147CONFIG_EXT3_FS=y
1148# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1114CONFIG_EXT3_FS_XATTR=y 1149CONFIG_EXT3_FS_XATTR=y
1115# CONFIG_EXT3_FS_POSIX_ACL is not set 1150# CONFIG_EXT3_FS_POSIX_ACL is not set
1116# CONFIG_EXT3_FS_SECURITY is not set 1151# CONFIG_EXT3_FS_SECURITY is not set
@@ -1133,6 +1168,11 @@ CONFIG_INOTIFY_USER=y
1133# CONFIG_FUSE_FS is not set 1168# CONFIG_FUSE_FS is not set
1134 1169
1135# 1170#
1171# Caches
1172#
1173# CONFIG_FSCACHE is not set
1174
1175#
1136# CD-ROM/DVD Filesystems 1176# CD-ROM/DVD Filesystems
1137# 1177#
1138# CONFIG_ISO9660_FS is not set 1178# CONFIG_ISO9660_FS is not set
@@ -1178,6 +1218,7 @@ CONFIG_MISC_FILESYSTEMS=y
1178# CONFIG_ROMFS_FS is not set 1218# CONFIG_ROMFS_FS is not set
1179# CONFIG_SYSV_FS is not set 1219# CONFIG_SYSV_FS is not set
1180# CONFIG_UFS_FS is not set 1220# CONFIG_UFS_FS is not set
1221# CONFIG_NILFS2_FS is not set
1181CONFIG_NETWORK_FILESYSTEMS=y 1222CONFIG_NETWORK_FILESYSTEMS=y
1182CONFIG_NFS_FS=y 1223CONFIG_NFS_FS=y
1183CONFIG_NFS_V3=y 1224CONFIG_NFS_V3=y
@@ -1190,7 +1231,6 @@ CONFIG_LOCKD_V4=y
1190CONFIG_NFS_COMMON=y 1231CONFIG_NFS_COMMON=y
1191CONFIG_SUNRPC=y 1232CONFIG_SUNRPC=y
1192CONFIG_SUNRPC_GSS=y 1233CONFIG_SUNRPC_GSS=y
1193# CONFIG_SUNRPC_REGISTER_V4 is not set
1194CONFIG_RPCSEC_GSS_KRB5=y 1234CONFIG_RPCSEC_GSS_KRB5=y
1195# CONFIG_RPCSEC_GSS_SPKM3 is not set 1235# CONFIG_RPCSEC_GSS_SPKM3 is not set
1196# CONFIG_SMB_FS is not set 1236# CONFIG_SMB_FS is not set
@@ -1264,6 +1304,7 @@ CONFIG_NLS_ISO8859_1=y
1264# CONFIG_DLM is not set 1304# CONFIG_DLM is not set
1265CONFIG_UCC_FAST=y 1305CONFIG_UCC_FAST=y
1266CONFIG_UCC=y 1306CONFIG_UCC=y
1307# CONFIG_BINARY_PRINTF is not set
1267 1308
1268# 1309#
1269# Library routines 1310# Library routines
@@ -1277,11 +1318,13 @@ CONFIG_CRC_ITU_T=y
1277CONFIG_CRC32=y 1318CONFIG_CRC32=y
1278CONFIG_CRC7=y 1319CONFIG_CRC7=y
1279# CONFIG_LIBCRC32C is not set 1320# CONFIG_LIBCRC32C is not set
1280CONFIG_PLIST=y 1321CONFIG_ZLIB_INFLATE=y
1322CONFIG_DECOMPRESS_GZIP=y
1281CONFIG_HAS_IOMEM=y 1323CONFIG_HAS_IOMEM=y
1282CONFIG_HAS_IOPORT=y 1324CONFIG_HAS_IOPORT=y
1283CONFIG_HAS_DMA=y 1325CONFIG_HAS_DMA=y
1284CONFIG_HAVE_LMB=y 1326CONFIG_HAVE_LMB=y
1327CONFIG_NLATTR=y
1285 1328
1286# 1329#
1287# Kernel hacking 1330# Kernel hacking
@@ -1303,13 +1346,24 @@ CONFIG_FRAME_WARN=1024
1303# CONFIG_LATENCYTOP is not set 1346# CONFIG_LATENCYTOP is not set
1304CONFIG_SYSCTL_SYSCALL_CHECK=y 1347CONFIG_SYSCTL_SYSCALL_CHECK=y
1305CONFIG_HAVE_FUNCTION_TRACER=y 1348CONFIG_HAVE_FUNCTION_TRACER=y
1349CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1306CONFIG_HAVE_DYNAMIC_FTRACE=y 1350CONFIG_HAVE_DYNAMIC_FTRACE=y
1307CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1351CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1352CONFIG_TRACING_SUPPORT=y
1308 1353
1309# 1354#
1310# Tracers 1355# Tracers
1311# 1356#
1312# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1357# CONFIG_FUNCTION_TRACER is not set
1358# CONFIG_SCHED_TRACER is not set
1359# CONFIG_CONTEXT_SWITCH_TRACER is not set
1360# CONFIG_EVENT_TRACER is not set
1361# CONFIG_BOOT_TRACER is not set
1362# CONFIG_TRACE_BRANCH_PROFILING is not set
1363# CONFIG_STACK_TRACER is not set
1364# CONFIG_KMEMTRACE is not set
1365# CONFIG_WORKQUEUE_TRACER is not set
1366# CONFIG_BLK_DEV_IO_TRACE is not set
1313# CONFIG_SAMPLES is not set 1367# CONFIG_SAMPLES is not set
1314CONFIG_HAVE_ARCH_KGDB=y 1368CONFIG_HAVE_ARCH_KGDB=y
1315CONFIG_PRINT_STACK_DEPTH=64 1369CONFIG_PRINT_STACK_DEPTH=64
@@ -1338,10 +1392,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1338CONFIG_CRYPTO_HASH=y 1392CONFIG_CRYPTO_HASH=y
1339CONFIG_CRYPTO_HASH2=y 1393CONFIG_CRYPTO_HASH2=y
1340CONFIG_CRYPTO_RNG2=y 1394CONFIG_CRYPTO_RNG2=y
1395CONFIG_CRYPTO_PCOMP=y
1341CONFIG_CRYPTO_MANAGER=y 1396CONFIG_CRYPTO_MANAGER=y
1342CONFIG_CRYPTO_MANAGER2=y 1397CONFIG_CRYPTO_MANAGER2=y
1343# CONFIG_CRYPTO_GF128MUL is not set 1398# CONFIG_CRYPTO_GF128MUL is not set
1344# CONFIG_CRYPTO_NULL is not set 1399# CONFIG_CRYPTO_NULL is not set
1400CONFIG_CRYPTO_WORKQUEUE=y
1345# CONFIG_CRYPTO_CRYPTD is not set 1401# CONFIG_CRYPTO_CRYPTD is not set
1346# CONFIG_CRYPTO_AUTHENC is not set 1402# CONFIG_CRYPTO_AUTHENC is not set
1347# CONFIG_CRYPTO_TEST is not set 1403# CONFIG_CRYPTO_TEST is not set
@@ -1410,6 +1466,7 @@ CONFIG_CRYPTO_DES=y
1410# Compression 1466# Compression
1411# 1467#
1412# CONFIG_CRYPTO_DEFLATE is not set 1468# CONFIG_CRYPTO_DEFLATE is not set
1469# CONFIG_CRYPTO_ZLIB is not set
1413# CONFIG_CRYPTO_LZO is not set 1470# CONFIG_CRYPTO_LZO is not set
1414 1471
1415# 1472#
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index 4bcc4a1ff308..24ee7fcac87e 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:53 2009 4# Wed May 13 17:22:09 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC834x_ITX=y
183CONFIG_PPC_MPC834x=y 192CONFIG_PPC_MPC834x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 286# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +309,6 @@ CONFIG_NET=y
294# 309#
295# Networking options 310# Networking options
296# 311#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 312CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -350,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 364# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
367# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 368# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 369# CONFIG_DCB is not set
355 370
@@ -362,7 +377,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 377# CONFIG_IRDA is not set
363# CONFIG_BT is not set 378# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 379# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set
366CONFIG_WIRELESS=y 380CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
368CONFIG_WIRELESS_OLD_REGULATORY=y 382CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -465,7 +479,6 @@ CONFIG_MTD_PHYSMAP=y
465# LPDDR flash memory drivers 479# LPDDR flash memory drivers
466# 480#
467# CONFIG_MTD_LPDDR is not set 481# CONFIG_MTD_LPDDR is not set
468# CONFIG_MTD_QINFO_PROBE is not set
469 482
470# 483#
471# UBI - Unsorted block images 484# UBI - Unsorted block images
@@ -496,13 +509,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
496# CONFIG_BLK_DEV_HD is not set 509# CONFIG_BLK_DEV_HD is not set
497CONFIG_MISC_DEVICES=y 510CONFIG_MISC_DEVICES=y
498# CONFIG_PHANTOM is not set 511# CONFIG_PHANTOM is not set
499# CONFIG_EEPROM_93CX6 is not set
500# CONFIG_SGI_IOC4 is not set 512# CONFIG_SGI_IOC4 is not set
501# CONFIG_TIFM_CORE is not set 513# CONFIG_TIFM_CORE is not set
502# CONFIG_ICS932S401 is not set 514# CONFIG_ICS932S401 is not set
503# CONFIG_ENCLOSURE_SERVICES is not set 515# CONFIG_ENCLOSURE_SERVICES is not set
504# CONFIG_HP_ILO is not set 516# CONFIG_HP_ILO is not set
517# CONFIG_ISL29003 is not set
505# CONFIG_C2PORT is not set 518# CONFIG_C2PORT is not set
519
520#
521# EEPROM support
522#
523# CONFIG_EEPROM_AT24 is not set
524# CONFIG_EEPROM_AT25 is not set
525# CONFIG_EEPROM_LEGACY is not set
526# CONFIG_EEPROM_93CX6 is not set
506CONFIG_HAVE_IDE=y 527CONFIG_HAVE_IDE=y
507CONFIG_IDE=y 528CONFIG_IDE=y
508 529
@@ -608,9 +629,11 @@ CONFIG_SCSI_LOWLEVEL=y
608# CONFIG_MEGARAID_NEWGEN is not set 629# CONFIG_MEGARAID_NEWGEN is not set
609# CONFIG_MEGARAID_LEGACY is not set 630# CONFIG_MEGARAID_LEGACY is not set
610# CONFIG_MEGARAID_SAS is not set 631# CONFIG_MEGARAID_SAS is not set
632# CONFIG_SCSI_MPT2SAS is not set
611# CONFIG_SCSI_HPTIOP is not set 633# CONFIG_SCSI_HPTIOP is not set
612# CONFIG_SCSI_BUSLOGIC is not set 634# CONFIG_SCSI_BUSLOGIC is not set
613# CONFIG_LIBFC is not set 635# CONFIG_LIBFC is not set
636# CONFIG_LIBFCOE is not set
614# CONFIG_FCOE is not set 637# CONFIG_FCOE is not set
615# CONFIG_SCSI_DMX3191D is not set 638# CONFIG_SCSI_DMX3191D is not set
616# CONFIG_SCSI_EATA is not set 639# CONFIG_SCSI_EATA is not set
@@ -633,6 +656,7 @@ CONFIG_SCSI_LOWLEVEL=y
633# CONFIG_SCSI_DEBUG is not set 656# CONFIG_SCSI_DEBUG is not set
634# CONFIG_SCSI_SRP is not set 657# CONFIG_SCSI_SRP is not set
635# CONFIG_SCSI_DH is not set 658# CONFIG_SCSI_DH is not set
659# CONFIG_SCSI_OSD_INITIATOR is not set
636CONFIG_ATA=y 660CONFIG_ATA=y
637# CONFIG_ATA_NONSTANDARD is not set 661# CONFIG_ATA_NONSTANDARD is not set
638CONFIG_SATA_PMP=y 662CONFIG_SATA_PMP=y
@@ -720,6 +744,7 @@ CONFIG_MD_RAID1=y
720# CONFIG_I2O is not set 744# CONFIG_I2O is not set
721# CONFIG_MACINTOSH_DRIVERS is not set 745# CONFIG_MACINTOSH_DRIVERS is not set
722CONFIG_NETDEVICES=y 746CONFIG_NETDEVICES=y
747CONFIG_COMPAT_NET_DEV_OPS=y
723# CONFIG_DUMMY is not set 748# CONFIG_DUMMY is not set
724# CONFIG_BONDING is not set 749# CONFIG_BONDING is not set
725# CONFIG_MACVLAN is not set 750# CONFIG_MACVLAN is not set
@@ -755,6 +780,7 @@ CONFIG_NETDEV_1000=y
755# CONFIG_E1000E is not set 780# CONFIG_E1000E is not set
756# CONFIG_IP1000 is not set 781# CONFIG_IP1000 is not set
757# CONFIG_IGB is not set 782# CONFIG_IGB is not set
783# CONFIG_IGBVF is not set
758# CONFIG_NS83820 is not set 784# CONFIG_NS83820 is not set
759# CONFIG_HAMACHI is not set 785# CONFIG_HAMACHI is not set
760# CONFIG_YELLOWFIN is not set 786# CONFIG_YELLOWFIN is not set
@@ -765,11 +791,12 @@ CONFIG_NETDEV_1000=y
765# CONFIG_VIA_VELOCITY is not set 791# CONFIG_VIA_VELOCITY is not set
766# CONFIG_TIGON3 is not set 792# CONFIG_TIGON3 is not set
767# CONFIG_BNX2 is not set 793# CONFIG_BNX2 is not set
794CONFIG_FSL_PQ_MDIO=y
768CONFIG_GIANFAR=y 795CONFIG_GIANFAR=y
769# CONFIG_MV643XX_ETH is not set
770# CONFIG_QLA3XXX is not set 796# CONFIG_QLA3XXX is not set
771# CONFIG_ATL1 is not set 797# CONFIG_ATL1 is not set
772# CONFIG_ATL1E is not set 798# CONFIG_ATL1E is not set
799# CONFIG_ATL1C is not set
773# CONFIG_JME is not set 800# CONFIG_JME is not set
774CONFIG_NETDEV_10000=y 801CONFIG_NETDEV_10000=y
775# CONFIG_CHELSIO_T1 is not set 802# CONFIG_CHELSIO_T1 is not set
@@ -779,6 +806,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
779# CONFIG_IXGBE is not set 806# CONFIG_IXGBE is not set
780# CONFIG_IXGB is not set 807# CONFIG_IXGB is not set
781# CONFIG_S2IO is not set 808# CONFIG_S2IO is not set
809# CONFIG_VXGE is not set
782# CONFIG_MYRI10GE is not set 810# CONFIG_MYRI10GE is not set
783# CONFIG_NETXEN_NIC is not set 811# CONFIG_NETXEN_NIC is not set
784# CONFIG_NIU is not set 812# CONFIG_NIU is not set
@@ -788,6 +816,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
788# CONFIG_BNX2X is not set 816# CONFIG_BNX2X is not set
789# CONFIG_QLGE is not set 817# CONFIG_QLGE is not set
790# CONFIG_SFC is not set 818# CONFIG_SFC is not set
819# CONFIG_BE2NET is not set
791# CONFIG_TR is not set 820# CONFIG_TR is not set
792 821
793# 822#
@@ -795,7 +824,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
795# 824#
796# CONFIG_WLAN_PRE80211 is not set 825# CONFIG_WLAN_PRE80211 is not set
797# CONFIG_WLAN_80211 is not set 826# CONFIG_WLAN_80211 is not set
798# CONFIG_IWLWIFI_LEDS is not set
799 827
800# 828#
801# Enable WiMAX (Networking options) to see the WiMAX drivers 829# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -853,6 +881,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
853# 881#
854# Non-8250 serial port support 882# Non-8250 serial port support
855# 883#
884# CONFIG_SERIAL_MAX3100 is not set
856# CONFIG_SERIAL_UARTLITE is not set 885# CONFIG_SERIAL_UARTLITE is not set
857CONFIG_SERIAL_CORE=y 886CONFIG_SERIAL_CORE=y
858CONFIG_SERIAL_CORE_CONSOLE=y 887CONFIG_SERIAL_CORE_CONSOLE=y
@@ -865,6 +894,7 @@ CONFIG_LEGACY_PTY_COUNT=256
865# CONFIG_HVC_UDBG is not set 894# CONFIG_HVC_UDBG is not set
866# CONFIG_IPMI_HANDLER is not set 895# CONFIG_IPMI_HANDLER is not set
867CONFIG_HW_RANDOM=y 896CONFIG_HW_RANDOM=y
897# CONFIG_HW_RANDOM_TIMERIOMEM is not set
868# CONFIG_NVRAM is not set 898# CONFIG_NVRAM is not set
869# CONFIG_R3964 is not set 899# CONFIG_R3964 is not set
870# CONFIG_APPLICOM is not set 900# CONFIG_APPLICOM is not set
@@ -927,12 +957,9 @@ CONFIG_I2C_MPC=y
927# Miscellaneous I2C Chip support 957# Miscellaneous I2C Chip support
928# 958#
929# CONFIG_DS1682 is not set 959# CONFIG_DS1682 is not set
930# CONFIG_EEPROM_AT24 is not set
931# CONFIG_EEPROM_LEGACY is not set
932CONFIG_SENSORS_PCF8574=y 960CONFIG_SENSORS_PCF8574=y
933# CONFIG_PCF8575 is not set 961# CONFIG_PCF8575 is not set
934# CONFIG_SENSORS_PCA9539 is not set 962# CONFIG_SENSORS_PCA9539 is not set
935# CONFIG_SENSORS_PCF8591 is not set
936# CONFIG_SENSORS_MAX6875 is not set 963# CONFIG_SENSORS_MAX6875 is not set
937# CONFIG_SENSORS_TSL2550 is not set 964# CONFIG_SENSORS_TSL2550 is not set
938# CONFIG_I2C_DEBUG_CORE is not set 965# CONFIG_I2C_DEBUG_CORE is not set
@@ -951,7 +978,6 @@ CONFIG_SPI_MPC83xx=y
951# 978#
952# SPI Protocol Masters 979# SPI Protocol Masters
953# 980#
954# CONFIG_EEPROM_AT25 is not set
955# CONFIG_SPI_SPIDEV is not set 981# CONFIG_SPI_SPIDEV is not set
956# CONFIG_SPI_TLE62X0 is not set 982# CONFIG_SPI_TLE62X0 is not set
957CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 983CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -1083,11 +1109,11 @@ CONFIG_USB_UHCI_HCD=y
1083# CONFIG_USB_TMC is not set 1109# CONFIG_USB_TMC is not set
1084 1110
1085# 1111#
1086# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1112# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1087# 1113#
1088 1114
1089# 1115#
1090# see USB_STORAGE Help for more information 1116# also be needed; see USB_STORAGE Help for more info
1091# 1117#
1092CONFIG_USB_STORAGE=y 1118CONFIG_USB_STORAGE=y
1093# CONFIG_USB_STORAGE_DEBUG is not set 1119# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1128,7 +1154,6 @@ CONFIG_USB_STORAGE=y
1128# CONFIG_USB_LED is not set 1154# CONFIG_USB_LED is not set
1129# CONFIG_USB_CYPRESS_CY7C63 is not set 1155# CONFIG_USB_CYPRESS_CY7C63 is not set
1130# CONFIG_USB_CYTHERM is not set 1156# CONFIG_USB_CYTHERM is not set
1131# CONFIG_USB_PHIDGET is not set
1132# CONFIG_USB_IDMOUSE is not set 1157# CONFIG_USB_IDMOUSE is not set
1133# CONFIG_USB_FTDI_ELAN is not set 1158# CONFIG_USB_FTDI_ELAN is not set
1134# CONFIG_USB_APPLEDISPLAY is not set 1159# CONFIG_USB_APPLEDISPLAY is not set
@@ -1144,6 +1169,7 @@ CONFIG_USB_STORAGE=y
1144# 1169#
1145# OTG and related infrastructure 1170# OTG and related infrastructure
1146# 1171#
1172# CONFIG_NOP_USB_XCEIV is not set
1147# CONFIG_UWB is not set 1173# CONFIG_UWB is not set
1148# CONFIG_MMC is not set 1174# CONFIG_MMC is not set
1149# CONFIG_MEMSTICK is not set 1175# CONFIG_MEMSTICK is not set
@@ -1212,8 +1238,9 @@ CONFIG_RTC_DRV_DS1307=y
1212# 1238#
1213# on-CPU RTC drivers 1239# on-CPU RTC drivers
1214# 1240#
1215# CONFIG_RTC_DRV_PPC is not set 1241# CONFIG_RTC_DRV_GENERIC is not set
1216# CONFIG_DMADEVICES is not set 1242# CONFIG_DMADEVICES is not set
1243# CONFIG_AUXDISPLAY is not set
1217# CONFIG_UIO is not set 1244# CONFIG_UIO is not set
1218# CONFIG_STAGING is not set 1245# CONFIG_STAGING is not set
1219 1246
@@ -1224,6 +1251,7 @@ CONFIG_EXT2_FS=y
1224# CONFIG_EXT2_FS_XATTR is not set 1251# CONFIG_EXT2_FS_XATTR is not set
1225# CONFIG_EXT2_FS_XIP is not set 1252# CONFIG_EXT2_FS_XIP is not set
1226CONFIG_EXT3_FS=y 1253CONFIG_EXT3_FS=y
1254# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1227CONFIG_EXT3_FS_XATTR=y 1255CONFIG_EXT3_FS_XATTR=y
1228# CONFIG_EXT3_FS_POSIX_ACL is not set 1256# CONFIG_EXT3_FS_POSIX_ACL is not set
1229# CONFIG_EXT3_FS_SECURITY is not set 1257# CONFIG_EXT3_FS_SECURITY is not set
@@ -1246,6 +1274,11 @@ CONFIG_INOTIFY_USER=y
1246# CONFIG_FUSE_FS is not set 1274# CONFIG_FUSE_FS is not set
1247 1275
1248# 1276#
1277# Caches
1278#
1279# CONFIG_FSCACHE is not set
1280
1281#
1249# CD-ROM/DVD Filesystems 1282# CD-ROM/DVD Filesystems
1250# 1283#
1251# CONFIG_ISO9660_FS is not set 1284# CONFIG_ISO9660_FS is not set
@@ -1292,6 +1325,7 @@ CONFIG_MISC_FILESYSTEMS=y
1292# CONFIG_ROMFS_FS is not set 1325# CONFIG_ROMFS_FS is not set
1293# CONFIG_SYSV_FS is not set 1326# CONFIG_SYSV_FS is not set
1294# CONFIG_UFS_FS is not set 1327# CONFIG_UFS_FS is not set
1328# CONFIG_NILFS2_FS is not set
1295CONFIG_NETWORK_FILESYSTEMS=y 1329CONFIG_NETWORK_FILESYSTEMS=y
1296CONFIG_NFS_FS=y 1330CONFIG_NFS_FS=y
1297CONFIG_NFS_V3=y 1331CONFIG_NFS_V3=y
@@ -1304,7 +1338,6 @@ CONFIG_LOCKD_V4=y
1304CONFIG_NFS_COMMON=y 1338CONFIG_NFS_COMMON=y
1305CONFIG_SUNRPC=y 1339CONFIG_SUNRPC=y
1306CONFIG_SUNRPC_GSS=y 1340CONFIG_SUNRPC_GSS=y
1307# CONFIG_SUNRPC_REGISTER_V4 is not set
1308CONFIG_RPCSEC_GSS_KRB5=y 1341CONFIG_RPCSEC_GSS_KRB5=y
1309# CONFIG_RPCSEC_GSS_SPKM3 is not set 1342# CONFIG_RPCSEC_GSS_SPKM3 is not set
1310# CONFIG_SMB_FS is not set 1343# CONFIG_SMB_FS is not set
@@ -1375,6 +1408,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1375# CONFIG_NLS_KOI8_U is not set 1408# CONFIG_NLS_KOI8_U is not set
1376# CONFIG_NLS_UTF8 is not set 1409# CONFIG_NLS_UTF8 is not set
1377# CONFIG_DLM is not set 1410# CONFIG_DLM is not set
1411# CONFIG_BINARY_PRINTF is not set
1378 1412
1379# 1413#
1380# Library routines 1414# Library routines
@@ -1388,11 +1422,13 @@ CONFIG_CRC_T10DIF=y
1388CONFIG_CRC32=y 1422CONFIG_CRC32=y
1389# CONFIG_CRC7 is not set 1423# CONFIG_CRC7 is not set
1390# CONFIG_LIBCRC32C is not set 1424# CONFIG_LIBCRC32C is not set
1391CONFIG_PLIST=y 1425CONFIG_ZLIB_INFLATE=y
1426CONFIG_DECOMPRESS_GZIP=y
1392CONFIG_HAS_IOMEM=y 1427CONFIG_HAS_IOMEM=y
1393CONFIG_HAS_IOPORT=y 1428CONFIG_HAS_IOPORT=y
1394CONFIG_HAS_DMA=y 1429CONFIG_HAS_DMA=y
1395CONFIG_HAVE_LMB=y 1430CONFIG_HAVE_LMB=y
1431CONFIG_NLATTR=y
1396 1432
1397# 1433#
1398# Kernel hacking 1434# Kernel hacking
@@ -1414,13 +1450,24 @@ CONFIG_FRAME_WARN=1024
1414# CONFIG_LATENCYTOP is not set 1450# CONFIG_LATENCYTOP is not set
1415CONFIG_SYSCTL_SYSCALL_CHECK=y 1451CONFIG_SYSCTL_SYSCALL_CHECK=y
1416CONFIG_HAVE_FUNCTION_TRACER=y 1452CONFIG_HAVE_FUNCTION_TRACER=y
1453CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1417CONFIG_HAVE_DYNAMIC_FTRACE=y 1454CONFIG_HAVE_DYNAMIC_FTRACE=y
1418CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1455CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1456CONFIG_TRACING_SUPPORT=y
1419 1457
1420# 1458#
1421# Tracers 1459# Tracers
1422# 1460#
1423# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1461# CONFIG_FUNCTION_TRACER is not set
1462# CONFIG_SCHED_TRACER is not set
1463# CONFIG_CONTEXT_SWITCH_TRACER is not set
1464# CONFIG_EVENT_TRACER is not set
1465# CONFIG_BOOT_TRACER is not set
1466# CONFIG_TRACE_BRANCH_PROFILING is not set
1467# CONFIG_STACK_TRACER is not set
1468# CONFIG_KMEMTRACE is not set
1469# CONFIG_WORKQUEUE_TRACER is not set
1470# CONFIG_BLK_DEV_IO_TRACE is not set
1424# CONFIG_SAMPLES is not set 1471# CONFIG_SAMPLES is not set
1425CONFIG_HAVE_ARCH_KGDB=y 1472CONFIG_HAVE_ARCH_KGDB=y
1426CONFIG_PRINT_STACK_DEPTH=64 1473CONFIG_PRINT_STACK_DEPTH=64
@@ -1449,10 +1496,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1449CONFIG_CRYPTO_HASH=y 1496CONFIG_CRYPTO_HASH=y
1450CONFIG_CRYPTO_HASH2=y 1497CONFIG_CRYPTO_HASH2=y
1451CONFIG_CRYPTO_RNG2=y 1498CONFIG_CRYPTO_RNG2=y
1499CONFIG_CRYPTO_PCOMP=y
1452CONFIG_CRYPTO_MANAGER=y 1500CONFIG_CRYPTO_MANAGER=y
1453CONFIG_CRYPTO_MANAGER2=y 1501CONFIG_CRYPTO_MANAGER2=y
1454# CONFIG_CRYPTO_GF128MUL is not set 1502# CONFIG_CRYPTO_GF128MUL is not set
1455# CONFIG_CRYPTO_NULL is not set 1503# CONFIG_CRYPTO_NULL is not set
1504CONFIG_CRYPTO_WORKQUEUE=y
1456# CONFIG_CRYPTO_CRYPTD is not set 1505# CONFIG_CRYPTO_CRYPTD is not set
1457# CONFIG_CRYPTO_AUTHENC is not set 1506# CONFIG_CRYPTO_AUTHENC is not set
1458# CONFIG_CRYPTO_TEST is not set 1507# CONFIG_CRYPTO_TEST is not set
@@ -1521,6 +1570,7 @@ CONFIG_CRYPTO_DES=y
1521# Compression 1570# Compression
1522# 1571#
1523# CONFIG_CRYPTO_DEFLATE is not set 1572# CONFIG_CRYPTO_DEFLATE is not set
1573# CONFIG_CRYPTO_ZLIB is not set
1524# CONFIG_CRYPTO_LZO is not set 1574# CONFIG_CRYPTO_LZO is not set
1525 1575
1526# 1576#
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index 9ba5518ce8df..7f39543205a9 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:55 2009 4# Wed May 13 17:22:10 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC834x_ITX=y
183CONFIG_PPC_MPC834x=y 192CONFIG_PPC_MPC834x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 286# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +309,6 @@ CONFIG_NET=y
294# 309#
295# Networking options 310# Networking options
296# 311#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 312CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -350,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 364# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
367# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 368# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 369# CONFIG_DCB is not set
355 370
@@ -362,7 +377,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 377# CONFIG_IRDA is not set
363# CONFIG_BT is not set 378# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 379# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set
366CONFIG_WIRELESS=y 380CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
368CONFIG_WIRELESS_OLD_REGULATORY=y 382CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -465,7 +479,6 @@ CONFIG_MTD_PHYSMAP=y
465# LPDDR flash memory drivers 479# LPDDR flash memory drivers
466# 480#
467# CONFIG_MTD_LPDDR is not set 481# CONFIG_MTD_LPDDR is not set
468# CONFIG_MTD_QINFO_PROBE is not set
469 482
470# 483#
471# UBI - Unsorted block images 484# UBI - Unsorted block images
@@ -496,13 +509,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
496# CONFIG_BLK_DEV_HD is not set 509# CONFIG_BLK_DEV_HD is not set
497CONFIG_MISC_DEVICES=y 510CONFIG_MISC_DEVICES=y
498# CONFIG_PHANTOM is not set 511# CONFIG_PHANTOM is not set
499# CONFIG_EEPROM_93CX6 is not set
500# CONFIG_SGI_IOC4 is not set 512# CONFIG_SGI_IOC4 is not set
501# CONFIG_TIFM_CORE is not set 513# CONFIG_TIFM_CORE is not set
502# CONFIG_ICS932S401 is not set 514# CONFIG_ICS932S401 is not set
503# CONFIG_ENCLOSURE_SERVICES is not set 515# CONFIG_ENCLOSURE_SERVICES is not set
504# CONFIG_HP_ILO is not set 516# CONFIG_HP_ILO is not set
517# CONFIG_ISL29003 is not set
505# CONFIG_C2PORT is not set 518# CONFIG_C2PORT is not set
519
520#
521# EEPROM support
522#
523# CONFIG_EEPROM_AT24 is not set
524# CONFIG_EEPROM_AT25 is not set
525# CONFIG_EEPROM_LEGACY is not set
526# CONFIG_EEPROM_93CX6 is not set
506CONFIG_HAVE_IDE=y 527CONFIG_HAVE_IDE=y
507# CONFIG_IDE is not set 528# CONFIG_IDE is not set
508 529
@@ -560,9 +581,11 @@ CONFIG_SCSI_LOWLEVEL=y
560# CONFIG_MEGARAID_NEWGEN is not set 581# CONFIG_MEGARAID_NEWGEN is not set
561# CONFIG_MEGARAID_LEGACY is not set 582# CONFIG_MEGARAID_LEGACY is not set
562# CONFIG_MEGARAID_SAS is not set 583# CONFIG_MEGARAID_SAS is not set
584# CONFIG_SCSI_MPT2SAS is not set
563# CONFIG_SCSI_HPTIOP is not set 585# CONFIG_SCSI_HPTIOP is not set
564# CONFIG_SCSI_BUSLOGIC is not set 586# CONFIG_SCSI_BUSLOGIC is not set
565# CONFIG_LIBFC is not set 587# CONFIG_LIBFC is not set
588# CONFIG_LIBFCOE is not set
566# CONFIG_FCOE is not set 589# CONFIG_FCOE is not set
567# CONFIG_SCSI_DMX3191D is not set 590# CONFIG_SCSI_DMX3191D is not set
568# CONFIG_SCSI_EATA is not set 591# CONFIG_SCSI_EATA is not set
@@ -584,6 +607,7 @@ CONFIG_SCSI_LOWLEVEL=y
584# CONFIG_SCSI_DEBUG is not set 607# CONFIG_SCSI_DEBUG is not set
585# CONFIG_SCSI_SRP is not set 608# CONFIG_SCSI_SRP is not set
586# CONFIG_SCSI_DH is not set 609# CONFIG_SCSI_DH is not set
610# CONFIG_SCSI_OSD_INITIATOR is not set
587# CONFIG_ATA is not set 611# CONFIG_ATA is not set
588# CONFIG_MD is not set 612# CONFIG_MD is not set
589# CONFIG_FUSION is not set 613# CONFIG_FUSION is not set
@@ -600,6 +624,7 @@ CONFIG_SCSI_LOWLEVEL=y
600# CONFIG_I2O is not set 624# CONFIG_I2O is not set
601# CONFIG_MACINTOSH_DRIVERS is not set 625# CONFIG_MACINTOSH_DRIVERS is not set
602CONFIG_NETDEVICES=y 626CONFIG_NETDEVICES=y
627CONFIG_COMPAT_NET_DEV_OPS=y
603# CONFIG_DUMMY is not set 628# CONFIG_DUMMY is not set
604# CONFIG_BONDING is not set 629# CONFIG_BONDING is not set
605# CONFIG_MACVLAN is not set 630# CONFIG_MACVLAN is not set
@@ -635,6 +660,7 @@ CONFIG_NETDEV_1000=y
635# CONFIG_E1000E is not set 660# CONFIG_E1000E is not set
636# CONFIG_IP1000 is not set 661# CONFIG_IP1000 is not set
637# CONFIG_IGB is not set 662# CONFIG_IGB is not set
663# CONFIG_IGBVF is not set
638# CONFIG_NS83820 is not set 664# CONFIG_NS83820 is not set
639# CONFIG_HAMACHI is not set 665# CONFIG_HAMACHI is not set
640# CONFIG_YELLOWFIN is not set 666# CONFIG_YELLOWFIN is not set
@@ -645,11 +671,12 @@ CONFIG_NETDEV_1000=y
645# CONFIG_VIA_VELOCITY is not set 671# CONFIG_VIA_VELOCITY is not set
646# CONFIG_TIGON3 is not set 672# CONFIG_TIGON3 is not set
647# CONFIG_BNX2 is not set 673# CONFIG_BNX2 is not set
674CONFIG_FSL_PQ_MDIO=y
648CONFIG_GIANFAR=y 675CONFIG_GIANFAR=y
649# CONFIG_MV643XX_ETH is not set
650# CONFIG_QLA3XXX is not set 676# CONFIG_QLA3XXX is not set
651# CONFIG_ATL1 is not set 677# CONFIG_ATL1 is not set
652# CONFIG_ATL1E is not set 678# CONFIG_ATL1E is not set
679# CONFIG_ATL1C is not set
653# CONFIG_JME is not set 680# CONFIG_JME is not set
654CONFIG_NETDEV_10000=y 681CONFIG_NETDEV_10000=y
655# CONFIG_CHELSIO_T1 is not set 682# CONFIG_CHELSIO_T1 is not set
@@ -659,6 +686,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
659# CONFIG_IXGBE is not set 686# CONFIG_IXGBE is not set
660# CONFIG_IXGB is not set 687# CONFIG_IXGB is not set
661# CONFIG_S2IO is not set 688# CONFIG_S2IO is not set
689# CONFIG_VXGE is not set
662# CONFIG_MYRI10GE is not set 690# CONFIG_MYRI10GE is not set
663# CONFIG_NETXEN_NIC is not set 691# CONFIG_NETXEN_NIC is not set
664# CONFIG_NIU is not set 692# CONFIG_NIU is not set
@@ -668,6 +696,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
668# CONFIG_BNX2X is not set 696# CONFIG_BNX2X is not set
669# CONFIG_QLGE is not set 697# CONFIG_QLGE is not set
670# CONFIG_SFC is not set 698# CONFIG_SFC is not set
699# CONFIG_BE2NET is not set
671# CONFIG_TR is not set 700# CONFIG_TR is not set
672 701
673# 702#
@@ -675,7 +704,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
675# 704#
676# CONFIG_WLAN_PRE80211 is not set 705# CONFIG_WLAN_PRE80211 is not set
677# CONFIG_WLAN_80211 is not set 706# CONFIG_WLAN_80211 is not set
678# CONFIG_IWLWIFI_LEDS is not set
679 707
680# 708#
681# Enable WiMAX (Networking options) to see the WiMAX drivers 709# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -733,6 +761,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
733# 761#
734# Non-8250 serial port support 762# Non-8250 serial port support
735# 763#
764# CONFIG_SERIAL_MAX3100 is not set
736# CONFIG_SERIAL_UARTLITE is not set 765# CONFIG_SERIAL_UARTLITE is not set
737CONFIG_SERIAL_CORE=y 766CONFIG_SERIAL_CORE=y
738CONFIG_SERIAL_CORE_CONSOLE=y 767CONFIG_SERIAL_CORE_CONSOLE=y
@@ -745,6 +774,7 @@ CONFIG_LEGACY_PTY_COUNT=256
745# CONFIG_HVC_UDBG is not set 774# CONFIG_HVC_UDBG is not set
746# CONFIG_IPMI_HANDLER is not set 775# CONFIG_IPMI_HANDLER is not set
747CONFIG_HW_RANDOM=y 776CONFIG_HW_RANDOM=y
777# CONFIG_HW_RANDOM_TIMERIOMEM is not set
748# CONFIG_NVRAM is not set 778# CONFIG_NVRAM is not set
749# CONFIG_R3964 is not set 779# CONFIG_R3964 is not set
750# CONFIG_APPLICOM is not set 780# CONFIG_APPLICOM is not set
@@ -807,12 +837,9 @@ CONFIG_I2C_MPC=y
807# Miscellaneous I2C Chip support 837# Miscellaneous I2C Chip support
808# 838#
809# CONFIG_DS1682 is not set 839# CONFIG_DS1682 is not set
810# CONFIG_EEPROM_AT24 is not set
811# CONFIG_EEPROM_LEGACY is not set
812CONFIG_SENSORS_PCF8574=y 840CONFIG_SENSORS_PCF8574=y
813# CONFIG_PCF8575 is not set 841# CONFIG_PCF8575 is not set
814# CONFIG_SENSORS_PCA9539 is not set 842# CONFIG_SENSORS_PCA9539 is not set
815# CONFIG_SENSORS_PCF8591 is not set
816# CONFIG_SENSORS_MAX6875 is not set 843# CONFIG_SENSORS_MAX6875 is not set
817# CONFIG_SENSORS_TSL2550 is not set 844# CONFIG_SENSORS_TSL2550 is not set
818# CONFIG_I2C_DEBUG_CORE is not set 845# CONFIG_I2C_DEBUG_CORE is not set
@@ -831,7 +858,6 @@ CONFIG_SPI_MPC83xx=y
831# 858#
832# SPI Protocol Masters 859# SPI Protocol Masters
833# 860#
834# CONFIG_EEPROM_AT25 is not set
835# CONFIG_SPI_SPIDEV is not set 861# CONFIG_SPI_SPIDEV is not set
836# CONFIG_SPI_TLE62X0 is not set 862# CONFIG_SPI_TLE62X0 is not set
837CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 863CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -963,11 +989,11 @@ CONFIG_USB_UHCI_HCD=y
963# CONFIG_USB_TMC is not set 989# CONFIG_USB_TMC is not set
964 990
965# 991#
966# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 992# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
967# 993#
968 994
969# 995#
970# see USB_STORAGE Help for more information 996# also be needed; see USB_STORAGE Help for more info
971# 997#
972CONFIG_USB_STORAGE=y 998CONFIG_USB_STORAGE=y
973# CONFIG_USB_STORAGE_DEBUG is not set 999# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1008,7 +1034,6 @@ CONFIG_USB_STORAGE=y
1008# CONFIG_USB_LED is not set 1034# CONFIG_USB_LED is not set
1009# CONFIG_USB_CYPRESS_CY7C63 is not set 1035# CONFIG_USB_CYPRESS_CY7C63 is not set
1010# CONFIG_USB_CYTHERM is not set 1036# CONFIG_USB_CYTHERM is not set
1011# CONFIG_USB_PHIDGET is not set
1012# CONFIG_USB_IDMOUSE is not set 1037# CONFIG_USB_IDMOUSE is not set
1013# CONFIG_USB_FTDI_ELAN is not set 1038# CONFIG_USB_FTDI_ELAN is not set
1014# CONFIG_USB_APPLEDISPLAY is not set 1039# CONFIG_USB_APPLEDISPLAY is not set
@@ -1023,6 +1048,7 @@ CONFIG_USB_STORAGE=y
1023# 1048#
1024# OTG and related infrastructure 1049# OTG and related infrastructure
1025# 1050#
1051# CONFIG_NOP_USB_XCEIV is not set
1026# CONFIG_UWB is not set 1052# CONFIG_UWB is not set
1027# CONFIG_MMC is not set 1053# CONFIG_MMC is not set
1028# CONFIG_MEMSTICK is not set 1054# CONFIG_MEMSTICK is not set
@@ -1091,8 +1117,9 @@ CONFIG_RTC_DRV_DS1307=y
1091# 1117#
1092# on-CPU RTC drivers 1118# on-CPU RTC drivers
1093# 1119#
1094# CONFIG_RTC_DRV_PPC is not set 1120# CONFIG_RTC_DRV_GENERIC is not set
1095# CONFIG_DMADEVICES is not set 1121# CONFIG_DMADEVICES is not set
1122# CONFIG_AUXDISPLAY is not set
1096# CONFIG_UIO is not set 1123# CONFIG_UIO is not set
1097# CONFIG_STAGING is not set 1124# CONFIG_STAGING is not set
1098 1125
@@ -1103,6 +1130,7 @@ CONFIG_EXT2_FS=y
1103# CONFIG_EXT2_FS_XATTR is not set 1130# CONFIG_EXT2_FS_XATTR is not set
1104# CONFIG_EXT2_FS_XIP is not set 1131# CONFIG_EXT2_FS_XIP is not set
1105CONFIG_EXT3_FS=y 1132CONFIG_EXT3_FS=y
1133# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1106CONFIG_EXT3_FS_XATTR=y 1134CONFIG_EXT3_FS_XATTR=y
1107# CONFIG_EXT3_FS_POSIX_ACL is not set 1135# CONFIG_EXT3_FS_POSIX_ACL is not set
1108# CONFIG_EXT3_FS_SECURITY is not set 1136# CONFIG_EXT3_FS_SECURITY is not set
@@ -1125,6 +1153,11 @@ CONFIG_INOTIFY_USER=y
1125# CONFIG_FUSE_FS is not set 1153# CONFIG_FUSE_FS is not set
1126 1154
1127# 1155#
1156# Caches
1157#
1158# CONFIG_FSCACHE is not set
1159
1160#
1128# CD-ROM/DVD Filesystems 1161# CD-ROM/DVD Filesystems
1129# 1162#
1130# CONFIG_ISO9660_FS is not set 1163# CONFIG_ISO9660_FS is not set
@@ -1171,6 +1204,7 @@ CONFIG_MISC_FILESYSTEMS=y
1171# CONFIG_ROMFS_FS is not set 1204# CONFIG_ROMFS_FS is not set
1172# CONFIG_SYSV_FS is not set 1205# CONFIG_SYSV_FS is not set
1173# CONFIG_UFS_FS is not set 1206# CONFIG_UFS_FS is not set
1207# CONFIG_NILFS2_FS is not set
1174CONFIG_NETWORK_FILESYSTEMS=y 1208CONFIG_NETWORK_FILESYSTEMS=y
1175CONFIG_NFS_FS=y 1209CONFIG_NFS_FS=y
1176CONFIG_NFS_V3=y 1210CONFIG_NFS_V3=y
@@ -1183,7 +1217,6 @@ CONFIG_LOCKD_V4=y
1183CONFIG_NFS_COMMON=y 1217CONFIG_NFS_COMMON=y
1184CONFIG_SUNRPC=y 1218CONFIG_SUNRPC=y
1185CONFIG_SUNRPC_GSS=y 1219CONFIG_SUNRPC_GSS=y
1186# CONFIG_SUNRPC_REGISTER_V4 is not set
1187CONFIG_RPCSEC_GSS_KRB5=y 1220CONFIG_RPCSEC_GSS_KRB5=y
1188# CONFIG_RPCSEC_GSS_SPKM3 is not set 1221# CONFIG_RPCSEC_GSS_SPKM3 is not set
1189# CONFIG_SMB_FS is not set 1222# CONFIG_SMB_FS is not set
@@ -1254,6 +1287,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1254# CONFIG_NLS_KOI8_U is not set 1287# CONFIG_NLS_KOI8_U is not set
1255# CONFIG_NLS_UTF8 is not set 1288# CONFIG_NLS_UTF8 is not set
1256# CONFIG_DLM is not set 1289# CONFIG_DLM is not set
1290# CONFIG_BINARY_PRINTF is not set
1257 1291
1258# 1292#
1259# Library routines 1293# Library routines
@@ -1267,11 +1301,13 @@ CONFIG_CRC_T10DIF=y
1267CONFIG_CRC32=y 1301CONFIG_CRC32=y
1268# CONFIG_CRC7 is not set 1302# CONFIG_CRC7 is not set
1269# CONFIG_LIBCRC32C is not set 1303# CONFIG_LIBCRC32C is not set
1270CONFIG_PLIST=y 1304CONFIG_ZLIB_INFLATE=y
1305CONFIG_DECOMPRESS_GZIP=y
1271CONFIG_HAS_IOMEM=y 1306CONFIG_HAS_IOMEM=y
1272CONFIG_HAS_IOPORT=y 1307CONFIG_HAS_IOPORT=y
1273CONFIG_HAS_DMA=y 1308CONFIG_HAS_DMA=y
1274CONFIG_HAVE_LMB=y 1309CONFIG_HAVE_LMB=y
1310CONFIG_NLATTR=y
1275 1311
1276# 1312#
1277# Kernel hacking 1313# Kernel hacking
@@ -1293,13 +1329,24 @@ CONFIG_FRAME_WARN=1024
1293# CONFIG_LATENCYTOP is not set 1329# CONFIG_LATENCYTOP is not set
1294CONFIG_SYSCTL_SYSCALL_CHECK=y 1330CONFIG_SYSCTL_SYSCALL_CHECK=y
1295CONFIG_HAVE_FUNCTION_TRACER=y 1331CONFIG_HAVE_FUNCTION_TRACER=y
1332CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1296CONFIG_HAVE_DYNAMIC_FTRACE=y 1333CONFIG_HAVE_DYNAMIC_FTRACE=y
1297CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1334CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1335CONFIG_TRACING_SUPPORT=y
1298 1336
1299# 1337#
1300# Tracers 1338# Tracers
1301# 1339#
1302# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1340# CONFIG_FUNCTION_TRACER is not set
1341# CONFIG_SCHED_TRACER is not set
1342# CONFIG_CONTEXT_SWITCH_TRACER is not set
1343# CONFIG_EVENT_TRACER is not set
1344# CONFIG_BOOT_TRACER is not set
1345# CONFIG_TRACE_BRANCH_PROFILING is not set
1346# CONFIG_STACK_TRACER is not set
1347# CONFIG_KMEMTRACE is not set
1348# CONFIG_WORKQUEUE_TRACER is not set
1349# CONFIG_BLK_DEV_IO_TRACE is not set
1303# CONFIG_SAMPLES is not set 1350# CONFIG_SAMPLES is not set
1304CONFIG_HAVE_ARCH_KGDB=y 1351CONFIG_HAVE_ARCH_KGDB=y
1305CONFIG_PRINT_STACK_DEPTH=64 1352CONFIG_PRINT_STACK_DEPTH=64
@@ -1328,10 +1375,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1328CONFIG_CRYPTO_HASH=y 1375CONFIG_CRYPTO_HASH=y
1329CONFIG_CRYPTO_HASH2=y 1376CONFIG_CRYPTO_HASH2=y
1330CONFIG_CRYPTO_RNG2=y 1377CONFIG_CRYPTO_RNG2=y
1378CONFIG_CRYPTO_PCOMP=y
1331CONFIG_CRYPTO_MANAGER=y 1379CONFIG_CRYPTO_MANAGER=y
1332CONFIG_CRYPTO_MANAGER2=y 1380CONFIG_CRYPTO_MANAGER2=y
1333# CONFIG_CRYPTO_GF128MUL is not set 1381# CONFIG_CRYPTO_GF128MUL is not set
1334# CONFIG_CRYPTO_NULL is not set 1382# CONFIG_CRYPTO_NULL is not set
1383CONFIG_CRYPTO_WORKQUEUE=y
1335# CONFIG_CRYPTO_CRYPTD is not set 1384# CONFIG_CRYPTO_CRYPTD is not set
1336# CONFIG_CRYPTO_AUTHENC is not set 1385# CONFIG_CRYPTO_AUTHENC is not set
1337# CONFIG_CRYPTO_TEST is not set 1386# CONFIG_CRYPTO_TEST is not set
@@ -1400,6 +1449,7 @@ CONFIG_CRYPTO_DES=y
1400# Compression 1449# Compression
1401# 1450#
1402# CONFIG_CRYPTO_DEFLATE is not set 1451# CONFIG_CRYPTO_DEFLATE is not set
1452# CONFIG_CRYPTO_ZLIB is not set
1403# CONFIG_CRYPTO_LZO is not set 1453# CONFIG_CRYPTO_LZO is not set
1404 1454
1405# 1455#
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index 18e4bc0b3c11..1cd1fcac22c8 100644
--- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:56 2009 4# Wed May 13 17:22:11 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC834x_MDS=y
183CONFIG_PPC_MPC834x=y 192CONFIG_PPC_MPC834x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 286# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +309,6 @@ CONFIG_NET=y
294# 309#
295# Networking options 310# Networking options
296# 311#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 312CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -350,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 364# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
367# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 368# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 369# CONFIG_DCB is not set
355 370
@@ -362,7 +377,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 377# CONFIG_IRDA is not set
363# CONFIG_BT is not set 378# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 379# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set
366CONFIG_WIRELESS=y 380CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
368CONFIG_WIRELESS_OLD_REGULATORY=y 382CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -410,13 +424,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
410# CONFIG_BLK_DEV_HD is not set 424# CONFIG_BLK_DEV_HD is not set
411CONFIG_MISC_DEVICES=y 425CONFIG_MISC_DEVICES=y
412# CONFIG_PHANTOM is not set 426# CONFIG_PHANTOM is not set
413# CONFIG_EEPROM_93CX6 is not set
414# CONFIG_SGI_IOC4 is not set 427# CONFIG_SGI_IOC4 is not set
415# CONFIG_TIFM_CORE is not set 428# CONFIG_TIFM_CORE is not set
416# CONFIG_ICS932S401 is not set 429# CONFIG_ICS932S401 is not set
417# CONFIG_ENCLOSURE_SERVICES is not set 430# CONFIG_ENCLOSURE_SERVICES is not set
418# CONFIG_HP_ILO is not set 431# CONFIG_HP_ILO is not set
432# CONFIG_ISL29003 is not set
419# CONFIG_C2PORT is not set 433# CONFIG_C2PORT is not set
434
435#
436# EEPROM support
437#
438# CONFIG_EEPROM_AT24 is not set
439# CONFIG_EEPROM_LEGACY is not set
440# CONFIG_EEPROM_93CX6 is not set
420CONFIG_HAVE_IDE=y 441CONFIG_HAVE_IDE=y
421# CONFIG_IDE is not set 442# CONFIG_IDE is not set
422 443
@@ -443,6 +464,7 @@ CONFIG_HAVE_IDE=y
443# CONFIG_I2O is not set 464# CONFIG_I2O is not set
444# CONFIG_MACINTOSH_DRIVERS is not set 465# CONFIG_MACINTOSH_DRIVERS is not set
445CONFIG_NETDEVICES=y 466CONFIG_NETDEVICES=y
467CONFIG_COMPAT_NET_DEV_OPS=y
446# CONFIG_DUMMY is not set 468# CONFIG_DUMMY is not set
447# CONFIG_BONDING is not set 469# CONFIG_BONDING is not set
448# CONFIG_MACVLAN is not set 470# CONFIG_MACVLAN is not set
@@ -476,6 +498,8 @@ CONFIG_MII=y
476# CONFIG_SUNGEM is not set 498# CONFIG_SUNGEM is not set
477# CONFIG_CASSINI is not set 499# CONFIG_CASSINI is not set
478# CONFIG_NET_VENDOR_3COM is not set 500# CONFIG_NET_VENDOR_3COM is not set
501# CONFIG_ETHOC is not set
502# CONFIG_DNET is not set
479# CONFIG_NET_TULIP is not set 503# CONFIG_NET_TULIP is not set
480# CONFIG_HP100 is not set 504# CONFIG_HP100 is not set
481# CONFIG_IBM_NEW_EMAC_ZMII is not set 505# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -513,6 +537,7 @@ CONFIG_NETDEV_1000=y
513# CONFIG_E1000E is not set 537# CONFIG_E1000E is not set
514# CONFIG_IP1000 is not set 538# CONFIG_IP1000 is not set
515# CONFIG_IGB is not set 539# CONFIG_IGB is not set
540# CONFIG_IGBVF is not set
516# CONFIG_NS83820 is not set 541# CONFIG_NS83820 is not set
517# CONFIG_HAMACHI is not set 542# CONFIG_HAMACHI is not set
518# CONFIG_YELLOWFIN is not set 543# CONFIG_YELLOWFIN is not set
@@ -523,11 +548,12 @@ CONFIG_NETDEV_1000=y
523# CONFIG_VIA_VELOCITY is not set 548# CONFIG_VIA_VELOCITY is not set
524# CONFIG_TIGON3 is not set 549# CONFIG_TIGON3 is not set
525# CONFIG_BNX2 is not set 550# CONFIG_BNX2 is not set
551CONFIG_FSL_PQ_MDIO=y
526CONFIG_GIANFAR=y 552CONFIG_GIANFAR=y
527# CONFIG_MV643XX_ETH is not set
528# CONFIG_QLA3XXX is not set 553# CONFIG_QLA3XXX is not set
529# CONFIG_ATL1 is not set 554# CONFIG_ATL1 is not set
530# CONFIG_ATL1E is not set 555# CONFIG_ATL1E is not set
556# CONFIG_ATL1C is not set
531# CONFIG_JME is not set 557# CONFIG_JME is not set
532CONFIG_NETDEV_10000=y 558CONFIG_NETDEV_10000=y
533# CONFIG_CHELSIO_T1 is not set 559# CONFIG_CHELSIO_T1 is not set
@@ -537,6 +563,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
537# CONFIG_IXGBE is not set 563# CONFIG_IXGBE is not set
538# CONFIG_IXGB is not set 564# CONFIG_IXGB is not set
539# CONFIG_S2IO is not set 565# CONFIG_S2IO is not set
566# CONFIG_VXGE is not set
540# CONFIG_MYRI10GE is not set 567# CONFIG_MYRI10GE is not set
541# CONFIG_NETXEN_NIC is not set 568# CONFIG_NETXEN_NIC is not set
542# CONFIG_NIU is not set 569# CONFIG_NIU is not set
@@ -546,6 +573,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
546# CONFIG_BNX2X is not set 573# CONFIG_BNX2X is not set
547# CONFIG_QLGE is not set 574# CONFIG_QLGE is not set
548# CONFIG_SFC is not set 575# CONFIG_SFC is not set
576# CONFIG_BE2NET is not set
549# CONFIG_TR is not set 577# CONFIG_TR is not set
550 578
551# 579#
@@ -553,7 +581,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
553# 581#
554# CONFIG_WLAN_PRE80211 is not set 582# CONFIG_WLAN_PRE80211 is not set
555# CONFIG_WLAN_80211 is not set 583# CONFIG_WLAN_80211 is not set
556# CONFIG_IWLWIFI_LEDS is not set
557 584
558# 585#
559# Enable WiMAX (Networking options) to see the WiMAX drivers 586# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -694,12 +721,9 @@ CONFIG_I2C_MPC=y
694# Miscellaneous I2C Chip support 721# Miscellaneous I2C Chip support
695# 722#
696# CONFIG_DS1682 is not set 723# CONFIG_DS1682 is not set
697# CONFIG_EEPROM_AT24 is not set
698# CONFIG_EEPROM_LEGACY is not set
699# CONFIG_SENSORS_PCF8574 is not set 724# CONFIG_SENSORS_PCF8574 is not set
700# CONFIG_PCF8575 is not set 725# CONFIG_PCF8575 is not set
701# CONFIG_SENSORS_PCA9539 is not set 726# CONFIG_SENSORS_PCA9539 is not set
702# CONFIG_SENSORS_PCF8591 is not set
703# CONFIG_SENSORS_MAX6875 is not set 727# CONFIG_SENSORS_MAX6875 is not set
704# CONFIG_SENSORS_TSL2550 is not set 728# CONFIG_SENSORS_TSL2550 is not set
705# CONFIG_I2C_DEBUG_CORE is not set 729# CONFIG_I2C_DEBUG_CORE is not set
@@ -731,6 +755,7 @@ CONFIG_HWMON=y
731# CONFIG_SENSORS_F71805F is not set 755# CONFIG_SENSORS_F71805F is not set
732# CONFIG_SENSORS_F71882FG is not set 756# CONFIG_SENSORS_F71882FG is not set
733# CONFIG_SENSORS_F75375S is not set 757# CONFIG_SENSORS_F75375S is not set
758# CONFIG_SENSORS_G760A is not set
734# CONFIG_SENSORS_GL518SM is not set 759# CONFIG_SENSORS_GL518SM is not set
735# CONFIG_SENSORS_GL520SM is not set 760# CONFIG_SENSORS_GL520SM is not set
736# CONFIG_SENSORS_IT87 is not set 761# CONFIG_SENSORS_IT87 is not set
@@ -745,11 +770,14 @@ CONFIG_HWMON=y
745# CONFIG_SENSORS_LM90 is not set 770# CONFIG_SENSORS_LM90 is not set
746# CONFIG_SENSORS_LM92 is not set 771# CONFIG_SENSORS_LM92 is not set
747# CONFIG_SENSORS_LM93 is not set 772# CONFIG_SENSORS_LM93 is not set
773# CONFIG_SENSORS_LTC4215 is not set
748# CONFIG_SENSORS_LTC4245 is not set 774# CONFIG_SENSORS_LTC4245 is not set
775# CONFIG_SENSORS_LM95241 is not set
749# CONFIG_SENSORS_MAX1619 is not set 776# CONFIG_SENSORS_MAX1619 is not set
750# CONFIG_SENSORS_MAX6650 is not set 777# CONFIG_SENSORS_MAX6650 is not set
751# CONFIG_SENSORS_PC87360 is not set 778# CONFIG_SENSORS_PC87360 is not set
752# CONFIG_SENSORS_PC87427 is not set 779# CONFIG_SENSORS_PC87427 is not set
780# CONFIG_SENSORS_PCF8591 is not set
753# CONFIG_SENSORS_SIS5595 is not set 781# CONFIG_SENSORS_SIS5595 is not set
754# CONFIG_SENSORS_DME1737 is not set 782# CONFIG_SENSORS_DME1737 is not set
755# CONFIG_SENSORS_SMSC47M1 is not set 783# CONFIG_SENSORS_SMSC47M1 is not set
@@ -847,7 +875,6 @@ CONFIG_HID=y
847# 875#
848# Special HID drivers 876# Special HID drivers
849# 877#
850CONFIG_HID_COMPAT=y
851CONFIG_USB_SUPPORT=y 878CONFIG_USB_SUPPORT=y
852CONFIG_USB_ARCH_HAS_HCD=y 879CONFIG_USB_ARCH_HAS_HCD=y
853CONFIG_USB_ARCH_HAS_OHCI=y 880CONFIG_USB_ARCH_HAS_OHCI=y
@@ -861,7 +888,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
861# 888#
862 889
863# 890#
864# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 891# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
865# 892#
866# CONFIG_USB_GADGET is not set 893# CONFIG_USB_GADGET is not set
867 894
@@ -929,8 +956,9 @@ CONFIG_RTC_DRV_DS1374=y
929# 956#
930# on-CPU RTC drivers 957# on-CPU RTC drivers
931# 958#
932# CONFIG_RTC_DRV_PPC is not set 959# CONFIG_RTC_DRV_GENERIC is not set
933# CONFIG_DMADEVICES is not set 960# CONFIG_DMADEVICES is not set
961# CONFIG_AUXDISPLAY is not set
934# CONFIG_UIO is not set 962# CONFIG_UIO is not set
935# CONFIG_STAGING is not set 963# CONFIG_STAGING is not set
936 964
@@ -941,6 +969,7 @@ CONFIG_EXT2_FS=y
941# CONFIG_EXT2_FS_XATTR is not set 969# CONFIG_EXT2_FS_XATTR is not set
942# CONFIG_EXT2_FS_XIP is not set 970# CONFIG_EXT2_FS_XIP is not set
943CONFIG_EXT3_FS=y 971CONFIG_EXT3_FS=y
972# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
944CONFIG_EXT3_FS_XATTR=y 973CONFIG_EXT3_FS_XATTR=y
945# CONFIG_EXT3_FS_POSIX_ACL is not set 974# CONFIG_EXT3_FS_POSIX_ACL is not set
946# CONFIG_EXT3_FS_SECURITY is not set 975# CONFIG_EXT3_FS_SECURITY is not set
@@ -963,6 +992,11 @@ CONFIG_INOTIFY_USER=y
963# CONFIG_FUSE_FS is not set 992# CONFIG_FUSE_FS is not set
964 993
965# 994#
995# Caches
996#
997# CONFIG_FSCACHE is not set
998
999#
966# CD-ROM/DVD Filesystems 1000# CD-ROM/DVD Filesystems
967# 1001#
968# CONFIG_ISO9660_FS is not set 1002# CONFIG_ISO9660_FS is not set
@@ -1005,6 +1039,7 @@ CONFIG_MISC_FILESYSTEMS=y
1005# CONFIG_ROMFS_FS is not set 1039# CONFIG_ROMFS_FS is not set
1006# CONFIG_SYSV_FS is not set 1040# CONFIG_SYSV_FS is not set
1007# CONFIG_UFS_FS is not set 1041# CONFIG_UFS_FS is not set
1042# CONFIG_NILFS2_FS is not set
1008CONFIG_NETWORK_FILESYSTEMS=y 1043CONFIG_NETWORK_FILESYSTEMS=y
1009CONFIG_NFS_FS=y 1044CONFIG_NFS_FS=y
1010CONFIG_NFS_V3=y 1045CONFIG_NFS_V3=y
@@ -1017,7 +1052,6 @@ CONFIG_LOCKD_V4=y
1017CONFIG_NFS_COMMON=y 1052CONFIG_NFS_COMMON=y
1018CONFIG_SUNRPC=y 1053CONFIG_SUNRPC=y
1019CONFIG_SUNRPC_GSS=y 1054CONFIG_SUNRPC_GSS=y
1020# CONFIG_SUNRPC_REGISTER_V4 is not set
1021CONFIG_RPCSEC_GSS_KRB5=y 1055CONFIG_RPCSEC_GSS_KRB5=y
1022# CONFIG_RPCSEC_GSS_SPKM3 is not set 1056# CONFIG_RPCSEC_GSS_SPKM3 is not set
1023# CONFIG_SMB_FS is not set 1057# CONFIG_SMB_FS is not set
@@ -1045,6 +1079,7 @@ CONFIG_PARTITION_ADVANCED=y
1045# CONFIG_SYSV68_PARTITION is not set 1079# CONFIG_SYSV68_PARTITION is not set
1046# CONFIG_NLS is not set 1080# CONFIG_NLS is not set
1047# CONFIG_DLM is not set 1081# CONFIG_DLM is not set
1082# CONFIG_BINARY_PRINTF is not set
1048 1083
1049# 1084#
1050# Library routines 1085# Library routines
@@ -1058,11 +1093,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
1058CONFIG_CRC32=y 1093CONFIG_CRC32=y
1059# CONFIG_CRC7 is not set 1094# CONFIG_CRC7 is not set
1060# CONFIG_LIBCRC32C is not set 1095# CONFIG_LIBCRC32C is not set
1061CONFIG_PLIST=y 1096CONFIG_ZLIB_INFLATE=y
1097CONFIG_DECOMPRESS_GZIP=y
1062CONFIG_HAS_IOMEM=y 1098CONFIG_HAS_IOMEM=y
1063CONFIG_HAS_IOPORT=y 1099CONFIG_HAS_IOPORT=y
1064CONFIG_HAS_DMA=y 1100CONFIG_HAS_DMA=y
1065CONFIG_HAVE_LMB=y 1101CONFIG_HAVE_LMB=y
1102CONFIG_NLATTR=y
1066 1103
1067# 1104#
1068# Kernel hacking 1105# Kernel hacking
@@ -1084,13 +1121,24 @@ CONFIG_FRAME_WARN=1024
1084# CONFIG_LATENCYTOP is not set 1121# CONFIG_LATENCYTOP is not set
1085CONFIG_SYSCTL_SYSCALL_CHECK=y 1122CONFIG_SYSCTL_SYSCALL_CHECK=y
1086CONFIG_HAVE_FUNCTION_TRACER=y 1123CONFIG_HAVE_FUNCTION_TRACER=y
1124CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1087CONFIG_HAVE_DYNAMIC_FTRACE=y 1125CONFIG_HAVE_DYNAMIC_FTRACE=y
1088CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1126CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1127CONFIG_TRACING_SUPPORT=y
1089 1128
1090# 1129#
1091# Tracers 1130# Tracers
1092# 1131#
1093# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1132# CONFIG_FUNCTION_TRACER is not set
1133# CONFIG_SCHED_TRACER is not set
1134# CONFIG_CONTEXT_SWITCH_TRACER is not set
1135# CONFIG_EVENT_TRACER is not set
1136# CONFIG_BOOT_TRACER is not set
1137# CONFIG_TRACE_BRANCH_PROFILING is not set
1138# CONFIG_STACK_TRACER is not set
1139# CONFIG_KMEMTRACE is not set
1140# CONFIG_WORKQUEUE_TRACER is not set
1141# CONFIG_BLK_DEV_IO_TRACE is not set
1094# CONFIG_SAMPLES is not set 1142# CONFIG_SAMPLES is not set
1095CONFIG_HAVE_ARCH_KGDB=y 1143CONFIG_HAVE_ARCH_KGDB=y
1096CONFIG_PRINT_STACK_DEPTH=64 1144CONFIG_PRINT_STACK_DEPTH=64
@@ -1119,10 +1167,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1119CONFIG_CRYPTO_HASH=y 1167CONFIG_CRYPTO_HASH=y
1120CONFIG_CRYPTO_HASH2=y 1168CONFIG_CRYPTO_HASH2=y
1121CONFIG_CRYPTO_RNG2=y 1169CONFIG_CRYPTO_RNG2=y
1170CONFIG_CRYPTO_PCOMP=y
1122CONFIG_CRYPTO_MANAGER=y 1171CONFIG_CRYPTO_MANAGER=y
1123CONFIG_CRYPTO_MANAGER2=y 1172CONFIG_CRYPTO_MANAGER2=y
1124# CONFIG_CRYPTO_GF128MUL is not set 1173# CONFIG_CRYPTO_GF128MUL is not set
1125# CONFIG_CRYPTO_NULL is not set 1174# CONFIG_CRYPTO_NULL is not set
1175CONFIG_CRYPTO_WORKQUEUE=y
1126# CONFIG_CRYPTO_CRYPTD is not set 1176# CONFIG_CRYPTO_CRYPTD is not set
1127# CONFIG_CRYPTO_AUTHENC is not set 1177# CONFIG_CRYPTO_AUTHENC is not set
1128# CONFIG_CRYPTO_TEST is not set 1178# CONFIG_CRYPTO_TEST is not set
@@ -1191,6 +1241,7 @@ CONFIG_CRYPTO_DES=y
1191# Compression 1241# Compression
1192# 1242#
1193# CONFIG_CRYPTO_DEFLATE is not set 1243# CONFIG_CRYPTO_DEFLATE is not set
1244# CONFIG_CRYPTO_ZLIB is not set
1194# CONFIG_CRYPTO_LZO is not set 1245# CONFIG_CRYPTO_LZO is not set
1195 1246
1196# 1247#
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 76db8138eac7..ce5177393a0d 100644
--- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:58 2009 4# Wed May 13 17:22:12 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -182,6 +191,8 @@ CONFIG_MPC836x_MDS=y
182# CONFIG_ASP834x is not set 191# CONFIG_ASP834x is not set
183# CONFIG_PPC_86xx is not set 192# CONFIG_PPC_86xx is not set
184# CONFIG_EMBEDDED6xx is not set 193# CONFIG_EMBEDDED6xx is not set
194# CONFIG_AMIGAONE is not set
195CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
185CONFIG_IPIC=y 196CONFIG_IPIC=y
186# CONFIG_MPIC is not set 197# CONFIG_MPIC is not set
187# CONFIG_MPIC_WEIRD is not set 198# CONFIG_MPIC_WEIRD is not set
@@ -243,9 +254,12 @@ CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 254CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 255CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 256CONFIG_UNEVICTABLE_LRU=y
257CONFIG_HAVE_MLOCK=y
258CONFIG_HAVE_MLOCKED_PAGE_BIT=y
246CONFIG_PPC_4K_PAGES=y 259CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set 260# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set 261# CONFIG_PPC_64K_PAGES is not set
262# CONFIG_PPC_256K_PAGES is not set
249CONFIG_FORCE_MAX_ZONEORDER=11 263CONFIG_FORCE_MAX_ZONEORDER=11
250CONFIG_PROC_DEVICETREE=y 264CONFIG_PROC_DEVICETREE=y
251# CONFIG_CMDLINE_BOOL is not set 265# CONFIG_CMDLINE_BOOL is not set
@@ -271,6 +285,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
271# CONFIG_PCI_MSI is not set 285# CONFIG_PCI_MSI is not set
272# CONFIG_PCI_LEGACY is not set 286# CONFIG_PCI_LEGACY is not set
273# CONFIG_PCI_STUB is not set 287# CONFIG_PCI_STUB is not set
288# CONFIG_PCI_IOV is not set
274# CONFIG_PCCARD is not set 289# CONFIG_PCCARD is not set
275# CONFIG_HOTPLUG_PCI is not set 290# CONFIG_HOTPLUG_PCI is not set
276# CONFIG_HAS_RAPIDIO is not set 291# CONFIG_HAS_RAPIDIO is not set
@@ -293,7 +308,6 @@ CONFIG_NET=y
293# 308#
294# Networking options 309# Networking options
295# 310#
296CONFIG_COMPAT_NET_DEV_OPS=y
297CONFIG_PACKET=y 311CONFIG_PACKET=y
298# CONFIG_PACKET_MMAP is not set 312# CONFIG_PACKET_MMAP is not set
299CONFIG_UNIX=y 313CONFIG_UNIX=y
@@ -349,6 +363,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
349# CONFIG_LAPB is not set 363# CONFIG_LAPB is not set
350# CONFIG_ECONET is not set 364# CONFIG_ECONET is not set
351# CONFIG_WAN_ROUTER is not set 365# CONFIG_WAN_ROUTER is not set
366# CONFIG_PHONET is not set
352# CONFIG_NET_SCHED is not set 367# CONFIG_NET_SCHED is not set
353# CONFIG_DCB is not set 368# CONFIG_DCB is not set
354 369
@@ -361,7 +376,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
361# CONFIG_IRDA is not set 376# CONFIG_IRDA is not set
362# CONFIG_BT is not set 377# CONFIG_BT is not set
363# CONFIG_AF_RXRPC is not set 378# CONFIG_AF_RXRPC is not set
364# CONFIG_PHONET is not set
365CONFIG_WIRELESS=y 379CONFIG_WIRELESS=y
366# CONFIG_CFG80211 is not set 380# CONFIG_CFG80211 is not set
367CONFIG_WIRELESS_OLD_REGULATORY=y 381CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -464,7 +478,6 @@ CONFIG_MTD_PHYSMAP_OF=y
464# LPDDR flash memory drivers 478# LPDDR flash memory drivers
465# 479#
466# CONFIG_MTD_LPDDR is not set 480# CONFIG_MTD_LPDDR is not set
467# CONFIG_MTD_QINFO_PROBE is not set
468 481
469# 482#
470# UBI - Unsorted block images 483# UBI - Unsorted block images
@@ -493,13 +506,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
493# CONFIG_BLK_DEV_HD is not set 506# CONFIG_BLK_DEV_HD is not set
494CONFIG_MISC_DEVICES=y 507CONFIG_MISC_DEVICES=y
495# CONFIG_PHANTOM is not set 508# CONFIG_PHANTOM is not set
496# CONFIG_EEPROM_93CX6 is not set
497# CONFIG_SGI_IOC4 is not set 509# CONFIG_SGI_IOC4 is not set
498# CONFIG_TIFM_CORE is not set 510# CONFIG_TIFM_CORE is not set
499# CONFIG_ICS932S401 is not set 511# CONFIG_ICS932S401 is not set
500# CONFIG_ENCLOSURE_SERVICES is not set 512# CONFIG_ENCLOSURE_SERVICES is not set
501# CONFIG_HP_ILO is not set 513# CONFIG_HP_ILO is not set
514# CONFIG_ISL29003 is not set
502# CONFIG_C2PORT is not set 515# CONFIG_C2PORT is not set
516
517#
518# EEPROM support
519#
520# CONFIG_EEPROM_AT24 is not set
521# CONFIG_EEPROM_LEGACY is not set
522# CONFIG_EEPROM_93CX6 is not set
503CONFIG_HAVE_IDE=y 523CONFIG_HAVE_IDE=y
504# CONFIG_IDE is not set 524# CONFIG_IDE is not set
505 525
@@ -557,9 +577,11 @@ CONFIG_SCSI_LOWLEVEL=y
557# CONFIG_MEGARAID_NEWGEN is not set 577# CONFIG_MEGARAID_NEWGEN is not set
558# CONFIG_MEGARAID_LEGACY is not set 578# CONFIG_MEGARAID_LEGACY is not set
559# CONFIG_MEGARAID_SAS is not set 579# CONFIG_MEGARAID_SAS is not set
580# CONFIG_SCSI_MPT2SAS is not set
560# CONFIG_SCSI_HPTIOP is not set 581# CONFIG_SCSI_HPTIOP is not set
561# CONFIG_SCSI_BUSLOGIC is not set 582# CONFIG_SCSI_BUSLOGIC is not set
562# CONFIG_LIBFC is not set 583# CONFIG_LIBFC is not set
584# CONFIG_LIBFCOE is not set
563# CONFIG_FCOE is not set 585# CONFIG_FCOE is not set
564# CONFIG_SCSI_DMX3191D is not set 586# CONFIG_SCSI_DMX3191D is not set
565# CONFIG_SCSI_EATA is not set 587# CONFIG_SCSI_EATA is not set
@@ -581,6 +603,7 @@ CONFIG_SCSI_LOWLEVEL=y
581# CONFIG_SCSI_DEBUG is not set 603# CONFIG_SCSI_DEBUG is not set
582# CONFIG_SCSI_SRP is not set 604# CONFIG_SCSI_SRP is not set
583# CONFIG_SCSI_DH is not set 605# CONFIG_SCSI_DH is not set
606# CONFIG_SCSI_OSD_INITIATOR is not set
584# CONFIG_ATA is not set 607# CONFIG_ATA is not set
585# CONFIG_MD is not set 608# CONFIG_MD is not set
586# CONFIG_FUSION is not set 609# CONFIG_FUSION is not set
@@ -597,6 +620,7 @@ CONFIG_SCSI_LOWLEVEL=y
597# CONFIG_I2O is not set 620# CONFIG_I2O is not set
598# CONFIG_MACINTOSH_DRIVERS is not set 621# CONFIG_MACINTOSH_DRIVERS is not set
599CONFIG_NETDEVICES=y 622CONFIG_NETDEVICES=y
623CONFIG_COMPAT_NET_DEV_OPS=y
600# CONFIG_DUMMY is not set 624# CONFIG_DUMMY is not set
601# CONFIG_BONDING is not set 625# CONFIG_BONDING is not set
602# CONFIG_MACVLAN is not set 626# CONFIG_MACVLAN is not set
@@ -630,6 +654,8 @@ CONFIG_MII=y
630# CONFIG_SUNGEM is not set 654# CONFIG_SUNGEM is not set
631# CONFIG_CASSINI is not set 655# CONFIG_CASSINI is not set
632# CONFIG_NET_VENDOR_3COM is not set 656# CONFIG_NET_VENDOR_3COM is not set
657# CONFIG_ETHOC is not set
658# CONFIG_DNET is not set
633# CONFIG_NET_TULIP is not set 659# CONFIG_NET_TULIP is not set
634# CONFIG_HP100 is not set 660# CONFIG_HP100 is not set
635# CONFIG_IBM_NEW_EMAC_ZMII is not set 661# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -649,6 +675,7 @@ CONFIG_NETDEV_1000=y
649# CONFIG_E1000E is not set 675# CONFIG_E1000E is not set
650# CONFIG_IP1000 is not set 676# CONFIG_IP1000 is not set
651# CONFIG_IGB is not set 677# CONFIG_IGB is not set
678# CONFIG_IGBVF is not set
652# CONFIG_NS83820 is not set 679# CONFIG_NS83820 is not set
653# CONFIG_HAMACHI is not set 680# CONFIG_HAMACHI is not set
654# CONFIG_YELLOWFIN is not set 681# CONFIG_YELLOWFIN is not set
@@ -659,14 +686,15 @@ CONFIG_NETDEV_1000=y
659# CONFIG_VIA_VELOCITY is not set 686# CONFIG_VIA_VELOCITY is not set
660# CONFIG_TIGON3 is not set 687# CONFIG_TIGON3 is not set
661# CONFIG_BNX2 is not set 688# CONFIG_BNX2 is not set
689CONFIG_FSL_PQ_MDIO=y
662# CONFIG_GIANFAR is not set 690# CONFIG_GIANFAR is not set
663CONFIG_UCC_GETH=y 691CONFIG_UCC_GETH=y
664# CONFIG_UGETH_MAGIC_PACKET is not set 692# CONFIG_UGETH_MAGIC_PACKET is not set
665# CONFIG_UGETH_TX_ON_DEMAND is not set 693# CONFIG_UGETH_TX_ON_DEMAND is not set
666# CONFIG_MV643XX_ETH is not set
667# CONFIG_QLA3XXX is not set 694# CONFIG_QLA3XXX is not set
668# CONFIG_ATL1 is not set 695# CONFIG_ATL1 is not set
669# CONFIG_ATL1E is not set 696# CONFIG_ATL1E is not set
697# CONFIG_ATL1C is not set
670# CONFIG_JME is not set 698# CONFIG_JME is not set
671CONFIG_NETDEV_10000=y 699CONFIG_NETDEV_10000=y
672# CONFIG_CHELSIO_T1 is not set 700# CONFIG_CHELSIO_T1 is not set
@@ -676,6 +704,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
676# CONFIG_IXGBE is not set 704# CONFIG_IXGBE is not set
677# CONFIG_IXGB is not set 705# CONFIG_IXGB is not set
678# CONFIG_S2IO is not set 706# CONFIG_S2IO is not set
707# CONFIG_VXGE is not set
679# CONFIG_MYRI10GE is not set 708# CONFIG_MYRI10GE is not set
680# CONFIG_NETXEN_NIC is not set 709# CONFIG_NETXEN_NIC is not set
681# CONFIG_NIU is not set 710# CONFIG_NIU is not set
@@ -685,6 +714,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
685# CONFIG_BNX2X is not set 714# CONFIG_BNX2X is not set
686# CONFIG_QLGE is not set 715# CONFIG_QLGE is not set
687# CONFIG_SFC is not set 716# CONFIG_SFC is not set
717# CONFIG_BE2NET is not set
688# CONFIG_TR is not set 718# CONFIG_TR is not set
689 719
690# 720#
@@ -692,7 +722,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
692# 722#
693# CONFIG_WLAN_PRE80211 is not set 723# CONFIG_WLAN_PRE80211 is not set
694# CONFIG_WLAN_80211 is not set 724# CONFIG_WLAN_80211 is not set
695# CONFIG_IWLWIFI_LEDS is not set
696 725
697# 726#
698# Enable WiMAX (Networking options) to see the WiMAX drivers 727# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -774,6 +803,7 @@ CONFIG_LEGACY_PTY_COUNT=256
774# CONFIG_HVC_UDBG is not set 803# CONFIG_HVC_UDBG is not set
775# CONFIG_IPMI_HANDLER is not set 804# CONFIG_IPMI_HANDLER is not set
776CONFIG_HW_RANDOM=y 805CONFIG_HW_RANDOM=y
806# CONFIG_HW_RANDOM_TIMERIOMEM is not set
777# CONFIG_NVRAM is not set 807# CONFIG_NVRAM is not set
778# CONFIG_R3964 is not set 808# CONFIG_R3964 is not set
779# CONFIG_APPLICOM is not set 809# CONFIG_APPLICOM is not set
@@ -835,12 +865,9 @@ CONFIG_I2C_MPC=y
835# Miscellaneous I2C Chip support 865# Miscellaneous I2C Chip support
836# 866#
837# CONFIG_DS1682 is not set 867# CONFIG_DS1682 is not set
838# CONFIG_EEPROM_AT24 is not set
839# CONFIG_EEPROM_LEGACY is not set
840# CONFIG_SENSORS_PCF8574 is not set 868# CONFIG_SENSORS_PCF8574 is not set
841# CONFIG_PCF8575 is not set 869# CONFIG_PCF8575 is not set
842# CONFIG_SENSORS_PCA9539 is not set 870# CONFIG_SENSORS_PCA9539 is not set
843# CONFIG_SENSORS_PCF8591 is not set
844# CONFIG_SENSORS_MAX6875 is not set 871# CONFIG_SENSORS_MAX6875 is not set
845# CONFIG_SENSORS_TSL2550 is not set 872# CONFIG_SENSORS_TSL2550 is not set
846# CONFIG_I2C_DEBUG_CORE is not set 873# CONFIG_I2C_DEBUG_CORE is not set
@@ -872,6 +899,7 @@ CONFIG_HWMON=y
872# CONFIG_SENSORS_F71805F is not set 899# CONFIG_SENSORS_F71805F is not set
873# CONFIG_SENSORS_F71882FG is not set 900# CONFIG_SENSORS_F71882FG is not set
874# CONFIG_SENSORS_F75375S is not set 901# CONFIG_SENSORS_F75375S is not set
902# CONFIG_SENSORS_G760A is not set
875# CONFIG_SENSORS_GL518SM is not set 903# CONFIG_SENSORS_GL518SM is not set
876# CONFIG_SENSORS_GL520SM is not set 904# CONFIG_SENSORS_GL520SM is not set
877# CONFIG_SENSORS_IT87 is not set 905# CONFIG_SENSORS_IT87 is not set
@@ -886,11 +914,14 @@ CONFIG_HWMON=y
886# CONFIG_SENSORS_LM90 is not set 914# CONFIG_SENSORS_LM90 is not set
887# CONFIG_SENSORS_LM92 is not set 915# CONFIG_SENSORS_LM92 is not set
888# CONFIG_SENSORS_LM93 is not set 916# CONFIG_SENSORS_LM93 is not set
917# CONFIG_SENSORS_LTC4215 is not set
889# CONFIG_SENSORS_LTC4245 is not set 918# CONFIG_SENSORS_LTC4245 is not set
919# CONFIG_SENSORS_LM95241 is not set
890# CONFIG_SENSORS_MAX1619 is not set 920# CONFIG_SENSORS_MAX1619 is not set
891# CONFIG_SENSORS_MAX6650 is not set 921# CONFIG_SENSORS_MAX6650 is not set
892# CONFIG_SENSORS_PC87360 is not set 922# CONFIG_SENSORS_PC87360 is not set
893# CONFIG_SENSORS_PC87427 is not set 923# CONFIG_SENSORS_PC87427 is not set
924# CONFIG_SENSORS_PCF8591 is not set
894# CONFIG_SENSORS_SIS5595 is not set 925# CONFIG_SENSORS_SIS5595 is not set
895# CONFIG_SENSORS_DME1737 is not set 926# CONFIG_SENSORS_DME1737 is not set
896# CONFIG_SENSORS_SMSC47M1 is not set 927# CONFIG_SENSORS_SMSC47M1 is not set
@@ -988,7 +1019,6 @@ CONFIG_HID=y
988# 1019#
989# Special HID drivers 1020# Special HID drivers
990# 1021#
991CONFIG_HID_COMPAT=y
992CONFIG_USB_SUPPORT=y 1022CONFIG_USB_SUPPORT=y
993CONFIG_USB_ARCH_HAS_HCD=y 1023CONFIG_USB_ARCH_HAS_HCD=y
994CONFIG_USB_ARCH_HAS_OHCI=y 1024CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1002,7 +1032,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1002# 1032#
1003 1033
1004# 1034#
1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1035# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1006# 1036#
1007# CONFIG_USB_GADGET is not set 1037# CONFIG_USB_GADGET is not set
1008 1038
@@ -1070,8 +1100,9 @@ CONFIG_RTC_DRV_DS1374=y
1070# 1100#
1071# on-CPU RTC drivers 1101# on-CPU RTC drivers
1072# 1102#
1073# CONFIG_RTC_DRV_PPC is not set 1103# CONFIG_RTC_DRV_GENERIC is not set
1074# CONFIG_DMADEVICES is not set 1104# CONFIG_DMADEVICES is not set
1105# CONFIG_AUXDISPLAY is not set
1075# CONFIG_UIO is not set 1106# CONFIG_UIO is not set
1076# CONFIG_STAGING is not set 1107# CONFIG_STAGING is not set
1077 1108
@@ -1082,6 +1113,7 @@ CONFIG_EXT2_FS=y
1082# CONFIG_EXT2_FS_XATTR is not set 1113# CONFIG_EXT2_FS_XATTR is not set
1083# CONFIG_EXT2_FS_XIP is not set 1114# CONFIG_EXT2_FS_XIP is not set
1084CONFIG_EXT3_FS=y 1115CONFIG_EXT3_FS=y
1116# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1085CONFIG_EXT3_FS_XATTR=y 1117CONFIG_EXT3_FS_XATTR=y
1086# CONFIG_EXT3_FS_POSIX_ACL is not set 1118# CONFIG_EXT3_FS_POSIX_ACL is not set
1087# CONFIG_EXT3_FS_SECURITY is not set 1119# CONFIG_EXT3_FS_SECURITY is not set
@@ -1104,6 +1136,11 @@ CONFIG_INOTIFY_USER=y
1104# CONFIG_FUSE_FS is not set 1136# CONFIG_FUSE_FS is not set
1105 1137
1106# 1138#
1139# Caches
1140#
1141# CONFIG_FSCACHE is not set
1142
1143#
1107# CD-ROM/DVD Filesystems 1144# CD-ROM/DVD Filesystems
1108# 1145#
1109# CONFIG_ISO9660_FS is not set 1146# CONFIG_ISO9660_FS is not set
@@ -1147,6 +1184,7 @@ CONFIG_MISC_FILESYSTEMS=y
1147# CONFIG_ROMFS_FS is not set 1184# CONFIG_ROMFS_FS is not set
1148# CONFIG_SYSV_FS is not set 1185# CONFIG_SYSV_FS is not set
1149# CONFIG_UFS_FS is not set 1186# CONFIG_UFS_FS is not set
1187# CONFIG_NILFS2_FS is not set
1150CONFIG_NETWORK_FILESYSTEMS=y 1188CONFIG_NETWORK_FILESYSTEMS=y
1151CONFIG_NFS_FS=y 1189CONFIG_NFS_FS=y
1152CONFIG_NFS_V3=y 1190CONFIG_NFS_V3=y
@@ -1159,7 +1197,6 @@ CONFIG_LOCKD_V4=y
1159CONFIG_NFS_COMMON=y 1197CONFIG_NFS_COMMON=y
1160CONFIG_SUNRPC=y 1198CONFIG_SUNRPC=y
1161CONFIG_SUNRPC_GSS=y 1199CONFIG_SUNRPC_GSS=y
1162# CONFIG_SUNRPC_REGISTER_V4 is not set
1163CONFIG_RPCSEC_GSS_KRB5=y 1200CONFIG_RPCSEC_GSS_KRB5=y
1164# CONFIG_RPCSEC_GSS_SPKM3 is not set 1201# CONFIG_RPCSEC_GSS_SPKM3 is not set
1165# CONFIG_SMB_FS is not set 1202# CONFIG_SMB_FS is not set
@@ -1189,6 +1226,7 @@ CONFIG_PARTITION_ADVANCED=y
1189# CONFIG_DLM is not set 1226# CONFIG_DLM is not set
1190CONFIG_UCC_FAST=y 1227CONFIG_UCC_FAST=y
1191CONFIG_UCC=y 1228CONFIG_UCC=y
1229# CONFIG_BINARY_PRINTF is not set
1192 1230
1193# 1231#
1194# Library routines 1232# Library routines
@@ -1202,11 +1240,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
1202CONFIG_CRC32=y 1240CONFIG_CRC32=y
1203# CONFIG_CRC7 is not set 1241# CONFIG_CRC7 is not set
1204# CONFIG_LIBCRC32C is not set 1242# CONFIG_LIBCRC32C is not set
1205CONFIG_PLIST=y 1243CONFIG_ZLIB_INFLATE=y
1244CONFIG_DECOMPRESS_GZIP=y
1206CONFIG_HAS_IOMEM=y 1245CONFIG_HAS_IOMEM=y
1207CONFIG_HAS_IOPORT=y 1246CONFIG_HAS_IOPORT=y
1208CONFIG_HAS_DMA=y 1247CONFIG_HAS_DMA=y
1209CONFIG_HAVE_LMB=y 1248CONFIG_HAVE_LMB=y
1249CONFIG_NLATTR=y
1210 1250
1211# 1251#
1212# Kernel hacking 1252# Kernel hacking
@@ -1228,13 +1268,24 @@ CONFIG_FRAME_WARN=1024
1228# CONFIG_LATENCYTOP is not set 1268# CONFIG_LATENCYTOP is not set
1229CONFIG_SYSCTL_SYSCALL_CHECK=y 1269CONFIG_SYSCTL_SYSCALL_CHECK=y
1230CONFIG_HAVE_FUNCTION_TRACER=y 1270CONFIG_HAVE_FUNCTION_TRACER=y
1271CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1231CONFIG_HAVE_DYNAMIC_FTRACE=y 1272CONFIG_HAVE_DYNAMIC_FTRACE=y
1232CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1273CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1274CONFIG_TRACING_SUPPORT=y
1233 1275
1234# 1276#
1235# Tracers 1277# Tracers
1236# 1278#
1237# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1279# CONFIG_FUNCTION_TRACER is not set
1280# CONFIG_SCHED_TRACER is not set
1281# CONFIG_CONTEXT_SWITCH_TRACER is not set
1282# CONFIG_EVENT_TRACER is not set
1283# CONFIG_BOOT_TRACER is not set
1284# CONFIG_TRACE_BRANCH_PROFILING is not set
1285# CONFIG_STACK_TRACER is not set
1286# CONFIG_KMEMTRACE is not set
1287# CONFIG_WORKQUEUE_TRACER is not set
1288# CONFIG_BLK_DEV_IO_TRACE is not set
1238# CONFIG_SAMPLES is not set 1289# CONFIG_SAMPLES is not set
1239CONFIG_HAVE_ARCH_KGDB=y 1290CONFIG_HAVE_ARCH_KGDB=y
1240CONFIG_PRINT_STACK_DEPTH=64 1291CONFIG_PRINT_STACK_DEPTH=64
@@ -1263,10 +1314,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1263CONFIG_CRYPTO_HASH=y 1314CONFIG_CRYPTO_HASH=y
1264CONFIG_CRYPTO_HASH2=y 1315CONFIG_CRYPTO_HASH2=y
1265CONFIG_CRYPTO_RNG2=y 1316CONFIG_CRYPTO_RNG2=y
1317CONFIG_CRYPTO_PCOMP=y
1266CONFIG_CRYPTO_MANAGER=y 1318CONFIG_CRYPTO_MANAGER=y
1267CONFIG_CRYPTO_MANAGER2=y 1319CONFIG_CRYPTO_MANAGER2=y
1268# CONFIG_CRYPTO_GF128MUL is not set 1320# CONFIG_CRYPTO_GF128MUL is not set
1269# CONFIG_CRYPTO_NULL is not set 1321# CONFIG_CRYPTO_NULL is not set
1322CONFIG_CRYPTO_WORKQUEUE=y
1270# CONFIG_CRYPTO_CRYPTD is not set 1323# CONFIG_CRYPTO_CRYPTD is not set
1271# CONFIG_CRYPTO_AUTHENC is not set 1324# CONFIG_CRYPTO_AUTHENC is not set
1272# CONFIG_CRYPTO_TEST is not set 1325# CONFIG_CRYPTO_TEST is not set
@@ -1335,6 +1388,7 @@ CONFIG_CRYPTO_DES=y
1335# Compression 1388# Compression
1336# 1389#
1337# CONFIG_CRYPTO_DEFLATE is not set 1390# CONFIG_CRYPTO_DEFLATE is not set
1391# CONFIG_CRYPTO_ZLIB is not set
1338# CONFIG_CRYPTO_LZO is not set 1392# CONFIG_CRYPTO_LZO is not set
1339 1393
1340# 1394#
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index 0dc11c44306b..7f1d1383a249 100644
--- a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:01 2009 4# Wed May 13 17:22:13 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -57,6 +58,7 @@ CONFIG_DEFAULT_UIMAGE=y
57CONFIG_ARCH_SUSPEND_POSSIBLE=y 58CONFIG_ARCH_SUSPEND_POSSIBLE=y
58# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
61 63
62# 64#
@@ -74,6 +76,15 @@ CONFIG_SYSVIPC_SYSCTL=y
74# CONFIG_BSD_PROCESS_ACCT is not set 76# CONFIG_BSD_PROCESS_ACCT is not set
75# CONFIG_TASKSTATS is not set 77# CONFIG_TASKSTATS is not set
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
79
80#
81# RCU Subsystem
82#
83CONFIG_CLASSIC_RCU=y
84# CONFIG_TREE_RCU is not set
85# CONFIG_PREEMPT_RCU is not set
86# CONFIG_TREE_RCU_TRACE is not set
87# CONFIG_PREEMPT_RCU_TRACE is not set
77# CONFIG_IKCONFIG is not set 88# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 89CONFIG_LOG_BUF_SHIFT=14
79CONFIG_GROUP_SCHED=y 90CONFIG_GROUP_SCHED=y
@@ -88,19 +99,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
88# CONFIG_NAMESPACES is not set 99# CONFIG_NAMESPACES is not set
89CONFIG_BLK_DEV_INITRD=y 100CONFIG_BLK_DEV_INITRD=y
90CONFIG_INITRAMFS_SOURCE="" 101CONFIG_INITRAMFS_SOURCE=""
102CONFIG_RD_GZIP=y
103# CONFIG_RD_BZIP2 is not set
104# CONFIG_RD_LZMA is not set
91# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 105# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
92CONFIG_SYSCTL=y 106CONFIG_SYSCTL=y
107CONFIG_ANON_INODES=y
93CONFIG_EMBEDDED=y 108CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
95# CONFIG_KALLSYMS is not set 110# CONFIG_KALLSYMS is not set
111# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 112CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 113CONFIG_PRINTK=y
98CONFIG_BUG=y 114CONFIG_BUG=y
99CONFIG_ELF_CORE=y 115CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y 116CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y 117CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104# CONFIG_EPOLL is not set 118# CONFIG_EPOLL is not set
105CONFIG_SIGNALFD=y 119CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 120CONFIG_TIMERFD=y
@@ -110,16 +124,19 @@ CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 124CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y 125CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 126CONFIG_SLUB_DEBUG=y
127CONFIG_COMPAT_BRK=y
113# CONFIG_SLAB is not set 128# CONFIG_SLAB is not set
114CONFIG_SLUB=y 129CONFIG_SLUB=y
115# CONFIG_SLOB is not set 130# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 131# CONFIG_PROFILING is not set
132# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 133CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 134CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 135CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 136CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 137CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 138CONFIG_HAVE_ARCH_TRACEHOOK=y
139# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 140# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 141CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 142CONFIG_RT_MUTEXES=y
@@ -132,7 +149,6 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_SRCVERSION_ALL is not set 149# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_BLOCK=y 150CONFIG_BLOCK=y
134# CONFIG_LBD is not set 151# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_BLK_DEV_BSG is not set 152# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 153# CONFIG_BLK_DEV_INTEGRITY is not set
138 154
@@ -148,18 +164,11 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
149# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 166CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 167# CONFIG_FREEZER is not set
157 168
158# 169#
159# Platform support 170# Platform support
160# 171#
161CONFIG_PPC_MULTIPLATFORM=y
162CONFIG_CLASSIC32=y
163# CONFIG_PPC_CHRP is not set 172# CONFIG_PPC_CHRP is not set
164# CONFIG_MPC5121_ADS is not set 173# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set 174# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC836x_RDK=y
183# CONFIG_ASP834x is not set 192# CONFIG_ASP834x is not set
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -243,9 +254,12 @@ CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 254CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 255CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 256CONFIG_UNEVICTABLE_LRU=y
257CONFIG_HAVE_MLOCK=y
258CONFIG_HAVE_MLOCKED_PAGE_BIT=y
246CONFIG_PPC_4K_PAGES=y 259CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set 260# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set 261# CONFIG_PPC_64K_PAGES is not set
262# CONFIG_PPC_256K_PAGES is not set
249CONFIG_FORCE_MAX_ZONEORDER=11 263CONFIG_FORCE_MAX_ZONEORDER=11
250CONFIG_PROC_DEVICETREE=y 264CONFIG_PROC_DEVICETREE=y
251# CONFIG_CMDLINE_BOOL is not set 265# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 287# CONFIG_PCI_MSI is not set
274# CONFIG_PCI_LEGACY is not set 288# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -475,7 +489,6 @@ CONFIG_MTD_PHYSMAP_OF=y
475# LPDDR flash memory drivers 489# LPDDR flash memory drivers
476# 490#
477# CONFIG_MTD_LPDDR is not set 491# CONFIG_MTD_LPDDR is not set
478# CONFIG_MTD_QINFO_PROBE is not set
479 492
480# 493#
481# UBI - Unsorted block images 494# UBI - Unsorted block images
@@ -506,13 +519,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
506# CONFIG_BLK_DEV_HD is not set 519# CONFIG_BLK_DEV_HD is not set
507CONFIG_MISC_DEVICES=y 520CONFIG_MISC_DEVICES=y
508# CONFIG_PHANTOM is not set 521# CONFIG_PHANTOM is not set
509# CONFIG_EEPROM_93CX6 is not set
510# CONFIG_SGI_IOC4 is not set 522# CONFIG_SGI_IOC4 is not set
511# CONFIG_TIFM_CORE is not set 523# CONFIG_TIFM_CORE is not set
512# CONFIG_ICS932S401 is not set 524# CONFIG_ICS932S401 is not set
513# CONFIG_ENCLOSURE_SERVICES is not set 525# CONFIG_ENCLOSURE_SERVICES is not set
514# CONFIG_HP_ILO is not set 526# CONFIG_HP_ILO is not set
527# CONFIG_ISL29003 is not set
515# CONFIG_C2PORT is not set 528# CONFIG_C2PORT is not set
529
530#
531# EEPROM support
532#
533# CONFIG_EEPROM_AT24 is not set
534# CONFIG_EEPROM_AT25 is not set
535# CONFIG_EEPROM_LEGACY is not set
536# CONFIG_EEPROM_93CX6 is not set
516CONFIG_HAVE_IDE=y 537CONFIG_HAVE_IDE=y
517# CONFIG_IDE is not set 538# CONFIG_IDE is not set
518 539
@@ -539,6 +560,7 @@ CONFIG_HAVE_IDE=y
539# CONFIG_I2O is not set 560# CONFIG_I2O is not set
540# CONFIG_MACINTOSH_DRIVERS is not set 561# CONFIG_MACINTOSH_DRIVERS is not set
541CONFIG_NETDEVICES=y 562CONFIG_NETDEVICES=y
563CONFIG_COMPAT_NET_DEV_OPS=y
542# CONFIG_DUMMY is not set 564# CONFIG_DUMMY is not set
543# CONFIG_BONDING is not set 565# CONFIG_BONDING is not set
544# CONFIG_MACVLAN is not set 566# CONFIG_MACVLAN is not set
@@ -574,6 +596,7 @@ CONFIG_NETDEV_1000=y
574# CONFIG_E1000E is not set 596# CONFIG_E1000E is not set
575# CONFIG_IP1000 is not set 597# CONFIG_IP1000 is not set
576# CONFIG_IGB is not set 598# CONFIG_IGB is not set
599# CONFIG_IGBVF is not set
577# CONFIG_NS83820 is not set 600# CONFIG_NS83820 is not set
578# CONFIG_HAMACHI is not set 601# CONFIG_HAMACHI is not set
579# CONFIG_YELLOWFIN is not set 602# CONFIG_YELLOWFIN is not set
@@ -584,14 +607,15 @@ CONFIG_NETDEV_1000=y
584# CONFIG_VIA_VELOCITY is not set 607# CONFIG_VIA_VELOCITY is not set
585# CONFIG_TIGON3 is not set 608# CONFIG_TIGON3 is not set
586# CONFIG_BNX2 is not set 609# CONFIG_BNX2 is not set
610CONFIG_FSL_PQ_MDIO=y
587# CONFIG_GIANFAR is not set 611# CONFIG_GIANFAR is not set
588CONFIG_UCC_GETH=y 612CONFIG_UCC_GETH=y
589# CONFIG_UGETH_MAGIC_PACKET is not set 613# CONFIG_UGETH_MAGIC_PACKET is not set
590# CONFIG_UGETH_TX_ON_DEMAND is not set 614# CONFIG_UGETH_TX_ON_DEMAND is not set
591# CONFIG_MV643XX_ETH is not set
592# CONFIG_QLA3XXX is not set 615# CONFIG_QLA3XXX is not set
593# CONFIG_ATL1 is not set 616# CONFIG_ATL1 is not set
594# CONFIG_ATL1E is not set 617# CONFIG_ATL1E is not set
618# CONFIG_ATL1C is not set
595# CONFIG_JME is not set 619# CONFIG_JME is not set
596# CONFIG_NETDEV_10000 is not set 620# CONFIG_NETDEV_10000 is not set
597# CONFIG_TR is not set 621# CONFIG_TR is not set
@@ -601,7 +625,6 @@ CONFIG_UCC_GETH=y
601# 625#
602# CONFIG_WLAN_PRE80211 is not set 626# CONFIG_WLAN_PRE80211 is not set
603# CONFIG_WLAN_80211 is not set 627# CONFIG_WLAN_80211 is not set
604# CONFIG_IWLWIFI_LEDS is not set
605 628
606# 629#
607# Enable WiMAX (Networking options) to see the WiMAX drivers 630# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -673,6 +696,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
673# 696#
674# Non-8250 serial port support 697# Non-8250 serial port support
675# 698#
699# CONFIG_SERIAL_MAX3100 is not set
676# CONFIG_SERIAL_UARTLITE is not set 700# CONFIG_SERIAL_UARTLITE is not set
677CONFIG_SERIAL_CORE=y 701CONFIG_SERIAL_CORE=y
678CONFIG_SERIAL_CORE_CONSOLE=y 702CONFIG_SERIAL_CORE_CONSOLE=y
@@ -686,6 +710,7 @@ CONFIG_LEGACY_PTY_COUNT=256
686# CONFIG_HVC_UDBG is not set 710# CONFIG_HVC_UDBG is not set
687# CONFIG_IPMI_HANDLER is not set 711# CONFIG_IPMI_HANDLER is not set
688CONFIG_HW_RANDOM=y 712CONFIG_HW_RANDOM=y
713# CONFIG_HW_RANDOM_TIMERIOMEM is not set
689# CONFIG_NVRAM is not set 714# CONFIG_NVRAM is not set
690# CONFIG_GEN_RTC is not set 715# CONFIG_GEN_RTC is not set
691# CONFIG_R3964 is not set 716# CONFIG_R3964 is not set
@@ -749,12 +774,9 @@ CONFIG_I2C_MPC=y
749# Miscellaneous I2C Chip support 774# Miscellaneous I2C Chip support
750# 775#
751# CONFIG_DS1682 is not set 776# CONFIG_DS1682 is not set
752# CONFIG_EEPROM_AT24 is not set
753# CONFIG_EEPROM_LEGACY is not set
754# CONFIG_SENSORS_PCF8574 is not set 777# CONFIG_SENSORS_PCF8574 is not set
755# CONFIG_PCF8575 is not set 778# CONFIG_PCF8575 is not set
756# CONFIG_SENSORS_PCA9539 is not set 779# CONFIG_SENSORS_PCA9539 is not set
757# CONFIG_SENSORS_PCF8591 is not set
758# CONFIG_SENSORS_MAX6875 is not set 780# CONFIG_SENSORS_MAX6875 is not set
759# CONFIG_SENSORS_TSL2550 is not set 781# CONFIG_SENSORS_TSL2550 is not set
760# CONFIG_I2C_DEBUG_CORE is not set 782# CONFIG_I2C_DEBUG_CORE is not set
@@ -774,7 +796,6 @@ CONFIG_SPI_MPC83xx=y
774# 796#
775# SPI Protocol Masters 797# SPI Protocol Masters
776# 798#
777# CONFIG_EEPROM_AT25 is not set
778CONFIG_SPI_SPIDEV=y 799CONFIG_SPI_SPIDEV=y
779# CONFIG_SPI_TLE62X0 is not set 800# CONFIG_SPI_TLE62X0 is not set
780CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 801CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -924,6 +945,7 @@ CONFIG_FB_OF=y
924# CONFIG_FB_VIRTUAL is not set 945# CONFIG_FB_VIRTUAL is not set
925# CONFIG_FB_METRONOME is not set 946# CONFIG_FB_METRONOME is not set
926# CONFIG_FB_MB862XX is not set 947# CONFIG_FB_MB862XX is not set
948# CONFIG_FB_BROADSHEET is not set
927# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 949# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
928 950
929# 951#
@@ -956,7 +978,6 @@ CONFIG_HID=y
956# 978#
957# Special HID drivers 979# Special HID drivers
958# 980#
959CONFIG_HID_COMPAT=y
960# CONFIG_USB_SUPPORT is not set 981# CONFIG_USB_SUPPORT is not set
961# CONFIG_UWB is not set 982# CONFIG_UWB is not set
962# CONFIG_MMC is not set 983# CONFIG_MMC is not set
@@ -967,6 +988,7 @@ CONFIG_HID_COMPAT=y
967# CONFIG_EDAC is not set 988# CONFIG_EDAC is not set
968# CONFIG_RTC_CLASS is not set 989# CONFIG_RTC_CLASS is not set
969# CONFIG_DMADEVICES is not set 990# CONFIG_DMADEVICES is not set
991# CONFIG_AUXDISPLAY is not set
970# CONFIG_UIO is not set 992# CONFIG_UIO is not set
971# CONFIG_STAGING is not set 993# CONFIG_STAGING is not set
972 994
@@ -977,6 +999,7 @@ CONFIG_EXT2_FS=y
977# CONFIG_EXT2_FS_XATTR is not set 999# CONFIG_EXT2_FS_XATTR is not set
978# CONFIG_EXT2_FS_XIP is not set 1000# CONFIG_EXT2_FS_XIP is not set
979CONFIG_EXT3_FS=y 1001CONFIG_EXT3_FS=y
1002# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
980CONFIG_EXT3_FS_XATTR=y 1003CONFIG_EXT3_FS_XATTR=y
981# CONFIG_EXT3_FS_POSIX_ACL is not set 1004# CONFIG_EXT3_FS_POSIX_ACL is not set
982# CONFIG_EXT3_FS_SECURITY is not set 1005# CONFIG_EXT3_FS_SECURITY is not set
@@ -999,6 +1022,11 @@ CONFIG_INOTIFY_USER=y
999# CONFIG_FUSE_FS is not set 1022# CONFIG_FUSE_FS is not set
1000 1023
1001# 1024#
1025# Caches
1026#
1027# CONFIG_FSCACHE is not set
1028
1029#
1002# CD-ROM/DVD Filesystems 1030# CD-ROM/DVD Filesystems
1003# 1031#
1004# CONFIG_ISO9660_FS is not set 1032# CONFIG_ISO9660_FS is not set
@@ -1052,6 +1080,7 @@ CONFIG_JFFS2_RTIME=y
1052# CONFIG_ROMFS_FS is not set 1080# CONFIG_ROMFS_FS is not set
1053# CONFIG_SYSV_FS is not set 1081# CONFIG_SYSV_FS is not set
1054# CONFIG_UFS_FS is not set 1082# CONFIG_UFS_FS is not set
1083# CONFIG_NILFS2_FS is not set
1055CONFIG_NETWORK_FILESYSTEMS=y 1084CONFIG_NETWORK_FILESYSTEMS=y
1056CONFIG_NFS_FS=y 1085CONFIG_NFS_FS=y
1057CONFIG_NFS_V3=y 1086CONFIG_NFS_V3=y
@@ -1064,7 +1093,6 @@ CONFIG_LOCKD_V4=y
1064CONFIG_NFS_COMMON=y 1093CONFIG_NFS_COMMON=y
1065CONFIG_SUNRPC=y 1094CONFIG_SUNRPC=y
1066CONFIG_SUNRPC_GSS=y 1095CONFIG_SUNRPC_GSS=y
1067# CONFIG_SUNRPC_REGISTER_V4 is not set
1068CONFIG_RPCSEC_GSS_KRB5=y 1096CONFIG_RPCSEC_GSS_KRB5=y
1069# CONFIG_RPCSEC_GSS_SPKM3 is not set 1097# CONFIG_RPCSEC_GSS_SPKM3 is not set
1070# CONFIG_SMB_FS is not set 1098# CONFIG_SMB_FS is not set
@@ -1095,6 +1123,7 @@ CONFIG_PARTITION_ADVANCED=y
1095CONFIG_UCC_SLOW=y 1123CONFIG_UCC_SLOW=y
1096CONFIG_UCC_FAST=y 1124CONFIG_UCC_FAST=y
1097CONFIG_UCC=y 1125CONFIG_UCC=y
1126# CONFIG_BINARY_PRINTF is not set
1098 1127
1099# 1128#
1100# Library routines 1129# Library routines
@@ -1110,11 +1139,12 @@ CONFIG_CRC32=y
1110# CONFIG_LIBCRC32C is not set 1139# CONFIG_LIBCRC32C is not set
1111CONFIG_ZLIB_INFLATE=y 1140CONFIG_ZLIB_INFLATE=y
1112CONFIG_ZLIB_DEFLATE=y 1141CONFIG_ZLIB_DEFLATE=y
1113CONFIG_PLIST=y 1142CONFIG_DECOMPRESS_GZIP=y
1114CONFIG_HAS_IOMEM=y 1143CONFIG_HAS_IOMEM=y
1115CONFIG_HAS_IOPORT=y 1144CONFIG_HAS_IOPORT=y
1116CONFIG_HAS_DMA=y 1145CONFIG_HAS_DMA=y
1117CONFIG_HAVE_LMB=y 1146CONFIG_HAVE_LMB=y
1147CONFIG_NLATTR=y
1118 1148
1119# 1149#
1120# Kernel hacking 1150# Kernel hacking
@@ -1136,13 +1166,24 @@ CONFIG_FRAME_WARN=1024
1136# CONFIG_LATENCYTOP is not set 1166# CONFIG_LATENCYTOP is not set
1137CONFIG_SYSCTL_SYSCALL_CHECK=y 1167CONFIG_SYSCTL_SYSCALL_CHECK=y
1138CONFIG_HAVE_FUNCTION_TRACER=y 1168CONFIG_HAVE_FUNCTION_TRACER=y
1169CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1139CONFIG_HAVE_DYNAMIC_FTRACE=y 1170CONFIG_HAVE_DYNAMIC_FTRACE=y
1140CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1171CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1172CONFIG_TRACING_SUPPORT=y
1141 1173
1142# 1174#
1143# Tracers 1175# Tracers
1144# 1176#
1145# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1177# CONFIG_FUNCTION_TRACER is not set
1178# CONFIG_SCHED_TRACER is not set
1179# CONFIG_CONTEXT_SWITCH_TRACER is not set
1180# CONFIG_EVENT_TRACER is not set
1181# CONFIG_BOOT_TRACER is not set
1182# CONFIG_TRACE_BRANCH_PROFILING is not set
1183# CONFIG_STACK_TRACER is not set
1184# CONFIG_KMEMTRACE is not set
1185# CONFIG_WORKQUEUE_TRACER is not set
1186# CONFIG_BLK_DEV_IO_TRACE is not set
1146# CONFIG_SAMPLES is not set 1187# CONFIG_SAMPLES is not set
1147CONFIG_HAVE_ARCH_KGDB=y 1188CONFIG_HAVE_ARCH_KGDB=y
1148CONFIG_PRINT_STACK_DEPTH=64 1189CONFIG_PRINT_STACK_DEPTH=64
@@ -1182,10 +1223,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1182CONFIG_CRYPTO_HASH=y 1223CONFIG_CRYPTO_HASH=y
1183CONFIG_CRYPTO_HASH2=y 1224CONFIG_CRYPTO_HASH2=y
1184CONFIG_CRYPTO_RNG2=y 1225CONFIG_CRYPTO_RNG2=y
1226CONFIG_CRYPTO_PCOMP=y
1185CONFIG_CRYPTO_MANAGER=y 1227CONFIG_CRYPTO_MANAGER=y
1186CONFIG_CRYPTO_MANAGER2=y 1228CONFIG_CRYPTO_MANAGER2=y
1187# CONFIG_CRYPTO_GF128MUL is not set 1229# CONFIG_CRYPTO_GF128MUL is not set
1188# CONFIG_CRYPTO_NULL is not set 1230# CONFIG_CRYPTO_NULL is not set
1231CONFIG_CRYPTO_WORKQUEUE=y
1189# CONFIG_CRYPTO_CRYPTD is not set 1232# CONFIG_CRYPTO_CRYPTD is not set
1190# CONFIG_CRYPTO_AUTHENC is not set 1233# CONFIG_CRYPTO_AUTHENC is not set
1191# CONFIG_CRYPTO_TEST is not set 1234# CONFIG_CRYPTO_TEST is not set
@@ -1254,6 +1297,7 @@ CONFIG_CRYPTO_DES=y
1254# Compression 1297# Compression
1255# 1298#
1256# CONFIG_CRYPTO_DEFLATE is not set 1299# CONFIG_CRYPTO_DEFLATE is not set
1300# CONFIG_CRYPTO_ZLIB is not set
1257# CONFIG_CRYPTO_LZO is not set 1301# CONFIG_CRYPTO_LZO is not set
1258 1302
1259# 1303#
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index e42f6b3917d2..bf636fd560ad 100644
--- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:59 2009 4# Wed May 13 17:22:12 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,20 +98,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94CONFIG_KALLSYMS=y 109CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 110# CONFIG_KALLSYMS_EXTRA_PASS is not set
111# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 112CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 113CONFIG_PRINTK=y
98CONFIG_BUG=y 114CONFIG_BUG=y
99CONFIG_ELF_CORE=y 115CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y 116CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y 117CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104# CONFIG_EPOLL is not set 118# CONFIG_EPOLL is not set
105CONFIG_SIGNALFD=y 119CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 120CONFIG_TIMERFD=y
@@ -109,10 +123,12 @@ CONFIG_SHMEM=y
109CONFIG_AIO=y 123CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 124CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y 125CONFIG_PCI_QUIRKS=y
126CONFIG_COMPAT_BRK=y
112CONFIG_SLAB=y 127CONFIG_SLAB=y
113# CONFIG_SLUB is not set 128# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 133# CONFIG_KPROBES is not set
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 134CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -120,6 +136,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 136CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 137CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 138CONFIG_HAVE_ARCH_TRACEHOOK=y
139# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 140# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 141CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 142CONFIG_RT_MUTEXES=y
@@ -132,7 +149,6 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_SRCVERSION_ALL is not set 149# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_BLOCK=y 150CONFIG_BLOCK=y
134# CONFIG_LBD is not set 151# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_BLK_DEV_BSG is not set 152# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 153# CONFIG_BLK_DEV_INTEGRITY is not set
138 154
@@ -148,18 +164,11 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
149# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 166CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 167# CONFIG_FREEZER is not set
157 168
158# 169#
159# Platform support 170# Platform support
160# 171#
161CONFIG_PPC_MULTIPLATFORM=y
162CONFIG_CLASSIC32=y
163# CONFIG_PPC_CHRP is not set 172# CONFIG_PPC_CHRP is not set
164# CONFIG_MPC5121_ADS is not set 173# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set 174# CONFIG_MPC5121_GENERIC is not set
@@ -184,6 +193,8 @@ CONFIG_MPC837x_MDS=y
184CONFIG_PPC_MPC837x=y 193CONFIG_PPC_MPC837x=y
185# CONFIG_PPC_86xx is not set 194# CONFIG_PPC_86xx is not set
186# CONFIG_EMBEDDED6xx is not set 195# CONFIG_EMBEDDED6xx is not set
196# CONFIG_AMIGAONE is not set
197CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
187CONFIG_IPIC=y 198CONFIG_IPIC=y
188# CONFIG_MPIC is not set 199# CONFIG_MPIC is not set
189# CONFIG_MPIC_WEIRD is not set 200# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 286# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +309,6 @@ CONFIG_NET=y
294# 309#
295# Networking options 310# Networking options
296# 311#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 312CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -350,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 364# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
367# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 368# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 369# CONFIG_DCB is not set
355 370
@@ -362,7 +377,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 377# CONFIG_IRDA is not set
363# CONFIG_BT is not set 378# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 379# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set
366CONFIG_WIRELESS=y 380CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
368CONFIG_WIRELESS_OLD_REGULATORY=y 382CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -410,13 +424,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
410# CONFIG_BLK_DEV_HD is not set 424# CONFIG_BLK_DEV_HD is not set
411CONFIG_MISC_DEVICES=y 425CONFIG_MISC_DEVICES=y
412# CONFIG_PHANTOM is not set 426# CONFIG_PHANTOM is not set
413# CONFIG_EEPROM_93CX6 is not set
414# CONFIG_SGI_IOC4 is not set 427# CONFIG_SGI_IOC4 is not set
415# CONFIG_TIFM_CORE is not set 428# CONFIG_TIFM_CORE is not set
416# CONFIG_ICS932S401 is not set 429# CONFIG_ICS932S401 is not set
417# CONFIG_ENCLOSURE_SERVICES is not set 430# CONFIG_ENCLOSURE_SERVICES is not set
418# CONFIG_HP_ILO is not set 431# CONFIG_HP_ILO is not set
432# CONFIG_ISL29003 is not set
419# CONFIG_C2PORT is not set 433# CONFIG_C2PORT is not set
434
435#
436# EEPROM support
437#
438# CONFIG_EEPROM_AT24 is not set
439# CONFIG_EEPROM_LEGACY is not set
440# CONFIG_EEPROM_93CX6 is not set
420CONFIG_HAVE_IDE=y 441CONFIG_HAVE_IDE=y
421# CONFIG_IDE is not set 442# CONFIG_IDE is not set
422 443
@@ -474,9 +495,11 @@ CONFIG_SCSI_LOWLEVEL=y
474# CONFIG_MEGARAID_NEWGEN is not set 495# CONFIG_MEGARAID_NEWGEN is not set
475# CONFIG_MEGARAID_LEGACY is not set 496# CONFIG_MEGARAID_LEGACY is not set
476# CONFIG_MEGARAID_SAS is not set 497# CONFIG_MEGARAID_SAS is not set
498# CONFIG_SCSI_MPT2SAS is not set
477# CONFIG_SCSI_HPTIOP is not set 499# CONFIG_SCSI_HPTIOP is not set
478# CONFIG_SCSI_BUSLOGIC is not set 500# CONFIG_SCSI_BUSLOGIC is not set
479# CONFIG_LIBFC is not set 501# CONFIG_LIBFC is not set
502# CONFIG_LIBFCOE is not set
480# CONFIG_FCOE is not set 503# CONFIG_FCOE is not set
481# CONFIG_SCSI_DMX3191D is not set 504# CONFIG_SCSI_DMX3191D is not set
482# CONFIG_SCSI_EATA is not set 505# CONFIG_SCSI_EATA is not set
@@ -499,6 +522,7 @@ CONFIG_SCSI_LOWLEVEL=y
499# CONFIG_SCSI_DEBUG is not set 522# CONFIG_SCSI_DEBUG is not set
500# CONFIG_SCSI_SRP is not set 523# CONFIG_SCSI_SRP is not set
501# CONFIG_SCSI_DH is not set 524# CONFIG_SCSI_DH is not set
525# CONFIG_SCSI_OSD_INITIATOR is not set
502CONFIG_ATA=y 526CONFIG_ATA=y
503# CONFIG_ATA_NONSTANDARD is not set 527# CONFIG_ATA_NONSTANDARD is not set
504CONFIG_SATA_PMP=y 528CONFIG_SATA_PMP=y
@@ -575,6 +599,7 @@ CONFIG_ATA_SFF=y
575# CONFIG_I2O is not set 599# CONFIG_I2O is not set
576# CONFIG_MACINTOSH_DRIVERS is not set 600# CONFIG_MACINTOSH_DRIVERS is not set
577CONFIG_NETDEVICES=y 601CONFIG_NETDEVICES=y
602CONFIG_COMPAT_NET_DEV_OPS=y
578# CONFIG_DUMMY is not set 603# CONFIG_DUMMY is not set
579# CONFIG_BONDING is not set 604# CONFIG_BONDING is not set
580# CONFIG_MACVLAN is not set 605# CONFIG_MACVLAN is not set
@@ -608,6 +633,8 @@ CONFIG_MII=y
608# CONFIG_SUNGEM is not set 633# CONFIG_SUNGEM is not set
609# CONFIG_CASSINI is not set 634# CONFIG_CASSINI is not set
610# CONFIG_NET_VENDOR_3COM is not set 635# CONFIG_NET_VENDOR_3COM is not set
636# CONFIG_ETHOC is not set
637# CONFIG_DNET is not set
611# CONFIG_NET_TULIP is not set 638# CONFIG_NET_TULIP is not set
612# CONFIG_HP100 is not set 639# CONFIG_HP100 is not set
613# CONFIG_IBM_NEW_EMAC_ZMII is not set 640# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -627,6 +654,7 @@ CONFIG_NETDEV_1000=y
627# CONFIG_E1000E is not set 654# CONFIG_E1000E is not set
628# CONFIG_IP1000 is not set 655# CONFIG_IP1000 is not set
629# CONFIG_IGB is not set 656# CONFIG_IGB is not set
657# CONFIG_IGBVF is not set
630# CONFIG_NS83820 is not set 658# CONFIG_NS83820 is not set
631# CONFIG_HAMACHI is not set 659# CONFIG_HAMACHI is not set
632# CONFIG_YELLOWFIN is not set 660# CONFIG_YELLOWFIN is not set
@@ -637,11 +665,12 @@ CONFIG_NETDEV_1000=y
637# CONFIG_VIA_VELOCITY is not set 665# CONFIG_VIA_VELOCITY is not set
638# CONFIG_TIGON3 is not set 666# CONFIG_TIGON3 is not set
639# CONFIG_BNX2 is not set 667# CONFIG_BNX2 is not set
668CONFIG_FSL_PQ_MDIO=y
640CONFIG_GIANFAR=y 669CONFIG_GIANFAR=y
641# CONFIG_MV643XX_ETH is not set
642# CONFIG_QLA3XXX is not set 670# CONFIG_QLA3XXX is not set
643# CONFIG_ATL1 is not set 671# CONFIG_ATL1 is not set
644# CONFIG_ATL1E is not set 672# CONFIG_ATL1E is not set
673# CONFIG_ATL1C is not set
645# CONFIG_JME is not set 674# CONFIG_JME is not set
646CONFIG_NETDEV_10000=y 675CONFIG_NETDEV_10000=y
647# CONFIG_CHELSIO_T1 is not set 676# CONFIG_CHELSIO_T1 is not set
@@ -651,6 +680,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
651# CONFIG_IXGBE is not set 680# CONFIG_IXGBE is not set
652# CONFIG_IXGB is not set 681# CONFIG_IXGB is not set
653# CONFIG_S2IO is not set 682# CONFIG_S2IO is not set
683# CONFIG_VXGE is not set
654# CONFIG_MYRI10GE is not set 684# CONFIG_MYRI10GE is not set
655# CONFIG_NETXEN_NIC is not set 685# CONFIG_NETXEN_NIC is not set
656# CONFIG_NIU is not set 686# CONFIG_NIU is not set
@@ -660,6 +690,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
660# CONFIG_BNX2X is not set 690# CONFIG_BNX2X is not set
661# CONFIG_QLGE is not set 691# CONFIG_QLGE is not set
662# CONFIG_SFC is not set 692# CONFIG_SFC is not set
693# CONFIG_BE2NET is not set
663# CONFIG_TR is not set 694# CONFIG_TR is not set
664 695
665# 696#
@@ -667,7 +698,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
667# 698#
668# CONFIG_WLAN_PRE80211 is not set 699# CONFIG_WLAN_PRE80211 is not set
669# CONFIG_WLAN_80211 is not set 700# CONFIG_WLAN_80211 is not set
670# CONFIG_IWLWIFI_LEDS is not set
671 701
672# 702#
673# Enable WiMAX (Networking options) to see the WiMAX drivers 703# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -811,12 +841,9 @@ CONFIG_I2C_MPC=y
811# Miscellaneous I2C Chip support 841# Miscellaneous I2C Chip support
812# 842#
813# CONFIG_DS1682 is not set 843# CONFIG_DS1682 is not set
814# CONFIG_EEPROM_AT24 is not set
815# CONFIG_EEPROM_LEGACY is not set
816# CONFIG_SENSORS_PCF8574 is not set 844# CONFIG_SENSORS_PCF8574 is not set
817# CONFIG_PCF8575 is not set 845# CONFIG_PCF8575 is not set
818# CONFIG_SENSORS_PCA9539 is not set 846# CONFIG_SENSORS_PCA9539 is not set
819# CONFIG_SENSORS_PCF8591 is not set
820# CONFIG_SENSORS_MAX6875 is not set 847# CONFIG_SENSORS_MAX6875 is not set
821# CONFIG_SENSORS_TSL2550 is not set 848# CONFIG_SENSORS_TSL2550 is not set
822# CONFIG_I2C_DEBUG_CORE is not set 849# CONFIG_I2C_DEBUG_CORE is not set
@@ -848,6 +875,7 @@ CONFIG_HWMON=y
848# CONFIG_SENSORS_F71805F is not set 875# CONFIG_SENSORS_F71805F is not set
849# CONFIG_SENSORS_F71882FG is not set 876# CONFIG_SENSORS_F71882FG is not set
850# CONFIG_SENSORS_F75375S is not set 877# CONFIG_SENSORS_F75375S is not set
878# CONFIG_SENSORS_G760A is not set
851# CONFIG_SENSORS_GL518SM is not set 879# CONFIG_SENSORS_GL518SM is not set
852# CONFIG_SENSORS_GL520SM is not set 880# CONFIG_SENSORS_GL520SM is not set
853# CONFIG_SENSORS_IT87 is not set 881# CONFIG_SENSORS_IT87 is not set
@@ -862,11 +890,14 @@ CONFIG_HWMON=y
862# CONFIG_SENSORS_LM90 is not set 890# CONFIG_SENSORS_LM90 is not set
863# CONFIG_SENSORS_LM92 is not set 891# CONFIG_SENSORS_LM92 is not set
864# CONFIG_SENSORS_LM93 is not set 892# CONFIG_SENSORS_LM93 is not set
893# CONFIG_SENSORS_LTC4215 is not set
865# CONFIG_SENSORS_LTC4245 is not set 894# CONFIG_SENSORS_LTC4245 is not set
895# CONFIG_SENSORS_LM95241 is not set
866# CONFIG_SENSORS_MAX1619 is not set 896# CONFIG_SENSORS_MAX1619 is not set
867# CONFIG_SENSORS_MAX6650 is not set 897# CONFIG_SENSORS_MAX6650 is not set
868# CONFIG_SENSORS_PC87360 is not set 898# CONFIG_SENSORS_PC87360 is not set
869# CONFIG_SENSORS_PC87427 is not set 899# CONFIG_SENSORS_PC87427 is not set
900# CONFIG_SENSORS_PCF8591 is not set
870# CONFIG_SENSORS_SIS5595 is not set 901# CONFIG_SENSORS_SIS5595 is not set
871# CONFIG_SENSORS_DME1737 is not set 902# CONFIG_SENSORS_DME1737 is not set
872# CONFIG_SENSORS_SMSC47M1 is not set 903# CONFIG_SENSORS_SMSC47M1 is not set
@@ -964,7 +995,6 @@ CONFIG_HID=y
964# 995#
965# Special HID drivers 996# Special HID drivers
966# 997#
967CONFIG_HID_COMPAT=y
968CONFIG_USB_SUPPORT=y 998CONFIG_USB_SUPPORT=y
969CONFIG_USB_ARCH_HAS_HCD=y 999CONFIG_USB_ARCH_HAS_HCD=y
970CONFIG_USB_ARCH_HAS_OHCI=y 1000CONFIG_USB_ARCH_HAS_OHCI=y
@@ -978,7 +1008,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
978# 1008#
979 1009
980# 1010#
981# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1011# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
982# 1012#
983# CONFIG_USB_GADGET is not set 1013# CONFIG_USB_GADGET is not set
984 1014
@@ -994,6 +1024,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
994# CONFIG_EDAC is not set 1024# CONFIG_EDAC is not set
995# CONFIG_RTC_CLASS is not set 1025# CONFIG_RTC_CLASS is not set
996# CONFIG_DMADEVICES is not set 1026# CONFIG_DMADEVICES is not set
1027# CONFIG_AUXDISPLAY is not set
997# CONFIG_UIO is not set 1028# CONFIG_UIO is not set
998# CONFIG_STAGING is not set 1029# CONFIG_STAGING is not set
999 1030
@@ -1004,6 +1035,7 @@ CONFIG_EXT2_FS=y
1004# CONFIG_EXT2_FS_XATTR is not set 1035# CONFIG_EXT2_FS_XATTR is not set
1005# CONFIG_EXT2_FS_XIP is not set 1036# CONFIG_EXT2_FS_XIP is not set
1006CONFIG_EXT3_FS=y 1037CONFIG_EXT3_FS=y
1038# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1007CONFIG_EXT3_FS_XATTR=y 1039CONFIG_EXT3_FS_XATTR=y
1008# CONFIG_EXT3_FS_POSIX_ACL is not set 1040# CONFIG_EXT3_FS_POSIX_ACL is not set
1009# CONFIG_EXT3_FS_SECURITY is not set 1041# CONFIG_EXT3_FS_SECURITY is not set
@@ -1026,6 +1058,11 @@ CONFIG_INOTIFY_USER=y
1026# CONFIG_FUSE_FS is not set 1058# CONFIG_FUSE_FS is not set
1027 1059
1028# 1060#
1061# Caches
1062#
1063# CONFIG_FSCACHE is not set
1064
1065#
1029# CD-ROM/DVD Filesystems 1066# CD-ROM/DVD Filesystems
1030# 1067#
1031# CONFIG_ISO9660_FS is not set 1068# CONFIG_ISO9660_FS is not set
@@ -1068,6 +1105,7 @@ CONFIG_MISC_FILESYSTEMS=y
1068# CONFIG_ROMFS_FS is not set 1105# CONFIG_ROMFS_FS is not set
1069# CONFIG_SYSV_FS is not set 1106# CONFIG_SYSV_FS is not set
1070# CONFIG_UFS_FS is not set 1107# CONFIG_UFS_FS is not set
1108# CONFIG_NILFS2_FS is not set
1071CONFIG_NETWORK_FILESYSTEMS=y 1109CONFIG_NETWORK_FILESYSTEMS=y
1072CONFIG_NFS_FS=y 1110CONFIG_NFS_FS=y
1073CONFIG_NFS_V3=y 1111CONFIG_NFS_V3=y
@@ -1080,7 +1118,6 @@ CONFIG_LOCKD_V4=y
1080CONFIG_NFS_COMMON=y 1118CONFIG_NFS_COMMON=y
1081CONFIG_SUNRPC=y 1119CONFIG_SUNRPC=y
1082CONFIG_SUNRPC_GSS=y 1120CONFIG_SUNRPC_GSS=y
1083# CONFIG_SUNRPC_REGISTER_V4 is not set
1084CONFIG_RPCSEC_GSS_KRB5=y 1121CONFIG_RPCSEC_GSS_KRB5=y
1085# CONFIG_RPCSEC_GSS_SPKM3 is not set 1122# CONFIG_RPCSEC_GSS_SPKM3 is not set
1086# CONFIG_SMB_FS is not set 1123# CONFIG_SMB_FS is not set
@@ -1112,6 +1149,7 @@ CONFIG_MSDOS_PARTITION=y
1112# CONFIG_SYSV68_PARTITION is not set 1149# CONFIG_SYSV68_PARTITION is not set
1113# CONFIG_NLS is not set 1150# CONFIG_NLS is not set
1114# CONFIG_DLM is not set 1151# CONFIG_DLM is not set
1152# CONFIG_BINARY_PRINTF is not set
1115 1153
1116# 1154#
1117# Library routines 1155# Library routines
@@ -1125,11 +1163,13 @@ CONFIG_CRC_T10DIF=y
1125CONFIG_CRC32=y 1163CONFIG_CRC32=y
1126# CONFIG_CRC7 is not set 1164# CONFIG_CRC7 is not set
1127# CONFIG_LIBCRC32C is not set 1165# CONFIG_LIBCRC32C is not set
1128CONFIG_PLIST=y 1166CONFIG_ZLIB_INFLATE=y
1167CONFIG_DECOMPRESS_GZIP=y
1129CONFIG_HAS_IOMEM=y 1168CONFIG_HAS_IOMEM=y
1130CONFIG_HAS_IOPORT=y 1169CONFIG_HAS_IOPORT=y
1131CONFIG_HAS_DMA=y 1170CONFIG_HAS_DMA=y
1132CONFIG_HAVE_LMB=y 1171CONFIG_HAVE_LMB=y
1172CONFIG_NLATTR=y
1133 1173
1134# 1174#
1135# Kernel hacking 1175# Kernel hacking
@@ -1149,13 +1189,24 @@ CONFIG_FRAME_WARN=1024
1149# CONFIG_LATENCYTOP is not set 1189# CONFIG_LATENCYTOP is not set
1150CONFIG_SYSCTL_SYSCALL_CHECK=y 1190CONFIG_SYSCTL_SYSCALL_CHECK=y
1151CONFIG_HAVE_FUNCTION_TRACER=y 1191CONFIG_HAVE_FUNCTION_TRACER=y
1192CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1152CONFIG_HAVE_DYNAMIC_FTRACE=y 1193CONFIG_HAVE_DYNAMIC_FTRACE=y
1153CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1194CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1195CONFIG_TRACING_SUPPORT=y
1154 1196
1155# 1197#
1156# Tracers 1198# Tracers
1157# 1199#
1158# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1200# CONFIG_FUNCTION_TRACER is not set
1201# CONFIG_SCHED_TRACER is not set
1202# CONFIG_CONTEXT_SWITCH_TRACER is not set
1203# CONFIG_EVENT_TRACER is not set
1204# CONFIG_BOOT_TRACER is not set
1205# CONFIG_TRACE_BRANCH_PROFILING is not set
1206# CONFIG_STACK_TRACER is not set
1207# CONFIG_KMEMTRACE is not set
1208# CONFIG_WORKQUEUE_TRACER is not set
1209# CONFIG_BLK_DEV_IO_TRACE is not set
1159# CONFIG_SAMPLES is not set 1210# CONFIG_SAMPLES is not set
1160CONFIG_HAVE_ARCH_KGDB=y 1211CONFIG_HAVE_ARCH_KGDB=y
1161CONFIG_PRINT_STACK_DEPTH=64 1212CONFIG_PRINT_STACK_DEPTH=64
@@ -1184,10 +1235,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1184CONFIG_CRYPTO_HASH=y 1235CONFIG_CRYPTO_HASH=y
1185CONFIG_CRYPTO_HASH2=y 1236CONFIG_CRYPTO_HASH2=y
1186CONFIG_CRYPTO_RNG2=y 1237CONFIG_CRYPTO_RNG2=y
1238CONFIG_CRYPTO_PCOMP=y
1187CONFIG_CRYPTO_MANAGER=y 1239CONFIG_CRYPTO_MANAGER=y
1188CONFIG_CRYPTO_MANAGER2=y 1240CONFIG_CRYPTO_MANAGER2=y
1189# CONFIG_CRYPTO_GF128MUL is not set 1241# CONFIG_CRYPTO_GF128MUL is not set
1190# CONFIG_CRYPTO_NULL is not set 1242# CONFIG_CRYPTO_NULL is not set
1243CONFIG_CRYPTO_WORKQUEUE=y
1191# CONFIG_CRYPTO_CRYPTD is not set 1244# CONFIG_CRYPTO_CRYPTD is not set
1192# CONFIG_CRYPTO_AUTHENC is not set 1245# CONFIG_CRYPTO_AUTHENC is not set
1193# CONFIG_CRYPTO_TEST is not set 1246# CONFIG_CRYPTO_TEST is not set
@@ -1256,6 +1309,7 @@ CONFIG_CRYPTO_DES=y
1256# Compression 1309# Compression
1257# 1310#
1258# CONFIG_CRYPTO_DEFLATE is not set 1311# CONFIG_CRYPTO_DEFLATE is not set
1312# CONFIG_CRYPTO_ZLIB is not set
1259# CONFIG_CRYPTO_LZO is not set 1313# CONFIG_CRYPTO_LZO is not set
1260 1314
1261# 1315#
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index 408022f79a50..fe6454eacbdb 100644
--- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:01 2009 4# Wed May 13 17:22:14 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,20 +98,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94CONFIG_KALLSYMS=y 109CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 110# CONFIG_KALLSYMS_EXTRA_PASS is not set
111# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 112CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 113CONFIG_PRINTK=y
98CONFIG_BUG=y 114CONFIG_BUG=y
99CONFIG_ELF_CORE=y 115CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y 116CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y 117CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104# CONFIG_EPOLL is not set 118# CONFIG_EPOLL is not set
105CONFIG_SIGNALFD=y 119CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 120CONFIG_TIMERFD=y
@@ -109,10 +123,12 @@ CONFIG_SHMEM=y
109CONFIG_AIO=y 123CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 124CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y 125CONFIG_PCI_QUIRKS=y
126CONFIG_COMPAT_BRK=y
112CONFIG_SLAB=y 127CONFIG_SLAB=y
113# CONFIG_SLUB is not set 128# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 133# CONFIG_KPROBES is not set
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 134CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -120,6 +136,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 136CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 137CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 138CONFIG_HAVE_ARCH_TRACEHOOK=y
139# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 140# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 141CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 142CONFIG_RT_MUTEXES=y
@@ -132,7 +149,6 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_SRCVERSION_ALL is not set 149# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_BLOCK=y 150CONFIG_BLOCK=y
134# CONFIG_LBD is not set 151# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_BLK_DEV_BSG is not set 152# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 153# CONFIG_BLK_DEV_INTEGRITY is not set
138 154
@@ -148,18 +164,11 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
149# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 166CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 167# CONFIG_FREEZER is not set
157 168
158# 169#
159# Platform support 170# Platform support
160# 171#
161CONFIG_PPC_MULTIPLATFORM=y
162CONFIG_CLASSIC32=y
163# CONFIG_PPC_CHRP is not set 172# CONFIG_PPC_CHRP is not set
164# CONFIG_MPC5121_ADS is not set 173# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set 174# CONFIG_MPC5121_GENERIC is not set
@@ -184,6 +193,8 @@ CONFIG_MPC837x_RDB=y
184CONFIG_PPC_MPC837x=y 193CONFIG_PPC_MPC837x=y
185# CONFIG_PPC_86xx is not set 194# CONFIG_PPC_86xx is not set
186# CONFIG_EMBEDDED6xx is not set 195# CONFIG_EMBEDDED6xx is not set
196# CONFIG_AMIGAONE is not set
197CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
187CONFIG_IPIC=y 198CONFIG_IPIC=y
188# CONFIG_MPIC is not set 199# CONFIG_MPIC is not set
189# CONFIG_MPIC_WEIRD is not set 200# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 286# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +309,6 @@ CONFIG_NET=y
294# 309#
295# Networking options 310# Networking options
296# 311#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 312CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -345,6 +359,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_LAPB is not set 359# CONFIG_LAPB is not set
346# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
347# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
362# CONFIG_PHONET is not set
348# CONFIG_NET_SCHED is not set 363# CONFIG_NET_SCHED is not set
349# CONFIG_DCB is not set 364# CONFIG_DCB is not set
350 365
@@ -357,7 +372,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
357# CONFIG_IRDA is not set 372# CONFIG_IRDA is not set
358# CONFIG_BT is not set 373# CONFIG_BT is not set
359# CONFIG_AF_RXRPC is not set 374# CONFIG_AF_RXRPC is not set
360# CONFIG_PHONET is not set
361CONFIG_WIRELESS=y 375CONFIG_WIRELESS=y
362# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
363CONFIG_WIRELESS_OLD_REGULATORY=y 377CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -406,13 +420,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
406# CONFIG_BLK_DEV_HD is not set 420# CONFIG_BLK_DEV_HD is not set
407CONFIG_MISC_DEVICES=y 421CONFIG_MISC_DEVICES=y
408# CONFIG_PHANTOM is not set 422# CONFIG_PHANTOM is not set
409# CONFIG_EEPROM_93CX6 is not set
410# CONFIG_SGI_IOC4 is not set 423# CONFIG_SGI_IOC4 is not set
411# CONFIG_TIFM_CORE is not set 424# CONFIG_TIFM_CORE is not set
412# CONFIG_ICS932S401 is not set 425# CONFIG_ICS932S401 is not set
413# CONFIG_ENCLOSURE_SERVICES is not set 426# CONFIG_ENCLOSURE_SERVICES is not set
414# CONFIG_HP_ILO is not set 427# CONFIG_HP_ILO is not set
428# CONFIG_ISL29003 is not set
415# CONFIG_C2PORT is not set 429# CONFIG_C2PORT is not set
430
431#
432# EEPROM support
433#
434# CONFIG_EEPROM_AT24 is not set
435# CONFIG_EEPROM_LEGACY is not set
436# CONFIG_EEPROM_93CX6 is not set
416CONFIG_HAVE_IDE=y 437CONFIG_HAVE_IDE=y
417# CONFIG_IDE is not set 438# CONFIG_IDE is not set
418 439
@@ -469,9 +490,11 @@ CONFIG_SCSI_LOWLEVEL=y
469# CONFIG_MEGARAID_NEWGEN is not set 490# CONFIG_MEGARAID_NEWGEN is not set
470# CONFIG_MEGARAID_LEGACY is not set 491# CONFIG_MEGARAID_LEGACY is not set
471# CONFIG_MEGARAID_SAS is not set 492# CONFIG_MEGARAID_SAS is not set
493# CONFIG_SCSI_MPT2SAS is not set
472# CONFIG_SCSI_HPTIOP is not set 494# CONFIG_SCSI_HPTIOP is not set
473# CONFIG_SCSI_BUSLOGIC is not set 495# CONFIG_SCSI_BUSLOGIC is not set
474# CONFIG_LIBFC is not set 496# CONFIG_LIBFC is not set
497# CONFIG_LIBFCOE is not set
475# CONFIG_FCOE is not set 498# CONFIG_FCOE is not set
476# CONFIG_SCSI_DMX3191D is not set 499# CONFIG_SCSI_DMX3191D is not set
477# CONFIG_SCSI_EATA is not set 500# CONFIG_SCSI_EATA is not set
@@ -494,6 +517,7 @@ CONFIG_SCSI_LOWLEVEL=y
494# CONFIG_SCSI_DEBUG is not set 517# CONFIG_SCSI_DEBUG is not set
495# CONFIG_SCSI_SRP is not set 518# CONFIG_SCSI_SRP is not set
496# CONFIG_SCSI_DH is not set 519# CONFIG_SCSI_DH is not set
520# CONFIG_SCSI_OSD_INITIATOR is not set
497CONFIG_ATA=y 521CONFIG_ATA=y
498# CONFIG_ATA_NONSTANDARD is not set 522# CONFIG_ATA_NONSTANDARD is not set
499CONFIG_SATA_PMP=y 523CONFIG_SATA_PMP=y
@@ -563,7 +587,7 @@ CONFIG_MD_AUTODETECT=y
563CONFIG_MD_RAID1=y 587CONFIG_MD_RAID1=y
564# CONFIG_MD_RAID10 is not set 588# CONFIG_MD_RAID10 is not set
565CONFIG_MD_RAID456=y 589CONFIG_MD_RAID456=y
566CONFIG_MD_RAID5_RESHAPE=y 590CONFIG_MD_RAID6_PQ=y
567# CONFIG_MD_MULTIPATH is not set 591# CONFIG_MD_MULTIPATH is not set
568# CONFIG_MD_FAULTY is not set 592# CONFIG_MD_FAULTY is not set
569# CONFIG_BLK_DEV_DM is not set 593# CONFIG_BLK_DEV_DM is not set
@@ -581,6 +605,7 @@ CONFIG_MD_RAID5_RESHAPE=y
581# CONFIG_I2O is not set 605# CONFIG_I2O is not set
582# CONFIG_MACINTOSH_DRIVERS is not set 606# CONFIG_MACINTOSH_DRIVERS is not set
583CONFIG_NETDEVICES=y 607CONFIG_NETDEVICES=y
608CONFIG_COMPAT_NET_DEV_OPS=y
584# CONFIG_DUMMY is not set 609# CONFIG_DUMMY is not set
585# CONFIG_BONDING is not set 610# CONFIG_BONDING is not set
586# CONFIG_MACVLAN is not set 611# CONFIG_MACVLAN is not set
@@ -614,6 +639,8 @@ CONFIG_MII=y
614# CONFIG_SUNGEM is not set 639# CONFIG_SUNGEM is not set
615# CONFIG_CASSINI is not set 640# CONFIG_CASSINI is not set
616# CONFIG_NET_VENDOR_3COM is not set 641# CONFIG_NET_VENDOR_3COM is not set
642# CONFIG_ETHOC is not set
643# CONFIG_DNET is not set
617# CONFIG_NET_TULIP is not set 644# CONFIG_NET_TULIP is not set
618# CONFIG_HP100 is not set 645# CONFIG_HP100 is not set
619# CONFIG_IBM_NEW_EMAC_ZMII is not set 646# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -633,6 +660,7 @@ CONFIG_NETDEV_1000=y
633# CONFIG_E1000E is not set 660# CONFIG_E1000E is not set
634# CONFIG_IP1000 is not set 661# CONFIG_IP1000 is not set
635# CONFIG_IGB is not set 662# CONFIG_IGB is not set
663# CONFIG_IGBVF is not set
636# CONFIG_NS83820 is not set 664# CONFIG_NS83820 is not set
637# CONFIG_HAMACHI is not set 665# CONFIG_HAMACHI is not set
638# CONFIG_YELLOWFIN is not set 666# CONFIG_YELLOWFIN is not set
@@ -643,11 +671,12 @@ CONFIG_NETDEV_1000=y
643# CONFIG_VIA_VELOCITY is not set 671# CONFIG_VIA_VELOCITY is not set
644# CONFIG_TIGON3 is not set 672# CONFIG_TIGON3 is not set
645# CONFIG_BNX2 is not set 673# CONFIG_BNX2 is not set
674CONFIG_FSL_PQ_MDIO=y
646CONFIG_GIANFAR=y 675CONFIG_GIANFAR=y
647# CONFIG_MV643XX_ETH is not set
648# CONFIG_QLA3XXX is not set 676# CONFIG_QLA3XXX is not set
649# CONFIG_ATL1 is not set 677# CONFIG_ATL1 is not set
650# CONFIG_ATL1E is not set 678# CONFIG_ATL1E is not set
679# CONFIG_ATL1C is not set
651# CONFIG_JME is not set 680# CONFIG_JME is not set
652# CONFIG_NETDEV_10000 is not set 681# CONFIG_NETDEV_10000 is not set
653# CONFIG_TR is not set 682# CONFIG_TR is not set
@@ -657,7 +686,6 @@ CONFIG_GIANFAR=y
657# 686#
658# CONFIG_WLAN_PRE80211 is not set 687# CONFIG_WLAN_PRE80211 is not set
659# CONFIG_WLAN_80211 is not set 688# CONFIG_WLAN_80211 is not set
660# CONFIG_IWLWIFI_LEDS is not set
661 689
662# 690#
663# Enable WiMAX (Networking options) to see the WiMAX drivers 691# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -811,12 +839,9 @@ CONFIG_I2C_MPC=y
811# Miscellaneous I2C Chip support 839# Miscellaneous I2C Chip support
812# 840#
813# CONFIG_DS1682 is not set 841# CONFIG_DS1682 is not set
814# CONFIG_EEPROM_AT24 is not set
815# CONFIG_EEPROM_LEGACY is not set
816# CONFIG_SENSORS_PCF8574 is not set 842# CONFIG_SENSORS_PCF8574 is not set
817# CONFIG_PCF8575 is not set 843# CONFIG_PCF8575 is not set
818# CONFIG_SENSORS_PCA9539 is not set 844# CONFIG_SENSORS_PCA9539 is not set
819# CONFIG_SENSORS_PCF8591 is not set
820# CONFIG_SENSORS_MAX6875 is not set 845# CONFIG_SENSORS_MAX6875 is not set
821# CONFIG_SENSORS_TSL2550 is not set 846# CONFIG_SENSORS_TSL2550 is not set
822# CONFIG_I2C_DEBUG_CORE is not set 847# CONFIG_I2C_DEBUG_CORE is not set
@@ -848,6 +873,7 @@ CONFIG_HWMON=y
848# CONFIG_SENSORS_F71805F is not set 873# CONFIG_SENSORS_F71805F is not set
849# CONFIG_SENSORS_F71882FG is not set 874# CONFIG_SENSORS_F71882FG is not set
850# CONFIG_SENSORS_F75375S is not set 875# CONFIG_SENSORS_F75375S is not set
876# CONFIG_SENSORS_G760A is not set
851# CONFIG_SENSORS_GL518SM is not set 877# CONFIG_SENSORS_GL518SM is not set
852# CONFIG_SENSORS_GL520SM is not set 878# CONFIG_SENSORS_GL520SM is not set
853# CONFIG_SENSORS_IT87 is not set 879# CONFIG_SENSORS_IT87 is not set
@@ -862,11 +888,14 @@ CONFIG_HWMON=y
862# CONFIG_SENSORS_LM90 is not set 888# CONFIG_SENSORS_LM90 is not set
863# CONFIG_SENSORS_LM92 is not set 889# CONFIG_SENSORS_LM92 is not set
864# CONFIG_SENSORS_LM93 is not set 890# CONFIG_SENSORS_LM93 is not set
891# CONFIG_SENSORS_LTC4215 is not set
865# CONFIG_SENSORS_LTC4245 is not set 892# CONFIG_SENSORS_LTC4245 is not set
893# CONFIG_SENSORS_LM95241 is not set
866# CONFIG_SENSORS_MAX1619 is not set 894# CONFIG_SENSORS_MAX1619 is not set
867# CONFIG_SENSORS_MAX6650 is not set 895# CONFIG_SENSORS_MAX6650 is not set
868# CONFIG_SENSORS_PC87360 is not set 896# CONFIG_SENSORS_PC87360 is not set
869# CONFIG_SENSORS_PC87427 is not set 897# CONFIG_SENSORS_PC87427 is not set
898# CONFIG_SENSORS_PCF8591 is not set
870# CONFIG_SENSORS_SIS5595 is not set 899# CONFIG_SENSORS_SIS5595 is not set
871# CONFIG_SENSORS_DME1737 is not set 900# CONFIG_SENSORS_DME1737 is not set
872# CONFIG_SENSORS_SMSC47M1 is not set 901# CONFIG_SENSORS_SMSC47M1 is not set
@@ -976,15 +1005,17 @@ CONFIG_USB_HID=y
976# 1005#
977# Special HID drivers 1006# Special HID drivers
978# 1007#
979CONFIG_HID_COMPAT=y
980CONFIG_HID_A4TECH=y 1008CONFIG_HID_A4TECH=y
981CONFIG_HID_APPLE=y 1009CONFIG_HID_APPLE=y
982CONFIG_HID_BELKIN=y 1010CONFIG_HID_BELKIN=y
983CONFIG_HID_CHERRY=y 1011CONFIG_HID_CHERRY=y
984CONFIG_HID_CHICONY=y 1012CONFIG_HID_CHICONY=y
985CONFIG_HID_CYPRESS=y 1013CONFIG_HID_CYPRESS=y
1014# CONFIG_DRAGONRISE_FF is not set
986CONFIG_HID_EZKEY=y 1015CONFIG_HID_EZKEY=y
1016# CONFIG_HID_KYE is not set
987CONFIG_HID_GYRATION=y 1017CONFIG_HID_GYRATION=y
1018# CONFIG_HID_KENSINGTON is not set
988CONFIG_HID_LOGITECH=y 1019CONFIG_HID_LOGITECH=y
989# CONFIG_LOGITECH_FF is not set 1020# CONFIG_LOGITECH_FF is not set
990# CONFIG_LOGIRUMBLEPAD2_FF is not set 1021# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1050,11 +1081,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1050# CONFIG_USB_TMC is not set 1081# CONFIG_USB_TMC is not set
1051 1082
1052# 1083#
1053# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1084# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1054# 1085#
1055 1086
1056# 1087#
1057# see USB_STORAGE Help for more information 1088# also be needed; see USB_STORAGE Help for more info
1058# 1089#
1059# CONFIG_USB_STORAGE is not set 1090# CONFIG_USB_STORAGE is not set
1060# CONFIG_USB_LIBUSUAL is not set 1091# CONFIG_USB_LIBUSUAL is not set
@@ -1084,7 +1115,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1084# CONFIG_USB_LED is not set 1115# CONFIG_USB_LED is not set
1085# CONFIG_USB_CYPRESS_CY7C63 is not set 1116# CONFIG_USB_CYPRESS_CY7C63 is not set
1086# CONFIG_USB_CYTHERM is not set 1117# CONFIG_USB_CYTHERM is not set
1087# CONFIG_USB_PHIDGET is not set
1088# CONFIG_USB_IDMOUSE is not set 1118# CONFIG_USB_IDMOUSE is not set
1089# CONFIG_USB_FTDI_ELAN is not set 1119# CONFIG_USB_FTDI_ELAN is not set
1090# CONFIG_USB_APPLEDISPLAY is not set 1120# CONFIG_USB_APPLEDISPLAY is not set
@@ -1099,6 +1129,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1099# 1129#
1100# OTG and related infrastructure 1130# OTG and related infrastructure
1101# 1131#
1132# CONFIG_NOP_USB_XCEIV is not set
1102# CONFIG_UWB is not set 1133# CONFIG_UWB is not set
1103# CONFIG_MMC is not set 1134# CONFIG_MMC is not set
1104# CONFIG_MEMSTICK is not set 1135# CONFIG_MEMSTICK is not set
@@ -1108,6 +1139,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1108# CONFIG_EDAC is not set 1139# CONFIG_EDAC is not set
1109# CONFIG_RTC_CLASS is not set 1140# CONFIG_RTC_CLASS is not set
1110# CONFIG_DMADEVICES is not set 1141# CONFIG_DMADEVICES is not set
1142# CONFIG_AUXDISPLAY is not set
1111# CONFIG_UIO is not set 1143# CONFIG_UIO is not set
1112# CONFIG_STAGING is not set 1144# CONFIG_STAGING is not set
1113 1145
@@ -1118,6 +1150,7 @@ CONFIG_EXT2_FS=y
1118# CONFIG_EXT2_FS_XATTR is not set 1150# CONFIG_EXT2_FS_XATTR is not set
1119# CONFIG_EXT2_FS_XIP is not set 1151# CONFIG_EXT2_FS_XIP is not set
1120CONFIG_EXT3_FS=y 1152CONFIG_EXT3_FS=y
1153# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1121CONFIG_EXT3_FS_XATTR=y 1154CONFIG_EXT3_FS_XATTR=y
1122# CONFIG_EXT3_FS_POSIX_ACL is not set 1155# CONFIG_EXT3_FS_POSIX_ACL is not set
1123# CONFIG_EXT3_FS_SECURITY is not set 1156# CONFIG_EXT3_FS_SECURITY is not set
@@ -1140,6 +1173,11 @@ CONFIG_INOTIFY_USER=y
1140# CONFIG_FUSE_FS is not set 1173# CONFIG_FUSE_FS is not set
1141 1174
1142# 1175#
1176# Caches
1177#
1178# CONFIG_FSCACHE is not set
1179
1180#
1143# CD-ROM/DVD Filesystems 1181# CD-ROM/DVD Filesystems
1144# 1182#
1145# CONFIG_ISO9660_FS is not set 1183# CONFIG_ISO9660_FS is not set
@@ -1182,6 +1220,7 @@ CONFIG_MISC_FILESYSTEMS=y
1182# CONFIG_ROMFS_FS is not set 1220# CONFIG_ROMFS_FS is not set
1183# CONFIG_SYSV_FS is not set 1221# CONFIG_SYSV_FS is not set
1184# CONFIG_UFS_FS is not set 1222# CONFIG_UFS_FS is not set
1223# CONFIG_NILFS2_FS is not set
1185CONFIG_NETWORK_FILESYSTEMS=y 1224CONFIG_NETWORK_FILESYSTEMS=y
1186CONFIG_NFS_FS=y 1225CONFIG_NFS_FS=y
1187CONFIG_NFS_V3=y 1226CONFIG_NFS_V3=y
@@ -1194,7 +1233,6 @@ CONFIG_LOCKD_V4=y
1194CONFIG_NFS_COMMON=y 1233CONFIG_NFS_COMMON=y
1195CONFIG_SUNRPC=y 1234CONFIG_SUNRPC=y
1196CONFIG_SUNRPC_GSS=y 1235CONFIG_SUNRPC_GSS=y
1197# CONFIG_SUNRPC_REGISTER_V4 is not set
1198CONFIG_RPCSEC_GSS_KRB5=y 1236CONFIG_RPCSEC_GSS_KRB5=y
1199# CONFIG_RPCSEC_GSS_SPKM3 is not set 1237# CONFIG_RPCSEC_GSS_SPKM3 is not set
1200# CONFIG_SMB_FS is not set 1238# CONFIG_SMB_FS is not set
@@ -1226,6 +1264,7 @@ CONFIG_MSDOS_PARTITION=y
1226# CONFIG_SYSV68_PARTITION is not set 1264# CONFIG_SYSV68_PARTITION is not set
1227# CONFIG_NLS is not set 1265# CONFIG_NLS is not set
1228# CONFIG_DLM is not set 1266# CONFIG_DLM is not set
1267# CONFIG_BINARY_PRINTF is not set
1229 1268
1230# 1269#
1231# Library routines 1270# Library routines
@@ -1239,11 +1278,13 @@ CONFIG_CRC_T10DIF=y
1239CONFIG_CRC32=y 1278CONFIG_CRC32=y
1240# CONFIG_CRC7 is not set 1279# CONFIG_CRC7 is not set
1241# CONFIG_LIBCRC32C is not set 1280# CONFIG_LIBCRC32C is not set
1242CONFIG_PLIST=y 1281CONFIG_ZLIB_INFLATE=y
1282CONFIG_DECOMPRESS_GZIP=y
1243CONFIG_HAS_IOMEM=y 1283CONFIG_HAS_IOMEM=y
1244CONFIG_HAS_IOPORT=y 1284CONFIG_HAS_IOPORT=y
1245CONFIG_HAS_DMA=y 1285CONFIG_HAS_DMA=y
1246CONFIG_HAVE_LMB=y 1286CONFIG_HAVE_LMB=y
1287CONFIG_NLATTR=y
1247 1288
1248# 1289#
1249# Kernel hacking 1290# Kernel hacking
@@ -1263,13 +1304,24 @@ CONFIG_FRAME_WARN=1024
1263# CONFIG_LATENCYTOP is not set 1304# CONFIG_LATENCYTOP is not set
1264CONFIG_SYSCTL_SYSCALL_CHECK=y 1305CONFIG_SYSCTL_SYSCALL_CHECK=y
1265CONFIG_HAVE_FUNCTION_TRACER=y 1306CONFIG_HAVE_FUNCTION_TRACER=y
1307CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1266CONFIG_HAVE_DYNAMIC_FTRACE=y 1308CONFIG_HAVE_DYNAMIC_FTRACE=y
1267CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1309CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1310CONFIG_TRACING_SUPPORT=y
1268 1311
1269# 1312#
1270# Tracers 1313# Tracers
1271# 1314#
1272# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1315# CONFIG_FUNCTION_TRACER is not set
1316# CONFIG_SCHED_TRACER is not set
1317# CONFIG_CONTEXT_SWITCH_TRACER is not set
1318# CONFIG_EVENT_TRACER is not set
1319# CONFIG_BOOT_TRACER is not set
1320# CONFIG_TRACE_BRANCH_PROFILING is not set
1321# CONFIG_STACK_TRACER is not set
1322# CONFIG_KMEMTRACE is not set
1323# CONFIG_WORKQUEUE_TRACER is not set
1324# CONFIG_BLK_DEV_IO_TRACE is not set
1273# CONFIG_SAMPLES is not set 1325# CONFIG_SAMPLES is not set
1274CONFIG_HAVE_ARCH_KGDB=y 1326CONFIG_HAVE_ARCH_KGDB=y
1275CONFIG_PRINT_STACK_DEPTH=64 1327CONFIG_PRINT_STACK_DEPTH=64
@@ -1302,10 +1354,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1302CONFIG_CRYPTO_HASH=y 1354CONFIG_CRYPTO_HASH=y
1303CONFIG_CRYPTO_HASH2=y 1355CONFIG_CRYPTO_HASH2=y
1304CONFIG_CRYPTO_RNG2=y 1356CONFIG_CRYPTO_RNG2=y
1357CONFIG_CRYPTO_PCOMP=y
1305CONFIG_CRYPTO_MANAGER=y 1358CONFIG_CRYPTO_MANAGER=y
1306CONFIG_CRYPTO_MANAGER2=y 1359CONFIG_CRYPTO_MANAGER2=y
1307# CONFIG_CRYPTO_GF128MUL is not set 1360# CONFIG_CRYPTO_GF128MUL is not set
1308# CONFIG_CRYPTO_NULL is not set 1361# CONFIG_CRYPTO_NULL is not set
1362CONFIG_CRYPTO_WORKQUEUE=y
1309# CONFIG_CRYPTO_CRYPTD is not set 1363# CONFIG_CRYPTO_CRYPTD is not set
1310# CONFIG_CRYPTO_AUTHENC is not set 1364# CONFIG_CRYPTO_AUTHENC is not set
1311# CONFIG_CRYPTO_TEST is not set 1365# CONFIG_CRYPTO_TEST is not set
@@ -1374,6 +1428,7 @@ CONFIG_CRYPTO_DES=y
1374# Compression 1428# Compression
1375# 1429#
1376# CONFIG_CRYPTO_DEFLATE is not set 1430# CONFIG_CRYPTO_DEFLATE is not set
1431# CONFIG_CRYPTO_ZLIB is not set
1377# CONFIG_CRYPTO_LZO is not set 1432# CONFIG_CRYPTO_LZO is not set
1378 1433
1379# 1434#
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index a0c42fb65cb9..fe08f672cb27 100644
--- a/arch/powerpc/configs/83xx/sbc834x_defconfig
+++ b/arch/powerpc/configs/83xx/sbc834x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:02 2009 4# Wed May 13 17:22:15 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -108,16 +122,19 @@ CONFIG_SHMEM=y
108CONFIG_AIO=y 122CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
125CONFIG_COMPAT_BRK=y
111CONFIG_SLAB=y 126CONFIG_SLAB=y
112# CONFIG_SLUB is not set 127# CONFIG_SLUB is not set
113# CONFIG_SLOB is not set 128# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 129# CONFIG_PROFILING is not set
130# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 131CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 132CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y 133CONFIG_HAVE_IOREMAP_PROT=y
118CONFIG_HAVE_KPROBES=y 134CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 135CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y 136CONFIG_HAVE_ARCH_TRACEHOOK=y
137# CONFIG_SLOW_WORK is not set
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 139CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 140CONFIG_RT_MUTEXES=y
@@ -130,7 +147,6 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_SRCVERSION_ALL is not set 147# CONFIG_MODULE_SRCVERSION_ALL is not set
131CONFIG_BLOCK=y 148CONFIG_BLOCK=y
132# CONFIG_LBD is not set 149# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
136 152
@@ -146,18 +162,11 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_CFQ is not set 162# CONFIG_DEFAULT_CFQ is not set
147# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 165# CONFIG_FREEZER is not set
155 166
156# 167#
157# Platform support 168# Platform support
158# 169#
159CONFIG_PPC_MULTIPLATFORM=y
160CONFIG_CLASSIC32=y
161# CONFIG_PPC_CHRP is not set 170# CONFIG_PPC_CHRP is not set
162# CONFIG_MPC5121_ADS is not set 171# CONFIG_MPC5121_ADS is not set
163# CONFIG_MPC5121_GENERIC is not set 172# CONFIG_MPC5121_GENERIC is not set
@@ -182,6 +191,8 @@ CONFIG_SBC834x=y
182CONFIG_PPC_MPC834x=y 191CONFIG_PPC_MPC834x=y
183# CONFIG_PPC_86xx is not set 192# CONFIG_PPC_86xx is not set
184# CONFIG_EMBEDDED6xx is not set 193# CONFIG_EMBEDDED6xx is not set
194# CONFIG_AMIGAONE is not set
195CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
185CONFIG_IPIC=y 196CONFIG_IPIC=y
186# CONFIG_MPIC is not set 197# CONFIG_MPIC is not set
187# CONFIG_MPIC_WEIRD is not set 198# CONFIG_MPIC_WEIRD is not set
@@ -242,9 +253,12 @@ CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 253CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 254CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 255CONFIG_UNEVICTABLE_LRU=y
256CONFIG_HAVE_MLOCK=y
257CONFIG_HAVE_MLOCKED_PAGE_BIT=y
245CONFIG_PPC_4K_PAGES=y 258CONFIG_PPC_4K_PAGES=y
246# CONFIG_PPC_16K_PAGES is not set 259# CONFIG_PPC_16K_PAGES is not set
247# CONFIG_PPC_64K_PAGES is not set 260# CONFIG_PPC_64K_PAGES is not set
261# CONFIG_PPC_256K_PAGES is not set
248CONFIG_FORCE_MAX_ZONEORDER=11 262CONFIG_FORCE_MAX_ZONEORDER=11
249CONFIG_PROC_DEVICETREE=y 263CONFIG_PROC_DEVICETREE=y
250# CONFIG_CMDLINE_BOOL is not set 264# CONFIG_CMDLINE_BOOL is not set
@@ -270,6 +284,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
270# CONFIG_PCI_MSI is not set 284# CONFIG_PCI_MSI is not set
271# CONFIG_PCI_LEGACY is not set 285# CONFIG_PCI_LEGACY is not set
272# CONFIG_PCI_STUB is not set 286# CONFIG_PCI_STUB is not set
287# CONFIG_PCI_IOV is not set
273# CONFIG_PCCARD is not set 288# CONFIG_PCCARD is not set
274# CONFIG_HOTPLUG_PCI is not set 289# CONFIG_HOTPLUG_PCI is not set
275# CONFIG_HAS_RAPIDIO is not set 290# CONFIG_HAS_RAPIDIO is not set
@@ -292,7 +307,6 @@ CONFIG_NET=y
292# 307#
293# Networking options 308# Networking options
294# 309#
295CONFIG_COMPAT_NET_DEV_OPS=y
296CONFIG_PACKET=y 310CONFIG_PACKET=y
297# CONFIG_PACKET_MMAP is not set 311# CONFIG_PACKET_MMAP is not set
298CONFIG_UNIX=y 312CONFIG_UNIX=y
@@ -348,6 +362,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_LAPB is not set 362# CONFIG_LAPB is not set
349# CONFIG_ECONET is not set 363# CONFIG_ECONET is not set
350# CONFIG_WAN_ROUTER is not set 364# CONFIG_WAN_ROUTER is not set
365# CONFIG_PHONET is not set
351# CONFIG_NET_SCHED is not set 366# CONFIG_NET_SCHED is not set
352# CONFIG_DCB is not set 367# CONFIG_DCB is not set
353 368
@@ -360,7 +375,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
360# CONFIG_IRDA is not set 375# CONFIG_IRDA is not set
361# CONFIG_BT is not set 376# CONFIG_BT is not set
362# CONFIG_AF_RXRPC is not set 377# CONFIG_AF_RXRPC is not set
363# CONFIG_PHONET is not set
364CONFIG_WIRELESS=y 378CONFIG_WIRELESS=y
365# CONFIG_CFG80211 is not set 379# CONFIG_CFG80211 is not set
366CONFIG_WIRELESS_OLD_REGULATORY=y 380CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -408,13 +422,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
408# CONFIG_BLK_DEV_HD is not set 422# CONFIG_BLK_DEV_HD is not set
409CONFIG_MISC_DEVICES=y 423CONFIG_MISC_DEVICES=y
410# CONFIG_PHANTOM is not set 424# CONFIG_PHANTOM is not set
411# CONFIG_EEPROM_93CX6 is not set
412# CONFIG_SGI_IOC4 is not set 425# CONFIG_SGI_IOC4 is not set
413# CONFIG_TIFM_CORE is not set 426# CONFIG_TIFM_CORE is not set
414# CONFIG_ICS932S401 is not set 427# CONFIG_ICS932S401 is not set
415# CONFIG_ENCLOSURE_SERVICES is not set 428# CONFIG_ENCLOSURE_SERVICES is not set
416# CONFIG_HP_ILO is not set 429# CONFIG_HP_ILO is not set
430# CONFIG_ISL29003 is not set
417# CONFIG_C2PORT is not set 431# CONFIG_C2PORT is not set
432
433#
434# EEPROM support
435#
436# CONFIG_EEPROM_AT24 is not set
437# CONFIG_EEPROM_LEGACY is not set
438# CONFIG_EEPROM_93CX6 is not set
418CONFIG_HAVE_IDE=y 439CONFIG_HAVE_IDE=y
419# CONFIG_IDE is not set 440# CONFIG_IDE is not set
420 441
@@ -441,6 +462,7 @@ CONFIG_HAVE_IDE=y
441# CONFIG_I2O is not set 462# CONFIG_I2O is not set
442# CONFIG_MACINTOSH_DRIVERS is not set 463# CONFIG_MACINTOSH_DRIVERS is not set
443CONFIG_NETDEVICES=y 464CONFIG_NETDEVICES=y
465CONFIG_COMPAT_NET_DEV_OPS=y
444# CONFIG_DUMMY is not set 466# CONFIG_DUMMY is not set
445# CONFIG_BONDING is not set 467# CONFIG_BONDING is not set
446# CONFIG_MACVLAN is not set 468# CONFIG_MACVLAN is not set
@@ -474,6 +496,8 @@ CONFIG_MII=y
474# CONFIG_SUNGEM is not set 496# CONFIG_SUNGEM is not set
475# CONFIG_CASSINI is not set 497# CONFIG_CASSINI is not set
476# CONFIG_NET_VENDOR_3COM is not set 498# CONFIG_NET_VENDOR_3COM is not set
499# CONFIG_ETHOC is not set
500# CONFIG_DNET is not set
477# CONFIG_NET_TULIP is not set 501# CONFIG_NET_TULIP is not set
478# CONFIG_HP100 is not set 502# CONFIG_HP100 is not set
479# CONFIG_IBM_NEW_EMAC_ZMII is not set 503# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -493,6 +517,7 @@ CONFIG_NETDEV_1000=y
493# CONFIG_E1000E is not set 517# CONFIG_E1000E is not set
494# CONFIG_IP1000 is not set 518# CONFIG_IP1000 is not set
495# CONFIG_IGB is not set 519# CONFIG_IGB is not set
520# CONFIG_IGBVF is not set
496# CONFIG_NS83820 is not set 521# CONFIG_NS83820 is not set
497# CONFIG_HAMACHI is not set 522# CONFIG_HAMACHI is not set
498# CONFIG_YELLOWFIN is not set 523# CONFIG_YELLOWFIN is not set
@@ -503,11 +528,12 @@ CONFIG_NETDEV_1000=y
503# CONFIG_VIA_VELOCITY is not set 528# CONFIG_VIA_VELOCITY is not set
504# CONFIG_TIGON3 is not set 529# CONFIG_TIGON3 is not set
505# CONFIG_BNX2 is not set 530# CONFIG_BNX2 is not set
531CONFIG_FSL_PQ_MDIO=y
506CONFIG_GIANFAR=y 532CONFIG_GIANFAR=y
507# CONFIG_MV643XX_ETH is not set
508# CONFIG_QLA3XXX is not set 533# CONFIG_QLA3XXX is not set
509# CONFIG_ATL1 is not set 534# CONFIG_ATL1 is not set
510# CONFIG_ATL1E is not set 535# CONFIG_ATL1E is not set
536# CONFIG_ATL1C is not set
511# CONFIG_JME is not set 537# CONFIG_JME is not set
512# CONFIG_NETDEV_10000 is not set 538# CONFIG_NETDEV_10000 is not set
513# CONFIG_TR is not set 539# CONFIG_TR is not set
@@ -517,7 +543,6 @@ CONFIG_GIANFAR=y
517# 543#
518# CONFIG_WLAN_PRE80211 is not set 544# CONFIG_WLAN_PRE80211 is not set
519# CONFIG_WLAN_80211 is not set 545# CONFIG_WLAN_80211 is not set
520# CONFIG_IWLWIFI_LEDS is not set
521 546
522# 547#
523# Enable WiMAX (Networking options) to see the WiMAX drivers 548# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -660,12 +685,9 @@ CONFIG_I2C_MPC=y
660# Miscellaneous I2C Chip support 685# Miscellaneous I2C Chip support
661# 686#
662# CONFIG_DS1682 is not set 687# CONFIG_DS1682 is not set
663# CONFIG_EEPROM_AT24 is not set
664# CONFIG_EEPROM_LEGACY is not set
665# CONFIG_SENSORS_PCF8574 is not set 688# CONFIG_SENSORS_PCF8574 is not set
666# CONFIG_PCF8575 is not set 689# CONFIG_PCF8575 is not set
667# CONFIG_SENSORS_PCA9539 is not set 690# CONFIG_SENSORS_PCA9539 is not set
668# CONFIG_SENSORS_PCF8591 is not set
669# CONFIG_SENSORS_MAX6875 is not set 691# CONFIG_SENSORS_MAX6875 is not set
670# CONFIG_SENSORS_TSL2550 is not set 692# CONFIG_SENSORS_TSL2550 is not set
671# CONFIG_I2C_DEBUG_CORE is not set 693# CONFIG_I2C_DEBUG_CORE is not set
@@ -697,6 +719,7 @@ CONFIG_HWMON=y
697# CONFIG_SENSORS_F71805F is not set 719# CONFIG_SENSORS_F71805F is not set
698# CONFIG_SENSORS_F71882FG is not set 720# CONFIG_SENSORS_F71882FG is not set
699# CONFIG_SENSORS_F75375S is not set 721# CONFIG_SENSORS_F75375S is not set
722# CONFIG_SENSORS_G760A is not set
700# CONFIG_SENSORS_GL518SM is not set 723# CONFIG_SENSORS_GL518SM is not set
701# CONFIG_SENSORS_GL520SM is not set 724# CONFIG_SENSORS_GL520SM is not set
702# CONFIG_SENSORS_IT87 is not set 725# CONFIG_SENSORS_IT87 is not set
@@ -711,11 +734,14 @@ CONFIG_HWMON=y
711# CONFIG_SENSORS_LM90 is not set 734# CONFIG_SENSORS_LM90 is not set
712# CONFIG_SENSORS_LM92 is not set 735# CONFIG_SENSORS_LM92 is not set
713# CONFIG_SENSORS_LM93 is not set 736# CONFIG_SENSORS_LM93 is not set
737# CONFIG_SENSORS_LTC4215 is not set
714# CONFIG_SENSORS_LTC4245 is not set 738# CONFIG_SENSORS_LTC4245 is not set
739# CONFIG_SENSORS_LM95241 is not set
715# CONFIG_SENSORS_MAX1619 is not set 740# CONFIG_SENSORS_MAX1619 is not set
716# CONFIG_SENSORS_MAX6650 is not set 741# CONFIG_SENSORS_MAX6650 is not set
717# CONFIG_SENSORS_PC87360 is not set 742# CONFIG_SENSORS_PC87360 is not set
718# CONFIG_SENSORS_PC87427 is not set 743# CONFIG_SENSORS_PC87427 is not set
744# CONFIG_SENSORS_PCF8591 is not set
719# CONFIG_SENSORS_SIS5595 is not set 745# CONFIG_SENSORS_SIS5595 is not set
720# CONFIG_SENSORS_DME1737 is not set 746# CONFIG_SENSORS_DME1737 is not set
721# CONFIG_SENSORS_SMSC47M1 is not set 747# CONFIG_SENSORS_SMSC47M1 is not set
@@ -813,7 +839,6 @@ CONFIG_HID=y
813# 839#
814# Special HID drivers 840# Special HID drivers
815# 841#
816CONFIG_HID_COMPAT=y
817# CONFIG_USB_SUPPORT is not set 842# CONFIG_USB_SUPPORT is not set
818# CONFIG_UWB is not set 843# CONFIG_UWB is not set
819# CONFIG_MMC is not set 844# CONFIG_MMC is not set
@@ -824,6 +849,7 @@ CONFIG_HID_COMPAT=y
824# CONFIG_EDAC is not set 849# CONFIG_EDAC is not set
825# CONFIG_RTC_CLASS is not set 850# CONFIG_RTC_CLASS is not set
826# CONFIG_DMADEVICES is not set 851# CONFIG_DMADEVICES is not set
852# CONFIG_AUXDISPLAY is not set
827# CONFIG_UIO is not set 853# CONFIG_UIO is not set
828# CONFIG_STAGING is not set 854# CONFIG_STAGING is not set
829 855
@@ -849,6 +875,11 @@ CONFIG_INOTIFY_USER=y
849# CONFIG_FUSE_FS is not set 875# CONFIG_FUSE_FS is not set
850 876
851# 877#
878# Caches
879#
880# CONFIG_FSCACHE is not set
881
882#
852# CD-ROM/DVD Filesystems 883# CD-ROM/DVD Filesystems
853# 884#
854# CONFIG_ISO9660_FS is not set 885# CONFIG_ISO9660_FS is not set
@@ -891,6 +922,7 @@ CONFIG_MISC_FILESYSTEMS=y
891# CONFIG_ROMFS_FS is not set 922# CONFIG_ROMFS_FS is not set
892# CONFIG_SYSV_FS is not set 923# CONFIG_SYSV_FS is not set
893# CONFIG_UFS_FS is not set 924# CONFIG_UFS_FS is not set
925# CONFIG_NILFS2_FS is not set
894CONFIG_NETWORK_FILESYSTEMS=y 926CONFIG_NETWORK_FILESYSTEMS=y
895CONFIG_NFS_FS=y 927CONFIG_NFS_FS=y
896CONFIG_NFS_V3=y 928CONFIG_NFS_V3=y
@@ -903,7 +935,6 @@ CONFIG_LOCKD_V4=y
903CONFIG_NFS_COMMON=y 935CONFIG_NFS_COMMON=y
904CONFIG_SUNRPC=y 936CONFIG_SUNRPC=y
905CONFIG_SUNRPC_GSS=y 937CONFIG_SUNRPC_GSS=y
906# CONFIG_SUNRPC_REGISTER_V4 is not set
907CONFIG_RPCSEC_GSS_KRB5=y 938CONFIG_RPCSEC_GSS_KRB5=y
908# CONFIG_RPCSEC_GSS_SPKM3 is not set 939# CONFIG_RPCSEC_GSS_SPKM3 is not set
909# CONFIG_SMB_FS is not set 940# CONFIG_SMB_FS is not set
@@ -919,6 +950,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
919CONFIG_MSDOS_PARTITION=y 950CONFIG_MSDOS_PARTITION=y
920# CONFIG_NLS is not set 951# CONFIG_NLS is not set
921# CONFIG_DLM is not set 952# CONFIG_DLM is not set
953# CONFIG_BINARY_PRINTF is not set
922 954
923# 955#
924# Library routines 956# Library routines
@@ -932,11 +964,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
932CONFIG_CRC32=y 964CONFIG_CRC32=y
933# CONFIG_CRC7 is not set 965# CONFIG_CRC7 is not set
934# CONFIG_LIBCRC32C is not set 966# CONFIG_LIBCRC32C is not set
935CONFIG_PLIST=y 967CONFIG_ZLIB_INFLATE=y
968CONFIG_DECOMPRESS_GZIP=y
936CONFIG_HAS_IOMEM=y 969CONFIG_HAS_IOMEM=y
937CONFIG_HAS_IOPORT=y 970CONFIG_HAS_IOPORT=y
938CONFIG_HAS_DMA=y 971CONFIG_HAS_DMA=y
939CONFIG_HAVE_LMB=y 972CONFIG_HAVE_LMB=y
973CONFIG_NLATTR=y
940 974
941# 975#
942# Kernel hacking 976# Kernel hacking
@@ -956,13 +990,24 @@ CONFIG_FRAME_WARN=1024
956# CONFIG_LATENCYTOP is not set 990# CONFIG_LATENCYTOP is not set
957CONFIG_SYSCTL_SYSCALL_CHECK=y 991CONFIG_SYSCTL_SYSCALL_CHECK=y
958CONFIG_HAVE_FUNCTION_TRACER=y 992CONFIG_HAVE_FUNCTION_TRACER=y
993CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y 994CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 995CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
996CONFIG_TRACING_SUPPORT=y
961 997
962# 998#
963# Tracers 999# Tracers
964# 1000#
965# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1001# CONFIG_FUNCTION_TRACER is not set
1002# CONFIG_SCHED_TRACER is not set
1003# CONFIG_CONTEXT_SWITCH_TRACER is not set
1004# CONFIG_EVENT_TRACER is not set
1005# CONFIG_BOOT_TRACER is not set
1006# CONFIG_TRACE_BRANCH_PROFILING is not set
1007# CONFIG_STACK_TRACER is not set
1008# CONFIG_KMEMTRACE is not set
1009# CONFIG_WORKQUEUE_TRACER is not set
1010# CONFIG_BLK_DEV_IO_TRACE is not set
966# CONFIG_SAMPLES is not set 1011# CONFIG_SAMPLES is not set
967CONFIG_HAVE_ARCH_KGDB=y 1012CONFIG_HAVE_ARCH_KGDB=y
968CONFIG_PRINT_STACK_DEPTH=64 1013CONFIG_PRINT_STACK_DEPTH=64
@@ -991,10 +1036,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
991CONFIG_CRYPTO_HASH=y 1036CONFIG_CRYPTO_HASH=y
992CONFIG_CRYPTO_HASH2=y 1037CONFIG_CRYPTO_HASH2=y
993CONFIG_CRYPTO_RNG2=y 1038CONFIG_CRYPTO_RNG2=y
1039CONFIG_CRYPTO_PCOMP=y
994CONFIG_CRYPTO_MANAGER=y 1040CONFIG_CRYPTO_MANAGER=y
995CONFIG_CRYPTO_MANAGER2=y 1041CONFIG_CRYPTO_MANAGER2=y
996# CONFIG_CRYPTO_GF128MUL is not set 1042# CONFIG_CRYPTO_GF128MUL is not set
997# CONFIG_CRYPTO_NULL is not set 1043# CONFIG_CRYPTO_NULL is not set
1044CONFIG_CRYPTO_WORKQUEUE=y
998# CONFIG_CRYPTO_CRYPTD is not set 1045# CONFIG_CRYPTO_CRYPTD is not set
999# CONFIG_CRYPTO_AUTHENC is not set 1046# CONFIG_CRYPTO_AUTHENC is not set
1000# CONFIG_CRYPTO_TEST is not set 1047# CONFIG_CRYPTO_TEST is not set
@@ -1063,6 +1110,7 @@ CONFIG_CRYPTO_DES=y
1063# Compression 1110# Compression
1064# 1111#
1065# CONFIG_CRYPTO_DEFLATE is not set 1112# CONFIG_CRYPTO_DEFLATE is not set
1113# CONFIG_CRYPTO_ZLIB is not set
1066# CONFIG_CRYPTO_LZO is not set 1114# CONFIG_CRYPTO_LZO is not set
1067 1115
1068# 1116#
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index 6479bb9f3f57..09146ddaa3ca 100644
--- a/arch/powerpc/configs/85xx/ksi8560_defconfig
+++ b/arch/powerpc/configs/85xx/ksi8560_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:03 2009 4# Wed May 13 17:22:16 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_GROUP_SCHED is not set 92# CONFIG_GROUP_SCHED is not set
@@ -86,21 +97,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_NAMESPACES is not set 97# CONFIG_NAMESPACES is not set
87CONFIG_BLK_DEV_INITRD=y 98CONFIG_BLK_DEV_INITRD=y
88CONFIG_INITRAMFS_SOURCE="" 99CONFIG_INITRAMFS_SOURCE=""
100CONFIG_RD_GZIP=y
101# CONFIG_RD_BZIP2 is not set
102# CONFIG_RD_LZMA is not set
89# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 103# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
90CONFIG_SYSCTL=y 104CONFIG_SYSCTL=y
105CONFIG_ANON_INODES=y
91CONFIG_EMBEDDED=y 106CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 107CONFIG_SYSCTL_SYSCALL=y
93CONFIG_KALLSYMS=y 108CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 109# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 110# CONFIG_KALLSYMS_EXTRA_PASS is not set
111# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 112CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 113CONFIG_PRINTK=y
98CONFIG_BUG=y 114CONFIG_BUG=y
99CONFIG_ELF_CORE=y 115CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y 116CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y 117CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104CONFIG_EPOLL=y 118CONFIG_EPOLL=y
105CONFIG_SIGNALFD=y 119CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 120CONFIG_TIMERFD=y
@@ -109,10 +123,12 @@ CONFIG_SHMEM=y
109CONFIG_AIO=y 123CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 124CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
@@ -120,6 +136,7 @@ CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
122CONFIG_HAVE_CLK=y 138CONFIG_HAVE_CLK=y
139# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 140# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 141CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 142CONFIG_RT_MUTEXES=y
@@ -127,7 +144,6 @@ CONFIG_BASE_SMALL=0
127# CONFIG_MODULES is not set 144# CONFIG_MODULES is not set
128CONFIG_BLOCK=y 145CONFIG_BLOCK=y
129# CONFIG_LBD is not set 146# CONFIG_LBD is not set
130# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set 148# CONFIG_BLK_DEV_INTEGRITY is not set
133 149
@@ -143,11 +159,6 @@ CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_CFQ is not set 159# CONFIG_DEFAULT_CFQ is not set
144# CONFIG_DEFAULT_NOOP is not set 160# CONFIG_DEFAULT_NOOP is not set
145CONFIG_DEFAULT_IOSCHED="anticipatory" 161CONFIG_DEFAULT_IOSCHED="anticipatory"
146CONFIG_CLASSIC_RCU=y
147# CONFIG_TREE_RCU is not set
148# CONFIG_PREEMPT_RCU is not set
149# CONFIG_TREE_RCU_TRACE is not set
150# CONFIG_PREEMPT_RCU_TRACE is not set
151# CONFIG_FREEZER is not set 162# CONFIG_FREEZER is not set
152 163
153# 164#
@@ -163,6 +174,7 @@ CONFIG_MPC85xx=y
163# CONFIG_MPC85xx_MDS is not set 174# CONFIG_MPC85xx_MDS is not set
164# CONFIG_MPC8536_DS is not set 175# CONFIG_MPC8536_DS is not set
165# CONFIG_MPC85xx_DS is not set 176# CONFIG_MPC85xx_DS is not set
177# CONFIG_SOCRATES is not set
166CONFIG_KSI8560=y 178CONFIG_KSI8560=y
167# CONFIG_STX_GP3 is not set 179# CONFIG_STX_GP3 is not set
168# CONFIG_TQM8540 is not set 180# CONFIG_TQM8540 is not set
@@ -231,9 +243,12 @@ CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_HAVE_MLOCK=y
247CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234CONFIG_PPC_4K_PAGES=y 248CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set 249# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set 250# CONFIG_PPC_64K_PAGES is not set
251# CONFIG_PPC_256K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
238# CONFIG_PROC_DEVICETREE is not set 253# CONFIG_PROC_DEVICETREE is not set
239# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
@@ -264,17 +279,17 @@ CONFIG_PPC_PCI_CHOICE=y
264# Default settings for advanced configuration options are used 279# Default settings for advanced configuration options are used
265# 280#
266CONFIG_LOWMEM_SIZE=0x30000000 281CONFIG_LOWMEM_SIZE=0x30000000
282CONFIG_LOWMEM_CAM_NUM=3
267CONFIG_PAGE_OFFSET=0xc0000000 283CONFIG_PAGE_OFFSET=0xc0000000
268CONFIG_KERNEL_START=0xc0000000 284CONFIG_KERNEL_START=0xc0000000
269CONFIG_PHYSICAL_START=0x00000000 285CONFIG_PHYSICAL_START=0x00000000
270CONFIG_PHYSICAL_ALIGN=0x10000000 286CONFIG_PHYSICAL_ALIGN=0x04000000
271CONFIG_TASK_SIZE=0xc0000000 287CONFIG_TASK_SIZE=0xc0000000
272CONFIG_NET=y 288CONFIG_NET=y
273 289
274# 290#
275# Networking options 291# Networking options
276# 292#
277CONFIG_COMPAT_NET_DEV_OPS=y
278CONFIG_PACKET=y 293CONFIG_PACKET=y
279# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
280CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -330,6 +345,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_LAPB is not set 345# CONFIG_LAPB is not set
331# CONFIG_ECONET is not set 346# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set 347# CONFIG_WAN_ROUTER is not set
348# CONFIG_PHONET is not set
333# CONFIG_NET_SCHED is not set 349# CONFIG_NET_SCHED is not set
334# CONFIG_DCB is not set 350# CONFIG_DCB is not set
335 351
@@ -342,7 +358,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_IRDA is not set 358# CONFIG_IRDA is not set
343# CONFIG_BT is not set 359# CONFIG_BT is not set
344# CONFIG_AF_RXRPC is not set 360# CONFIG_AF_RXRPC is not set
345# CONFIG_PHONET is not set
346CONFIG_WIRELESS=y 361CONFIG_WIRELESS=y
347# CONFIG_CFG80211 is not set 362# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y 363CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -444,7 +459,6 @@ CONFIG_MTD_PHYSMAP_OF=y
444# LPDDR flash memory drivers 459# LPDDR flash memory drivers
445# 460#
446# CONFIG_MTD_LPDDR is not set 461# CONFIG_MTD_LPDDR is not set
447# CONFIG_MTD_QINFO_PROBE is not set
448 462
449# 463#
450# UBI - Unsorted block images 464# UBI - Unsorted block images
@@ -467,9 +481,13 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
467# CONFIG_ATA_OVER_ETH is not set 481# CONFIG_ATA_OVER_ETH is not set
468# CONFIG_BLK_DEV_HD is not set 482# CONFIG_BLK_DEV_HD is not set
469CONFIG_MISC_DEVICES=y 483CONFIG_MISC_DEVICES=y
470# CONFIG_EEPROM_93CX6 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 484# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_C2PORT is not set 485# CONFIG_C2PORT is not set
486
487#
488# EEPROM support
489#
490# CONFIG_EEPROM_93CX6 is not set
473CONFIG_HAVE_IDE=y 491CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 492CONFIG_IDE=y
475 493
@@ -502,6 +520,7 @@ CONFIG_IDE_PROC_FS=y
502# CONFIG_MD is not set 520# CONFIG_MD is not set
503# CONFIG_MACINTOSH_DRIVERS is not set 521# CONFIG_MACINTOSH_DRIVERS is not set
504CONFIG_NETDEVICES=y 522CONFIG_NETDEVICES=y
523CONFIG_COMPAT_NET_DEV_OPS=y
505# CONFIG_DUMMY is not set 524# CONFIG_DUMMY is not set
506# CONFIG_BONDING is not set 525# CONFIG_BONDING is not set
507# CONFIG_MACVLAN is not set 526# CONFIG_MACVLAN is not set
@@ -531,6 +550,8 @@ CONFIG_MDIO_BITBANG=y
531# CONFIG_MDIO_GPIO is not set 550# CONFIG_MDIO_GPIO is not set
532CONFIG_NET_ETHERNET=y 551CONFIG_NET_ETHERNET=y
533CONFIG_MII=y 552CONFIG_MII=y
553# CONFIG_ETHOC is not set
554# CONFIG_DNET is not set
534# CONFIG_IBM_NEW_EMAC_ZMII is not set 555# CONFIG_IBM_NEW_EMAC_ZMII is not set
535# CONFIG_IBM_NEW_EMAC_RGMII is not set 556# CONFIG_IBM_NEW_EMAC_RGMII is not set
536# CONFIG_IBM_NEW_EMAC_TAH is not set 557# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -544,6 +565,7 @@ CONFIG_FS_ENET=y
544CONFIG_FS_ENET_HAS_FCC=y 565CONFIG_FS_ENET_HAS_FCC=y
545CONFIG_FS_ENET_MDIO_FCC=y 566CONFIG_FS_ENET_MDIO_FCC=y
546CONFIG_NETDEV_1000=y 567CONFIG_NETDEV_1000=y
568CONFIG_FSL_PQ_MDIO=y
547CONFIG_GIANFAR=y 569CONFIG_GIANFAR=y
548CONFIG_NETDEV_10000=y 570CONFIG_NETDEV_10000=y
549 571
@@ -552,7 +574,6 @@ CONFIG_NETDEV_10000=y
552# 574#
553# CONFIG_WLAN_PRE80211 is not set 575# CONFIG_WLAN_PRE80211 is not set
554# CONFIG_WLAN_80211 is not set 576# CONFIG_WLAN_80211 is not set
555# CONFIG_IWLWIFI_LEDS is not set
556 577
557# 578#
558# Enable WiMAX (Networking options) to see the WiMAX drivers 579# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -624,6 +645,7 @@ CONFIG_LEGACY_PTY_COUNT=256
624# CONFIG_HVC_UDBG is not set 645# CONFIG_HVC_UDBG is not set
625# CONFIG_IPMI_HANDLER is not set 646# CONFIG_IPMI_HANDLER is not set
626CONFIG_HW_RANDOM=y 647CONFIG_HW_RANDOM=y
648# CONFIG_HW_RANDOM_TIMERIOMEM is not set
627# CONFIG_NVRAM is not set 649# CONFIG_NVRAM is not set
628CONFIG_GEN_RTC=y 650CONFIG_GEN_RTC=y
629# CONFIG_GEN_RTC_X is not set 651# CONFIG_GEN_RTC_X is not set
@@ -663,6 +685,7 @@ CONFIG_HWMON=y
663# CONFIG_SENSORS_IT87 is not set 685# CONFIG_SENSORS_IT87 is not set
664# CONFIG_SENSORS_PC87360 is not set 686# CONFIG_SENSORS_PC87360 is not set
665# CONFIG_SENSORS_PC87427 is not set 687# CONFIG_SENSORS_PC87427 is not set
688# CONFIG_SENSORS_SHT15 is not set
666# CONFIG_SENSORS_SMSC47M1 is not set 689# CONFIG_SENSORS_SMSC47M1 is not set
667# CONFIG_SENSORS_SMSC47B397 is not set 690# CONFIG_SENSORS_SMSC47B397 is not set
668# CONFIG_SENSORS_VT1211 is not set 691# CONFIG_SENSORS_VT1211 is not set
@@ -726,7 +749,6 @@ CONFIG_HID=y
726# 749#
727# Special HID drivers 750# Special HID drivers
728# 751#
729CONFIG_HID_COMPAT=y
730CONFIG_USB_SUPPORT=y 752CONFIG_USB_SUPPORT=y
731# CONFIG_USB_ARCH_HAS_HCD is not set 753# CONFIG_USB_ARCH_HAS_HCD is not set
732# CONFIG_USB_ARCH_HAS_OHCI is not set 754# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -739,7 +761,7 @@ CONFIG_USB_SUPPORT=y
739# 761#
740 762
741# 763#
742# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 764# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
743# 765#
744# CONFIG_USB_GADGET is not set 766# CONFIG_USB_GADGET is not set
745 767
@@ -753,6 +775,7 @@ CONFIG_USB_SUPPORT=y
753# CONFIG_EDAC is not set 775# CONFIG_EDAC is not set
754# CONFIG_RTC_CLASS is not set 776# CONFIG_RTC_CLASS is not set
755# CONFIG_DMADEVICES is not set 777# CONFIG_DMADEVICES is not set
778# CONFIG_AUXDISPLAY is not set
756# CONFIG_UIO is not set 779# CONFIG_UIO is not set
757# CONFIG_STAGING is not set 780# CONFIG_STAGING is not set
758 781
@@ -763,6 +786,7 @@ CONFIG_EXT2_FS=y
763# CONFIG_EXT2_FS_XATTR is not set 786# CONFIG_EXT2_FS_XATTR is not set
764# CONFIG_EXT2_FS_XIP is not set 787# CONFIG_EXT2_FS_XIP is not set
765CONFIG_EXT3_FS=y 788CONFIG_EXT3_FS=y
789# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
766CONFIG_EXT3_FS_XATTR=y 790CONFIG_EXT3_FS_XATTR=y
767# CONFIG_EXT3_FS_POSIX_ACL is not set 791# CONFIG_EXT3_FS_POSIX_ACL is not set
768# CONFIG_EXT3_FS_SECURITY is not set 792# CONFIG_EXT3_FS_SECURITY is not set
@@ -786,6 +810,11 @@ CONFIG_INOTIFY_USER=y
786# CONFIG_FUSE_FS is not set 810# CONFIG_FUSE_FS is not set
787 811
788# 812#
813# Caches
814#
815# CONFIG_FSCACHE is not set
816
817#
789# CD-ROM/DVD Filesystems 818# CD-ROM/DVD Filesystems
790# 819#
791# CONFIG_ISO9660_FS is not set 820# CONFIG_ISO9660_FS is not set
@@ -829,6 +858,7 @@ CONFIG_MISC_FILESYSTEMS=y
829# CONFIG_ROMFS_FS is not set 858# CONFIG_ROMFS_FS is not set
830# CONFIG_SYSV_FS is not set 859# CONFIG_SYSV_FS is not set
831# CONFIG_UFS_FS is not set 860# CONFIG_UFS_FS is not set
861# CONFIG_NILFS2_FS is not set
832CONFIG_NETWORK_FILESYSTEMS=y 862CONFIG_NETWORK_FILESYSTEMS=y
833CONFIG_NFS_FS=y 863CONFIG_NFS_FS=y
834# CONFIG_NFS_V3 is not set 864# CONFIG_NFS_V3 is not set
@@ -838,7 +868,6 @@ CONFIG_ROOT_NFS=y
838CONFIG_LOCKD=y 868CONFIG_LOCKD=y
839CONFIG_NFS_COMMON=y 869CONFIG_NFS_COMMON=y
840CONFIG_SUNRPC=y 870CONFIG_SUNRPC=y
841# CONFIG_SUNRPC_REGISTER_V4 is not set
842# CONFIG_RPCSEC_GSS_KRB5 is not set 871# CONFIG_RPCSEC_GSS_KRB5 is not set
843# CONFIG_RPCSEC_GSS_SPKM3 is not set 872# CONFIG_RPCSEC_GSS_SPKM3 is not set
844# CONFIG_SMB_FS is not set 873# CONFIG_SMB_FS is not set
@@ -866,6 +895,7 @@ CONFIG_PARTITION_ADVANCED=y
866# CONFIG_SYSV68_PARTITION is not set 895# CONFIG_SYSV68_PARTITION is not set
867# CONFIG_NLS is not set 896# CONFIG_NLS is not set
868# CONFIG_DLM is not set 897# CONFIG_DLM is not set
898# CONFIG_BINARY_PRINTF is not set
869 899
870# 900#
871# Library routines 901# Library routines
@@ -879,11 +909,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
879CONFIG_CRC32=y 909CONFIG_CRC32=y
880# CONFIG_CRC7 is not set 910# CONFIG_CRC7 is not set
881# CONFIG_LIBCRC32C is not set 911# CONFIG_LIBCRC32C is not set
882CONFIG_PLIST=y 912CONFIG_ZLIB_INFLATE=y
913CONFIG_DECOMPRESS_GZIP=y
883CONFIG_HAS_IOMEM=y 914CONFIG_HAS_IOMEM=y
884CONFIG_HAS_IOPORT=y 915CONFIG_HAS_IOPORT=y
885CONFIG_HAS_DMA=y 916CONFIG_HAS_DMA=y
886CONFIG_HAVE_LMB=y 917CONFIG_HAVE_LMB=y
918CONFIG_NLATTR=y
887 919
888# 920#
889# Kernel hacking 921# Kernel hacking
@@ -901,6 +933,9 @@ CONFIG_DEBUG_KERNEL=y
901CONFIG_DETECT_SOFTLOCKUP=y 933CONFIG_DETECT_SOFTLOCKUP=y
902# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 934# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
903CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 935CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
936CONFIG_DETECT_HUNG_TASK=y
937# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
938CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
904CONFIG_SCHED_DEBUG=y 939CONFIG_SCHED_DEBUG=y
905# CONFIG_SCHEDSTATS is not set 940# CONFIG_SCHEDSTATS is not set
906# CONFIG_TIMER_STATS is not set 941# CONFIG_TIMER_STATS is not set
@@ -931,9 +966,12 @@ CONFIG_DEBUG_MUTEXES=y
931# CONFIG_FAULT_INJECTION is not set 966# CONFIG_FAULT_INJECTION is not set
932# CONFIG_LATENCYTOP is not set 967# CONFIG_LATENCYTOP is not set
933CONFIG_SYSCTL_SYSCALL_CHECK=y 968CONFIG_SYSCTL_SYSCALL_CHECK=y
969# CONFIG_DEBUG_PAGEALLOC is not set
934CONFIG_HAVE_FUNCTION_TRACER=y 970CONFIG_HAVE_FUNCTION_TRACER=y
971CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
935CONFIG_HAVE_DYNAMIC_FTRACE=y 972CONFIG_HAVE_DYNAMIC_FTRACE=y
936CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 973CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
974CONFIG_TRACING_SUPPORT=y
937 975
938# 976#
939# Tracers 977# Tracers
@@ -941,17 +979,20 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
941# CONFIG_FUNCTION_TRACER is not set 979# CONFIG_FUNCTION_TRACER is not set
942# CONFIG_SCHED_TRACER is not set 980# CONFIG_SCHED_TRACER is not set
943# CONFIG_CONTEXT_SWITCH_TRACER is not set 981# CONFIG_CONTEXT_SWITCH_TRACER is not set
982# CONFIG_EVENT_TRACER is not set
944# CONFIG_BOOT_TRACER is not set 983# CONFIG_BOOT_TRACER is not set
945# CONFIG_TRACE_BRANCH_PROFILING is not set 984# CONFIG_TRACE_BRANCH_PROFILING is not set
946# CONFIG_STACK_TRACER is not set 985# CONFIG_STACK_TRACER is not set
947# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 986# CONFIG_KMEMTRACE is not set
987# CONFIG_WORKQUEUE_TRACER is not set
988# CONFIG_BLK_DEV_IO_TRACE is not set
989# CONFIG_DYNAMIC_DEBUG is not set
948# CONFIG_SAMPLES is not set 990# CONFIG_SAMPLES is not set
949CONFIG_HAVE_ARCH_KGDB=y 991CONFIG_HAVE_ARCH_KGDB=y
950# CONFIG_KGDB is not set 992# CONFIG_KGDB is not set
951CONFIG_PRINT_STACK_DEPTH=64 993CONFIG_PRINT_STACK_DEPTH=64
952# CONFIG_DEBUG_STACKOVERFLOW is not set 994# CONFIG_DEBUG_STACKOVERFLOW is not set
953# CONFIG_DEBUG_STACK_USAGE is not set 995# CONFIG_DEBUG_STACK_USAGE is not set
954# CONFIG_DEBUG_PAGEALLOC is not set
955# CONFIG_CODE_PATCHING_SELFTEST is not set 996# CONFIG_CODE_PATCHING_SELFTEST is not set
956# CONFIG_FTR_FIXUP_SELFTEST is not set 997# CONFIG_FTR_FIXUP_SELFTEST is not set
957# CONFIG_MSI_BITMAP_SELFTEST is not set 998# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1045,6 +1086,7 @@ CONFIG_CRYPTO=y
1045# Compression 1086# Compression
1046# 1087#
1047# CONFIG_CRYPTO_DEFLATE is not set 1088# CONFIG_CRYPTO_DEFLATE is not set
1089# CONFIG_CRYPTO_ZLIB is not set
1048# CONFIG_CRYPTO_LZO is not set 1090# CONFIG_CRYPTO_LZO is not set
1049 1091
1050# 1092#
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index 905e8a3388d6..7b43be7586b6 100644
--- a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:05 2009 4# Wed May 13 17:22:17 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,21 +100,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set 112# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 113# CONFIG_KALLSYMS_EXTRA_PASS is not set
114# CONFIG_STRIP_ASM_SYMS is not set
99CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 116CONFIG_PRINTK=y
101CONFIG_BUG=y 117CONFIG_BUG=y
102CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
103CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 120CONFIG_FUTEX=y
106CONFIG_ANON_INODES=y
107CONFIG_EPOLL=y 121CONFIG_EPOLL=y
108CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
@@ -112,16 +126,19 @@ CONFIG_SHMEM=y
112CONFIG_AIO=y 126CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 127CONFIG_VM_EVENT_COUNTERS=y
114CONFIG_SLUB_DEBUG=y 128CONFIG_SLUB_DEBUG=y
129CONFIG_COMPAT_BRK=y
115# CONFIG_SLAB is not set 130# CONFIG_SLAB is not set
116CONFIG_SLUB=y 131CONFIG_SLUB=y
117# CONFIG_SLOB is not set 132# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 133# CONFIG_PROFILING is not set
134# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y 137CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 138CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
141# CONFIG_SLOW_WORK is not set
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 142# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 143CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 144CONFIG_RT_MUTEXES=y
@@ -129,7 +146,6 @@ CONFIG_BASE_SMALL=0
129# CONFIG_MODULES is not set 146# CONFIG_MODULES is not set
130CONFIG_BLOCK=y 147CONFIG_BLOCK=y
131# CONFIG_LBD is not set 148# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_BLK_DEV_BSG is not set 149# CONFIG_BLK_DEV_BSG is not set
134# CONFIG_BLK_DEV_INTEGRITY is not set 150# CONFIG_BLK_DEV_INTEGRITY is not set
135 151
@@ -145,11 +161,6 @@ CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_CFQ is not set 161# CONFIG_DEFAULT_CFQ is not set
146# CONFIG_DEFAULT_NOOP is not set 162# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 163CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y
149# CONFIG_TREE_RCU is not set
150# CONFIG_PREEMPT_RCU is not set
151# CONFIG_TREE_RCU_TRACE is not set
152# CONFIG_PREEMPT_RCU_TRACE is not set
153# CONFIG_FREEZER is not set 164# CONFIG_FREEZER is not set
154 165
155# 166#
@@ -165,6 +176,7 @@ CONFIG_MPC8540_ADS=y
165# CONFIG_MPC85xx_MDS is not set 176# CONFIG_MPC85xx_MDS is not set
166# CONFIG_MPC8536_DS is not set 177# CONFIG_MPC8536_DS is not set
167# CONFIG_MPC85xx_DS is not set 178# CONFIG_MPC85xx_DS is not set
179# CONFIG_SOCRATES is not set
168# CONFIG_KSI8560 is not set 180# CONFIG_KSI8560 is not set
169# CONFIG_STX_GP3 is not set 181# CONFIG_STX_GP3 is not set
170# CONFIG_TQM8540 is not set 182# CONFIG_TQM8540 is not set
@@ -233,9 +245,12 @@ CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_HAVE_MLOCK=y
249CONFIG_HAVE_MLOCKED_PAGE_BIT=y
236CONFIG_PPC_4K_PAGES=y 250CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set 251# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set 252# CONFIG_PPC_64K_PAGES is not set
253# CONFIG_PPC_256K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 254CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 255CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 256# CONFIG_CMDLINE_BOOL is not set
@@ -266,17 +281,17 @@ CONFIG_PPC_PCI_CHOICE=y
266# Default settings for advanced configuration options are used 281# Default settings for advanced configuration options are used
267# 282#
268CONFIG_LOWMEM_SIZE=0x30000000 283CONFIG_LOWMEM_SIZE=0x30000000
284CONFIG_LOWMEM_CAM_NUM=3
269CONFIG_PAGE_OFFSET=0xc0000000 285CONFIG_PAGE_OFFSET=0xc0000000
270CONFIG_KERNEL_START=0xc0000000 286CONFIG_KERNEL_START=0xc0000000
271CONFIG_PHYSICAL_START=0x00000000 287CONFIG_PHYSICAL_START=0x00000000
272CONFIG_PHYSICAL_ALIGN=0x10000000 288CONFIG_PHYSICAL_ALIGN=0x04000000
273CONFIG_TASK_SIZE=0xc0000000 289CONFIG_TASK_SIZE=0xc0000000
274CONFIG_NET=y 290CONFIG_NET=y
275 291
276# 292#
277# Networking options 293# Networking options
278# 294#
279CONFIG_COMPAT_NET_DEV_OPS=y
280CONFIG_PACKET=y 295CONFIG_PACKET=y
281# CONFIG_PACKET_MMAP is not set 296# CONFIG_PACKET_MMAP is not set
282CONFIG_UNIX=y 297CONFIG_UNIX=y
@@ -332,6 +347,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_LAPB is not set 347# CONFIG_LAPB is not set
333# CONFIG_ECONET is not set 348# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 349# CONFIG_WAN_ROUTER is not set
350# CONFIG_PHONET is not set
335# CONFIG_NET_SCHED is not set 351# CONFIG_NET_SCHED is not set
336# CONFIG_DCB is not set 352# CONFIG_DCB is not set
337 353
@@ -344,7 +360,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_IRDA is not set 360# CONFIG_IRDA is not set
345# CONFIG_BT is not set 361# CONFIG_BT is not set
346# CONFIG_AF_RXRPC is not set 362# CONFIG_AF_RXRPC is not set
347# CONFIG_PHONET is not set
348CONFIG_WIRELESS=y 363CONFIG_WIRELESS=y
349# CONFIG_CFG80211 is not set 364# CONFIG_CFG80211 is not set
350CONFIG_WIRELESS_OLD_REGULATORY=y 365CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -387,9 +402,13 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
387# CONFIG_ATA_OVER_ETH is not set 402# CONFIG_ATA_OVER_ETH is not set
388# CONFIG_BLK_DEV_HD is not set 403# CONFIG_BLK_DEV_HD is not set
389CONFIG_MISC_DEVICES=y 404CONFIG_MISC_DEVICES=y
390# CONFIG_EEPROM_93CX6 is not set
391# CONFIG_ENCLOSURE_SERVICES is not set 405# CONFIG_ENCLOSURE_SERVICES is not set
392# CONFIG_C2PORT is not set 406# CONFIG_C2PORT is not set
407
408#
409# EEPROM support
410#
411# CONFIG_EEPROM_93CX6 is not set
393CONFIG_HAVE_IDE=y 412CONFIG_HAVE_IDE=y
394# CONFIG_IDE is not set 413# CONFIG_IDE is not set
395 414
@@ -404,6 +423,7 @@ CONFIG_HAVE_IDE=y
404# CONFIG_MD is not set 423# CONFIG_MD is not set
405# CONFIG_MACINTOSH_DRIVERS is not set 424# CONFIG_MACINTOSH_DRIVERS is not set
406CONFIG_NETDEVICES=y 425CONFIG_NETDEVICES=y
426CONFIG_COMPAT_NET_DEV_OPS=y
407# CONFIG_DUMMY is not set 427# CONFIG_DUMMY is not set
408# CONFIG_BONDING is not set 428# CONFIG_BONDING is not set
409# CONFIG_MACVLAN is not set 429# CONFIG_MACVLAN is not set
@@ -432,6 +452,8 @@ CONFIG_PHYLIB=y
432# CONFIG_MDIO_BITBANG is not set 452# CONFIG_MDIO_BITBANG is not set
433CONFIG_NET_ETHERNET=y 453CONFIG_NET_ETHERNET=y
434CONFIG_MII=y 454CONFIG_MII=y
455# CONFIG_ETHOC is not set
456# CONFIG_DNET is not set
435# CONFIG_IBM_NEW_EMAC_ZMII is not set 457# CONFIG_IBM_NEW_EMAC_ZMII is not set
436# CONFIG_IBM_NEW_EMAC_RGMII is not set 458# CONFIG_IBM_NEW_EMAC_RGMII is not set
437# CONFIG_IBM_NEW_EMAC_TAH is not set 459# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -441,6 +463,7 @@ CONFIG_MII=y
441# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 463# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
442# CONFIG_B44 is not set 464# CONFIG_B44 is not set
443CONFIG_NETDEV_1000=y 465CONFIG_NETDEV_1000=y
466CONFIG_FSL_PQ_MDIO=y
444CONFIG_GIANFAR=y 467CONFIG_GIANFAR=y
445CONFIG_NETDEV_10000=y 468CONFIG_NETDEV_10000=y
446 469
@@ -449,7 +472,6 @@ CONFIG_NETDEV_10000=y
449# 472#
450# CONFIG_WLAN_PRE80211 is not set 473# CONFIG_WLAN_PRE80211 is not set
451# CONFIG_WLAN_80211 is not set 474# CONFIG_WLAN_80211 is not set
452# CONFIG_IWLWIFI_LEDS is not set
453 475
454# 476#
455# Enable WiMAX (Networking options) to see the WiMAX drivers 477# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -607,7 +629,6 @@ CONFIG_HID=y
607# 629#
608# Special HID drivers 630# Special HID drivers
609# 631#
610CONFIG_HID_COMPAT=y
611CONFIG_USB_SUPPORT=y 632CONFIG_USB_SUPPORT=y
612# CONFIG_USB_ARCH_HAS_HCD is not set 633# CONFIG_USB_ARCH_HAS_HCD is not set
613# CONFIG_USB_ARCH_HAS_OHCI is not set 634# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -620,7 +641,7 @@ CONFIG_USB_SUPPORT=y
620# 641#
621 642
622# 643#
623# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 644# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
624# 645#
625# CONFIG_USB_GADGET is not set 646# CONFIG_USB_GADGET is not set
626 647
@@ -634,6 +655,7 @@ CONFIG_USB_SUPPORT=y
634# CONFIG_EDAC is not set 655# CONFIG_EDAC is not set
635# CONFIG_RTC_CLASS is not set 656# CONFIG_RTC_CLASS is not set
636# CONFIG_DMADEVICES is not set 657# CONFIG_DMADEVICES is not set
658# CONFIG_AUXDISPLAY is not set
637# CONFIG_UIO is not set 659# CONFIG_UIO is not set
638# CONFIG_STAGING is not set 660# CONFIG_STAGING is not set
639 661
@@ -644,6 +666,7 @@ CONFIG_EXT2_FS=y
644# CONFIG_EXT2_FS_XATTR is not set 666# CONFIG_EXT2_FS_XATTR is not set
645# CONFIG_EXT2_FS_XIP is not set 667# CONFIG_EXT2_FS_XIP is not set
646CONFIG_EXT3_FS=y 668CONFIG_EXT3_FS=y
669# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
647CONFIG_EXT3_FS_XATTR=y 670CONFIG_EXT3_FS_XATTR=y
648# CONFIG_EXT3_FS_POSIX_ACL is not set 671# CONFIG_EXT3_FS_POSIX_ACL is not set
649# CONFIG_EXT3_FS_SECURITY is not set 672# CONFIG_EXT3_FS_SECURITY is not set
@@ -666,6 +689,11 @@ CONFIG_INOTIFY_USER=y
666# CONFIG_FUSE_FS is not set 689# CONFIG_FUSE_FS is not set
667 690
668# 691#
692# Caches
693#
694# CONFIG_FSCACHE is not set
695
696#
669# CD-ROM/DVD Filesystems 697# CD-ROM/DVD Filesystems
670# 698#
671# CONFIG_ISO9660_FS is not set 699# CONFIG_ISO9660_FS is not set
@@ -708,6 +736,7 @@ CONFIG_MISC_FILESYSTEMS=y
708# CONFIG_ROMFS_FS is not set 736# CONFIG_ROMFS_FS is not set
709# CONFIG_SYSV_FS is not set 737# CONFIG_SYSV_FS is not set
710# CONFIG_UFS_FS is not set 738# CONFIG_UFS_FS is not set
739# CONFIG_NILFS2_FS is not set
711CONFIG_NETWORK_FILESYSTEMS=y 740CONFIG_NETWORK_FILESYSTEMS=y
712CONFIG_NFS_FS=y 741CONFIG_NFS_FS=y
713# CONFIG_NFS_V3 is not set 742# CONFIG_NFS_V3 is not set
@@ -717,7 +746,6 @@ CONFIG_ROOT_NFS=y
717CONFIG_LOCKD=y 746CONFIG_LOCKD=y
718CONFIG_NFS_COMMON=y 747CONFIG_NFS_COMMON=y
719CONFIG_SUNRPC=y 748CONFIG_SUNRPC=y
720# CONFIG_SUNRPC_REGISTER_V4 is not set
721# CONFIG_RPCSEC_GSS_KRB5 is not set 749# CONFIG_RPCSEC_GSS_KRB5 is not set
722# CONFIG_RPCSEC_GSS_SPKM3 is not set 750# CONFIG_RPCSEC_GSS_SPKM3 is not set
723# CONFIG_SMB_FS is not set 751# CONFIG_SMB_FS is not set
@@ -745,6 +773,7 @@ CONFIG_PARTITION_ADVANCED=y
745# CONFIG_SYSV68_PARTITION is not set 773# CONFIG_SYSV68_PARTITION is not set
746# CONFIG_NLS is not set 774# CONFIG_NLS is not set
747# CONFIG_DLM is not set 775# CONFIG_DLM is not set
776# CONFIG_BINARY_PRINTF is not set
748 777
749# 778#
750# Library routines 779# Library routines
@@ -758,11 +787,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
758CONFIG_CRC32=y 787CONFIG_CRC32=y
759# CONFIG_CRC7 is not set 788# CONFIG_CRC7 is not set
760# CONFIG_LIBCRC32C is not set 789# CONFIG_LIBCRC32C is not set
761CONFIG_PLIST=y 790CONFIG_ZLIB_INFLATE=y
791CONFIG_DECOMPRESS_GZIP=y
762CONFIG_HAS_IOMEM=y 792CONFIG_HAS_IOMEM=y
763CONFIG_HAS_IOPORT=y 793CONFIG_HAS_IOPORT=y
764CONFIG_HAS_DMA=y 794CONFIG_HAS_DMA=y
765CONFIG_HAVE_LMB=y 795CONFIG_HAVE_LMB=y
796CONFIG_NLATTR=y
766 797
767# 798#
768# Kernel hacking 799# Kernel hacking
@@ -780,6 +811,9 @@ CONFIG_DEBUG_KERNEL=y
780CONFIG_DETECT_SOFTLOCKUP=y 811CONFIG_DETECT_SOFTLOCKUP=y
781# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 812# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
782CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 813CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
814CONFIG_DETECT_HUNG_TASK=y
815# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
816CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
783CONFIG_SCHED_DEBUG=y 817CONFIG_SCHED_DEBUG=y
784# CONFIG_SCHEDSTATS is not set 818# CONFIG_SCHEDSTATS is not set
785# CONFIG_TIMER_STATS is not set 819# CONFIG_TIMER_STATS is not set
@@ -809,9 +843,12 @@ CONFIG_DEBUG_MUTEXES=y
809# CONFIG_FAULT_INJECTION is not set 843# CONFIG_FAULT_INJECTION is not set
810# CONFIG_LATENCYTOP is not set 844# CONFIG_LATENCYTOP is not set
811CONFIG_SYSCTL_SYSCALL_CHECK=y 845CONFIG_SYSCTL_SYSCALL_CHECK=y
846# CONFIG_DEBUG_PAGEALLOC is not set
812CONFIG_HAVE_FUNCTION_TRACER=y 847CONFIG_HAVE_FUNCTION_TRACER=y
848CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
813CONFIG_HAVE_DYNAMIC_FTRACE=y 849CONFIG_HAVE_DYNAMIC_FTRACE=y
814CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 850CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
851CONFIG_TRACING_SUPPORT=y
815 852
816# 853#
817# Tracers 854# Tracers
@@ -819,17 +856,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
819# CONFIG_FUNCTION_TRACER is not set 856# CONFIG_FUNCTION_TRACER is not set
820# CONFIG_SCHED_TRACER is not set 857# CONFIG_SCHED_TRACER is not set
821# CONFIG_CONTEXT_SWITCH_TRACER is not set 858# CONFIG_CONTEXT_SWITCH_TRACER is not set
859# CONFIG_EVENT_TRACER is not set
822# CONFIG_BOOT_TRACER is not set 860# CONFIG_BOOT_TRACER is not set
823# CONFIG_TRACE_BRANCH_PROFILING is not set 861# CONFIG_TRACE_BRANCH_PROFILING is not set
824# CONFIG_STACK_TRACER is not set 862# CONFIG_STACK_TRACER is not set
825# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 863# CONFIG_KMEMTRACE is not set
864# CONFIG_WORKQUEUE_TRACER is not set
865# CONFIG_BLK_DEV_IO_TRACE is not set
826# CONFIG_SAMPLES is not set 866# CONFIG_SAMPLES is not set
827CONFIG_HAVE_ARCH_KGDB=y 867CONFIG_HAVE_ARCH_KGDB=y
828# CONFIG_KGDB is not set 868# CONFIG_KGDB is not set
829CONFIG_PRINT_STACK_DEPTH=64 869CONFIG_PRINT_STACK_DEPTH=64
830# CONFIG_DEBUG_STACKOVERFLOW is not set 870# CONFIG_DEBUG_STACKOVERFLOW is not set
831# CONFIG_DEBUG_STACK_USAGE is not set 871# CONFIG_DEBUG_STACK_USAGE is not set
832# CONFIG_DEBUG_PAGEALLOC is not set
833# CONFIG_CODE_PATCHING_SELFTEST is not set 872# CONFIG_CODE_PATCHING_SELFTEST is not set
834# CONFIG_FTR_FIXUP_SELFTEST is not set 873# CONFIG_FTR_FIXUP_SELFTEST is not set
835# CONFIG_MSI_BITMAP_SELFTEST is not set 874# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -922,6 +961,7 @@ CONFIG_CRYPTO=y
922# Compression 961# Compression
923# 962#
924# CONFIG_CRYPTO_DEFLATE is not set 963# CONFIG_CRYPTO_DEFLATE is not set
964# CONFIG_CRYPTO_ZLIB is not set
925# CONFIG_CRYPTO_LZO is not set 965# CONFIG_CRYPTO_LZO is not set
926 966
927# 967#
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index 095e2ded6e8b..62adb71a5d4f 100644
--- a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:09 2009 4# Wed May 13 17:22:17 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
@@ -90,21 +101,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 103CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 111CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 112CONFIG_KALLSYMS=y
98# CONFIG_KALLSYMS_ALL is not set 113# CONFIG_KALLSYMS_ALL is not set
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 114# CONFIG_KALLSYMS_EXTRA_PASS is not set
115# CONFIG_STRIP_ASM_SYMS is not set
100CONFIG_HOTPLUG=y 116CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 117CONFIG_PRINTK=y
102CONFIG_BUG=y 118CONFIG_BUG=y
103CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 121CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 122CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
@@ -114,10 +128,12 @@ CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 128CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y 129CONFIG_PCI_QUIRKS=y
116CONFIG_SLUB_DEBUG=y 130CONFIG_SLUB_DEBUG=y
131CONFIG_COMPAT_BRK=y
117# CONFIG_SLAB is not set 132# CONFIG_SLAB is not set
118CONFIG_SLUB=y 133CONFIG_SLUB=y
119# CONFIG_SLOB is not set 134# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 135# CONFIG_PROFILING is not set
136# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 137CONFIG_HAVE_OPROFILE=y
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 138CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y 139CONFIG_HAVE_IOREMAP_PROT=y
@@ -125,6 +141,7 @@ CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 141CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 142CONFIG_HAVE_ARCH_TRACEHOOK=y
127CONFIG_HAVE_CLK=y 143CONFIG_HAVE_CLK=y
144# CONFIG_SLOW_WORK is not set
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 145# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 146CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 147CONFIG_RT_MUTEXES=y
@@ -132,7 +149,6 @@ CONFIG_BASE_SMALL=0
132# CONFIG_MODULES is not set 149# CONFIG_MODULES is not set
133CONFIG_BLOCK=y 150CONFIG_BLOCK=y
134# CONFIG_LBD is not set 151# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_BLK_DEV_BSG is not set 152# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 153# CONFIG_BLK_DEV_INTEGRITY is not set
138 154
@@ -148,11 +164,6 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
149# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 166CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_CLASSIC_RCU=y
152# CONFIG_TREE_RCU is not set
153# CONFIG_PREEMPT_RCU is not set
154# CONFIG_TREE_RCU_TRACE is not set
155# CONFIG_PREEMPT_RCU_TRACE is not set
156# CONFIG_FREEZER is not set 167# CONFIG_FREEZER is not set
157 168
158# 169#
@@ -168,6 +179,7 @@ CONFIG_MPC8560_ADS=y
168# CONFIG_MPC85xx_MDS is not set 179# CONFIG_MPC85xx_MDS is not set
169# CONFIG_MPC8536_DS is not set 180# CONFIG_MPC8536_DS is not set
170# CONFIG_MPC85xx_DS is not set 181# CONFIG_MPC85xx_DS is not set
182# CONFIG_SOCRATES is not set
171# CONFIG_KSI8560 is not set 183# CONFIG_KSI8560 is not set
172# CONFIG_STX_GP3 is not set 184# CONFIG_STX_GP3 is not set
173# CONFIG_TQM8540 is not set 185# CONFIG_TQM8540 is not set
@@ -236,9 +248,12 @@ CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 249CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y 250CONFIG_UNEVICTABLE_LRU=y
251CONFIG_HAVE_MLOCK=y
252CONFIG_HAVE_MLOCKED_PAGE_BIT=y
239CONFIG_PPC_4K_PAGES=y 253CONFIG_PPC_4K_PAGES=y
240# CONFIG_PPC_16K_PAGES is not set 254# CONFIG_PPC_16K_PAGES is not set
241# CONFIG_PPC_64K_PAGES is not set 255# CONFIG_PPC_64K_PAGES is not set
256# CONFIG_PPC_256K_PAGES is not set
242CONFIG_FORCE_MAX_ZONEORDER=11 257CONFIG_FORCE_MAX_ZONEORDER=11
243# CONFIG_PROC_DEVICETREE is not set 258# CONFIG_PROC_DEVICETREE is not set
244# CONFIG_CMDLINE_BOOL is not set 259# CONFIG_CMDLINE_BOOL is not set
@@ -264,6 +279,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
264# CONFIG_PCI_LEGACY is not set 279# CONFIG_PCI_LEGACY is not set
265CONFIG_PCI_DEBUG=y 280CONFIG_PCI_DEBUG=y
266# CONFIG_PCI_STUB is not set 281# CONFIG_PCI_STUB is not set
282# CONFIG_PCI_IOV is not set
267# CONFIG_PCCARD is not set 283# CONFIG_PCCARD is not set
268# CONFIG_HOTPLUG_PCI is not set 284# CONFIG_HOTPLUG_PCI is not set
269# CONFIG_HAS_RAPIDIO is not set 285# CONFIG_HAS_RAPIDIO is not set
@@ -277,17 +293,17 @@ CONFIG_PCI_DEBUG=y
277# Default settings for advanced configuration options are used 293# Default settings for advanced configuration options are used
278# 294#
279CONFIG_LOWMEM_SIZE=0x30000000 295CONFIG_LOWMEM_SIZE=0x30000000
296CONFIG_LOWMEM_CAM_NUM=3
280CONFIG_PAGE_OFFSET=0xc0000000 297CONFIG_PAGE_OFFSET=0xc0000000
281CONFIG_KERNEL_START=0xc0000000 298CONFIG_KERNEL_START=0xc0000000
282CONFIG_PHYSICAL_START=0x00000000 299CONFIG_PHYSICAL_START=0x00000000
283CONFIG_PHYSICAL_ALIGN=0x10000000 300CONFIG_PHYSICAL_ALIGN=0x04000000
284CONFIG_TASK_SIZE=0xc0000000 301CONFIG_TASK_SIZE=0xc0000000
285CONFIG_NET=y 302CONFIG_NET=y
286 303
287# 304#
288# Networking options 305# Networking options
289# 306#
290CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 307CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 308# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 309CONFIG_UNIX=y
@@ -343,6 +359,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_LAPB is not set 359# CONFIG_LAPB is not set
344# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
362# CONFIG_PHONET is not set
346# CONFIG_NET_SCHED is not set 363# CONFIG_NET_SCHED is not set
347# CONFIG_DCB is not set 364# CONFIG_DCB is not set
348 365
@@ -355,7 +372,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
355# CONFIG_IRDA is not set 372# CONFIG_IRDA is not set
356# CONFIG_BT is not set 373# CONFIG_BT is not set
357# CONFIG_AF_RXRPC is not set 374# CONFIG_AF_RXRPC is not set
358# CONFIG_PHONET is not set
359CONFIG_WIRELESS=y 375CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 377CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -405,12 +421,16 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
405# CONFIG_BLK_DEV_HD is not set 421# CONFIG_BLK_DEV_HD is not set
406CONFIG_MISC_DEVICES=y 422CONFIG_MISC_DEVICES=y
407# CONFIG_PHANTOM is not set 423# CONFIG_PHANTOM is not set
408# CONFIG_EEPROM_93CX6 is not set
409# CONFIG_SGI_IOC4 is not set 424# CONFIG_SGI_IOC4 is not set
410# CONFIG_TIFM_CORE is not set 425# CONFIG_TIFM_CORE is not set
411# CONFIG_ENCLOSURE_SERVICES is not set 426# CONFIG_ENCLOSURE_SERVICES is not set
412# CONFIG_HP_ILO is not set 427# CONFIG_HP_ILO is not set
413# CONFIG_C2PORT is not set 428# CONFIG_C2PORT is not set
429
430#
431# EEPROM support
432#
433# CONFIG_EEPROM_93CX6 is not set
414CONFIG_HAVE_IDE=y 434CONFIG_HAVE_IDE=y
415# CONFIG_IDE is not set 435# CONFIG_IDE is not set
416 436
@@ -437,6 +457,7 @@ CONFIG_HAVE_IDE=y
437# CONFIG_I2O is not set 457# CONFIG_I2O is not set
438# CONFIG_MACINTOSH_DRIVERS is not set 458# CONFIG_MACINTOSH_DRIVERS is not set
439CONFIG_NETDEVICES=y 459CONFIG_NETDEVICES=y
460CONFIG_COMPAT_NET_DEV_OPS=y
440# CONFIG_DUMMY is not set 461# CONFIG_DUMMY is not set
441# CONFIG_BONDING is not set 462# CONFIG_BONDING is not set
442# CONFIG_MACVLAN is not set 463# CONFIG_MACVLAN is not set
@@ -470,6 +491,8 @@ CONFIG_MII=y
470# CONFIG_SUNGEM is not set 491# CONFIG_SUNGEM is not set
471# CONFIG_CASSINI is not set 492# CONFIG_CASSINI is not set
472# CONFIG_NET_VENDOR_3COM is not set 493# CONFIG_NET_VENDOR_3COM is not set
494# CONFIG_ETHOC is not set
495# CONFIG_DNET is not set
473# CONFIG_NET_TULIP is not set 496# CONFIG_NET_TULIP is not set
474# CONFIG_HP100 is not set 497# CONFIG_HP100 is not set
475# CONFIG_IBM_NEW_EMAC_ZMII is not set 498# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -493,6 +516,7 @@ CONFIG_E1000=y
493# CONFIG_E1000E is not set 516# CONFIG_E1000E is not set
494# CONFIG_IP1000 is not set 517# CONFIG_IP1000 is not set
495# CONFIG_IGB is not set 518# CONFIG_IGB is not set
519# CONFIG_IGBVF is not set
496# CONFIG_NS83820 is not set 520# CONFIG_NS83820 is not set
497# CONFIG_HAMACHI is not set 521# CONFIG_HAMACHI is not set
498# CONFIG_YELLOWFIN is not set 522# CONFIG_YELLOWFIN is not set
@@ -503,10 +527,12 @@ CONFIG_E1000=y
503# CONFIG_VIA_VELOCITY is not set 527# CONFIG_VIA_VELOCITY is not set
504# CONFIG_TIGON3 is not set 528# CONFIG_TIGON3 is not set
505# CONFIG_BNX2 is not set 529# CONFIG_BNX2 is not set
530CONFIG_FSL_PQ_MDIO=y
506CONFIG_GIANFAR=y 531CONFIG_GIANFAR=y
507# CONFIG_QLA3XXX is not set 532# CONFIG_QLA3XXX is not set
508# CONFIG_ATL1 is not set 533# CONFIG_ATL1 is not set
509# CONFIG_ATL1E is not set 534# CONFIG_ATL1E is not set
535# CONFIG_ATL1C is not set
510# CONFIG_JME is not set 536# CONFIG_JME is not set
511CONFIG_NETDEV_10000=y 537CONFIG_NETDEV_10000=y
512# CONFIG_CHELSIO_T1 is not set 538# CONFIG_CHELSIO_T1 is not set
@@ -516,6 +542,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
516# CONFIG_IXGBE is not set 542# CONFIG_IXGBE is not set
517# CONFIG_IXGB is not set 543# CONFIG_IXGB is not set
518# CONFIG_S2IO is not set 544# CONFIG_S2IO is not set
545# CONFIG_VXGE is not set
519# CONFIG_MYRI10GE is not set 546# CONFIG_MYRI10GE is not set
520# CONFIG_NETXEN_NIC is not set 547# CONFIG_NETXEN_NIC is not set
521# CONFIG_NIU is not set 548# CONFIG_NIU is not set
@@ -525,6 +552,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
525# CONFIG_BNX2X is not set 552# CONFIG_BNX2X is not set
526# CONFIG_QLGE is not set 553# CONFIG_QLGE is not set
527# CONFIG_SFC is not set 554# CONFIG_SFC is not set
555# CONFIG_BE2NET is not set
528# CONFIG_TR is not set 556# CONFIG_TR is not set
529 557
530# 558#
@@ -532,7 +560,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
532# 560#
533# CONFIG_WLAN_PRE80211 is not set 561# CONFIG_WLAN_PRE80211 is not set
534# CONFIG_WLAN_80211 is not set 562# CONFIG_WLAN_80211 is not set
535# CONFIG_IWLWIFI_LEDS is not set
536 563
537# 564#
538# Enable WiMAX (Networking options) to see the WiMAX drivers 565# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -608,6 +635,7 @@ CONFIG_LEGACY_PTY_COUNT=256
608# CONFIG_HVC_UDBG is not set 635# CONFIG_HVC_UDBG is not set
609# CONFIG_IPMI_HANDLER is not set 636# CONFIG_IPMI_HANDLER is not set
610CONFIG_HW_RANDOM=y 637CONFIG_HW_RANDOM=y
638# CONFIG_HW_RANDOM_TIMERIOMEM is not set
611# CONFIG_NVRAM is not set 639# CONFIG_NVRAM is not set
612CONFIG_GEN_RTC=y 640CONFIG_GEN_RTC=y
613# CONFIG_GEN_RTC_X is not set 641# CONFIG_GEN_RTC_X is not set
@@ -651,6 +679,7 @@ CONFIG_HWMON=y
651# CONFIG_SENSORS_IT87 is not set 679# CONFIG_SENSORS_IT87 is not set
652# CONFIG_SENSORS_PC87360 is not set 680# CONFIG_SENSORS_PC87360 is not set
653# CONFIG_SENSORS_PC87427 is not set 681# CONFIG_SENSORS_PC87427 is not set
682# CONFIG_SENSORS_SHT15 is not set
654# CONFIG_SENSORS_SIS5595 is not set 683# CONFIG_SENSORS_SIS5595 is not set
655# CONFIG_SENSORS_SMSC47M1 is not set 684# CONFIG_SENSORS_SMSC47M1 is not set
656# CONFIG_SENSORS_SMSC47B397 is not set 685# CONFIG_SENSORS_SMSC47B397 is not set
@@ -719,7 +748,6 @@ CONFIG_HID=y
719# 748#
720# Special HID drivers 749# Special HID drivers
721# 750#
722CONFIG_HID_COMPAT=y
723CONFIG_USB_SUPPORT=y 751CONFIG_USB_SUPPORT=y
724CONFIG_USB_ARCH_HAS_HCD=y 752CONFIG_USB_ARCH_HAS_HCD=y
725CONFIG_USB_ARCH_HAS_OHCI=y 753CONFIG_USB_ARCH_HAS_OHCI=y
@@ -733,7 +761,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
733# 761#
734 762
735# 763#
736# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 764# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
737# 765#
738# CONFIG_USB_GADGET is not set 766# CONFIG_USB_GADGET is not set
739 767
@@ -749,6 +777,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
749# CONFIG_EDAC is not set 777# CONFIG_EDAC is not set
750# CONFIG_RTC_CLASS is not set 778# CONFIG_RTC_CLASS is not set
751# CONFIG_DMADEVICES is not set 779# CONFIG_DMADEVICES is not set
780# CONFIG_AUXDISPLAY is not set
752# CONFIG_UIO is not set 781# CONFIG_UIO is not set
753# CONFIG_STAGING is not set 782# CONFIG_STAGING is not set
754 783
@@ -759,6 +788,7 @@ CONFIG_EXT2_FS=y
759# CONFIG_EXT2_FS_XATTR is not set 788# CONFIG_EXT2_FS_XATTR is not set
760# CONFIG_EXT2_FS_XIP is not set 789# CONFIG_EXT2_FS_XIP is not set
761CONFIG_EXT3_FS=y 790CONFIG_EXT3_FS=y
791# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
762CONFIG_EXT3_FS_XATTR=y 792CONFIG_EXT3_FS_XATTR=y
763# CONFIG_EXT3_FS_POSIX_ACL is not set 793# CONFIG_EXT3_FS_POSIX_ACL is not set
764# CONFIG_EXT3_FS_SECURITY is not set 794# CONFIG_EXT3_FS_SECURITY is not set
@@ -781,6 +811,11 @@ CONFIG_INOTIFY_USER=y
781# CONFIG_FUSE_FS is not set 811# CONFIG_FUSE_FS is not set
782 812
783# 813#
814# Caches
815#
816# CONFIG_FSCACHE is not set
817
818#
784# CD-ROM/DVD Filesystems 819# CD-ROM/DVD Filesystems
785# 820#
786# CONFIG_ISO9660_FS is not set 821# CONFIG_ISO9660_FS is not set
@@ -823,6 +858,7 @@ CONFIG_MISC_FILESYSTEMS=y
823# CONFIG_ROMFS_FS is not set 858# CONFIG_ROMFS_FS is not set
824# CONFIG_SYSV_FS is not set 859# CONFIG_SYSV_FS is not set
825# CONFIG_UFS_FS is not set 860# CONFIG_UFS_FS is not set
861# CONFIG_NILFS2_FS is not set
826CONFIG_NETWORK_FILESYSTEMS=y 862CONFIG_NETWORK_FILESYSTEMS=y
827CONFIG_NFS_FS=y 863CONFIG_NFS_FS=y
828# CONFIG_NFS_V3 is not set 864# CONFIG_NFS_V3 is not set
@@ -832,7 +868,6 @@ CONFIG_ROOT_NFS=y
832CONFIG_LOCKD=y 868CONFIG_LOCKD=y
833CONFIG_NFS_COMMON=y 869CONFIG_NFS_COMMON=y
834CONFIG_SUNRPC=y 870CONFIG_SUNRPC=y
835# CONFIG_SUNRPC_REGISTER_V4 is not set
836# CONFIG_RPCSEC_GSS_KRB5 is not set 871# CONFIG_RPCSEC_GSS_KRB5 is not set
837# CONFIG_RPCSEC_GSS_SPKM3 is not set 872# CONFIG_RPCSEC_GSS_SPKM3 is not set
838# CONFIG_SMB_FS is not set 873# CONFIG_SMB_FS is not set
@@ -860,6 +895,7 @@ CONFIG_PARTITION_ADVANCED=y
860# CONFIG_SYSV68_PARTITION is not set 895# CONFIG_SYSV68_PARTITION is not set
861# CONFIG_NLS is not set 896# CONFIG_NLS is not set
862# CONFIG_DLM is not set 897# CONFIG_DLM is not set
898# CONFIG_BINARY_PRINTF is not set
863 899
864# 900#
865# Library routines 901# Library routines
@@ -873,11 +909,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
873CONFIG_CRC32=y 909CONFIG_CRC32=y
874# CONFIG_CRC7 is not set 910# CONFIG_CRC7 is not set
875# CONFIG_LIBCRC32C is not set 911# CONFIG_LIBCRC32C is not set
876CONFIG_PLIST=y 912CONFIG_ZLIB_INFLATE=y
913CONFIG_DECOMPRESS_GZIP=y
877CONFIG_HAS_IOMEM=y 914CONFIG_HAS_IOMEM=y
878CONFIG_HAS_IOPORT=y 915CONFIG_HAS_IOPORT=y
879CONFIG_HAS_DMA=y 916CONFIG_HAS_DMA=y
880CONFIG_HAVE_LMB=y 917CONFIG_HAVE_LMB=y
918CONFIG_NLATTR=y
881 919
882# 920#
883# Kernel hacking 921# Kernel hacking
@@ -895,6 +933,9 @@ CONFIG_DEBUG_KERNEL=y
895CONFIG_DETECT_SOFTLOCKUP=y 933CONFIG_DETECT_SOFTLOCKUP=y
896# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 934# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
897CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 935CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
936CONFIG_DETECT_HUNG_TASK=y
937# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
938CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
898CONFIG_SCHED_DEBUG=y 939CONFIG_SCHED_DEBUG=y
899# CONFIG_SCHEDSTATS is not set 940# CONFIG_SCHEDSTATS is not set
900# CONFIG_TIMER_STATS is not set 941# CONFIG_TIMER_STATS is not set
@@ -924,9 +965,12 @@ CONFIG_DEBUG_MUTEXES=y
924# CONFIG_FAULT_INJECTION is not set 965# CONFIG_FAULT_INJECTION is not set
925# CONFIG_LATENCYTOP is not set 966# CONFIG_LATENCYTOP is not set
926CONFIG_SYSCTL_SYSCALL_CHECK=y 967CONFIG_SYSCTL_SYSCALL_CHECK=y
968# CONFIG_DEBUG_PAGEALLOC is not set
927CONFIG_HAVE_FUNCTION_TRACER=y 969CONFIG_HAVE_FUNCTION_TRACER=y
970CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
928CONFIG_HAVE_DYNAMIC_FTRACE=y 971CONFIG_HAVE_DYNAMIC_FTRACE=y
929CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 972CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
973CONFIG_TRACING_SUPPORT=y
930 974
931# 975#
932# Tracers 976# Tracers
@@ -934,17 +978,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
934# CONFIG_FUNCTION_TRACER is not set 978# CONFIG_FUNCTION_TRACER is not set
935# CONFIG_SCHED_TRACER is not set 979# CONFIG_SCHED_TRACER is not set
936# CONFIG_CONTEXT_SWITCH_TRACER is not set 980# CONFIG_CONTEXT_SWITCH_TRACER is not set
981# CONFIG_EVENT_TRACER is not set
937# CONFIG_BOOT_TRACER is not set 982# CONFIG_BOOT_TRACER is not set
938# CONFIG_TRACE_BRANCH_PROFILING is not set 983# CONFIG_TRACE_BRANCH_PROFILING is not set
939# CONFIG_STACK_TRACER is not set 984# CONFIG_STACK_TRACER is not set
940# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 985# CONFIG_KMEMTRACE is not set
986# CONFIG_WORKQUEUE_TRACER is not set
987# CONFIG_BLK_DEV_IO_TRACE is not set
941# CONFIG_SAMPLES is not set 988# CONFIG_SAMPLES is not set
942CONFIG_HAVE_ARCH_KGDB=y 989CONFIG_HAVE_ARCH_KGDB=y
943# CONFIG_KGDB is not set 990# CONFIG_KGDB is not set
944CONFIG_PRINT_STACK_DEPTH=64 991CONFIG_PRINT_STACK_DEPTH=64
945# CONFIG_DEBUG_STACKOVERFLOW is not set 992# CONFIG_DEBUG_STACKOVERFLOW is not set
946# CONFIG_DEBUG_STACK_USAGE is not set 993# CONFIG_DEBUG_STACK_USAGE is not set
947# CONFIG_DEBUG_PAGEALLOC is not set
948# CONFIG_CODE_PATCHING_SELFTEST is not set 994# CONFIG_CODE_PATCHING_SELFTEST is not set
949# CONFIG_FTR_FIXUP_SELFTEST is not set 995# CONFIG_FTR_FIXUP_SELFTEST is not set
950# CONFIG_MSI_BITMAP_SELFTEST is not set 996# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1037,6 +1083,7 @@ CONFIG_CRYPTO=y
1037# Compression 1083# Compression
1038# 1084#
1039# CONFIG_CRYPTO_DEFLATE is not set 1085# CONFIG_CRYPTO_DEFLATE is not set
1086# CONFIG_CRYPTO_ZLIB is not set
1040# CONFIG_CRYPTO_LZO is not set 1087# CONFIG_CRYPTO_LZO is not set
1041 1088
1042# 1089#
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index f95961c04a20..41209e3a6545 100644
--- a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:13 2009 4# Wed May 13 17:22:18 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,21 +100,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set 112# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 113# CONFIG_KALLSYMS_EXTRA_PASS is not set
114# CONFIG_STRIP_ASM_SYMS is not set
99CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 116CONFIG_PRINTK=y
101CONFIG_BUG=y 117CONFIG_BUG=y
102CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
103CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 120CONFIG_FUTEX=y
106CONFIG_ANON_INODES=y
107CONFIG_EPOLL=y 121CONFIG_EPOLL=y
108CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
@@ -113,16 +127,19 @@ CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 127CONFIG_VM_EVENT_COUNTERS=y
114CONFIG_PCI_QUIRKS=y 128CONFIG_PCI_QUIRKS=y
115CONFIG_SLUB_DEBUG=y 129CONFIG_SLUB_DEBUG=y
130CONFIG_COMPAT_BRK=y
116# CONFIG_SLAB is not set 131# CONFIG_SLAB is not set
117CONFIG_SLUB=y 132CONFIG_SLUB=y
118# CONFIG_SLOB is not set 133# CONFIG_SLOB is not set
119# CONFIG_PROFILING is not set 134# CONFIG_PROFILING is not set
135# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 136CONFIG_HAVE_OPROFILE=y
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 137CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y 138CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 139CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 140CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y 141CONFIG_HAVE_ARCH_TRACEHOOK=y
142# CONFIG_SLOW_WORK is not set
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 143# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 144CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 145CONFIG_RT_MUTEXES=y
@@ -130,7 +147,6 @@ CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 147# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 148CONFIG_BLOCK=y
132# CONFIG_LBD is not set 149# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
136 152
@@ -146,11 +162,6 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_CFQ is not set 162# CONFIG_DEFAULT_CFQ is not set
147# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 165# CONFIG_FREEZER is not set
155 166
156# 167#
@@ -166,6 +177,7 @@ CONFIG_MPC85xx_CDS=y
166# CONFIG_MPC85xx_MDS is not set 177# CONFIG_MPC85xx_MDS is not set
167# CONFIG_MPC8536_DS is not set 178# CONFIG_MPC8536_DS is not set
168# CONFIG_MPC85xx_DS is not set 179# CONFIG_MPC85xx_DS is not set
180# CONFIG_SOCRATES is not set
169# CONFIG_KSI8560 is not set 181# CONFIG_KSI8560 is not set
170# CONFIG_STX_GP3 is not set 182# CONFIG_STX_GP3 is not set
171# CONFIG_TQM8540 is not set 183# CONFIG_TQM8540 is not set
@@ -234,9 +246,12 @@ CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 246CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 247CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 248CONFIG_UNEVICTABLE_LRU=y
249CONFIG_HAVE_MLOCK=y
250CONFIG_HAVE_MLOCKED_PAGE_BIT=y
237CONFIG_PPC_4K_PAGES=y 251CONFIG_PPC_4K_PAGES=y
238# CONFIG_PPC_16K_PAGES is not set 252# CONFIG_PPC_16K_PAGES is not set
239# CONFIG_PPC_64K_PAGES is not set 253# CONFIG_PPC_64K_PAGES is not set
254# CONFIG_PPC_256K_PAGES is not set
240CONFIG_FORCE_MAX_ZONEORDER=11 255CONFIG_FORCE_MAX_ZONEORDER=11
241CONFIG_PROC_DEVICETREE=y 256CONFIG_PROC_DEVICETREE=y
242# CONFIG_CMDLINE_BOOL is not set 257# CONFIG_CMDLINE_BOOL is not set
@@ -262,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_LEGACY is not set 277# CONFIG_PCI_LEGACY is not set
263# CONFIG_PCI_DEBUG is not set 278# CONFIG_PCI_DEBUG is not set
264# CONFIG_PCI_STUB is not set 279# CONFIG_PCI_STUB is not set
280# CONFIG_PCI_IOV is not set
265# CONFIG_PCCARD is not set 281# CONFIG_PCCARD is not set
266# CONFIG_HOTPLUG_PCI is not set 282# CONFIG_HOTPLUG_PCI is not set
267# CONFIG_HAS_RAPIDIO is not set 283# CONFIG_HAS_RAPIDIO is not set
@@ -275,17 +291,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
275# Default settings for advanced configuration options are used 291# Default settings for advanced configuration options are used
276# 292#
277CONFIG_LOWMEM_SIZE=0x30000000 293CONFIG_LOWMEM_SIZE=0x30000000
294CONFIG_LOWMEM_CAM_NUM=3
278CONFIG_PAGE_OFFSET=0xc0000000 295CONFIG_PAGE_OFFSET=0xc0000000
279CONFIG_KERNEL_START=0xc0000000 296CONFIG_KERNEL_START=0xc0000000
280CONFIG_PHYSICAL_START=0x00000000 297CONFIG_PHYSICAL_START=0x00000000
281CONFIG_PHYSICAL_ALIGN=0x10000000 298CONFIG_PHYSICAL_ALIGN=0x04000000
282CONFIG_TASK_SIZE=0xc0000000 299CONFIG_TASK_SIZE=0xc0000000
283CONFIG_NET=y 300CONFIG_NET=y
284 301
285# 302#
286# Networking options 303# Networking options
287# 304#
288CONFIG_COMPAT_NET_DEV_OPS=y
289CONFIG_PACKET=y 305CONFIG_PACKET=y
290# CONFIG_PACKET_MMAP is not set 306# CONFIG_PACKET_MMAP is not set
291CONFIG_UNIX=y 307CONFIG_UNIX=y
@@ -341,6 +357,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
341# CONFIG_LAPB is not set 357# CONFIG_LAPB is not set
342# CONFIG_ECONET is not set 358# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 359# CONFIG_WAN_ROUTER is not set
360# CONFIG_PHONET is not set
344# CONFIG_NET_SCHED is not set 361# CONFIG_NET_SCHED is not set
345# CONFIG_DCB is not set 362# CONFIG_DCB is not set
346 363
@@ -353,7 +370,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_IRDA is not set 370# CONFIG_IRDA is not set
354# CONFIG_BT is not set 371# CONFIG_BT is not set
355# CONFIG_AF_RXRPC is not set 372# CONFIG_AF_RXRPC is not set
356# CONFIG_PHONET is not set
357CONFIG_WIRELESS=y 373CONFIG_WIRELESS=y
358# CONFIG_CFG80211 is not set 374# CONFIG_CFG80211 is not set
359CONFIG_WIRELESS_OLD_REGULATORY=y 375CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -402,18 +418,23 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
402# CONFIG_BLK_DEV_HD is not set 418# CONFIG_BLK_DEV_HD is not set
403CONFIG_MISC_DEVICES=y 419CONFIG_MISC_DEVICES=y
404# CONFIG_PHANTOM is not set 420# CONFIG_PHANTOM is not set
405# CONFIG_EEPROM_93CX6 is not set
406# CONFIG_SGI_IOC4 is not set 421# CONFIG_SGI_IOC4 is not set
407# CONFIG_TIFM_CORE is not set 422# CONFIG_TIFM_CORE is not set
408# CONFIG_ENCLOSURE_SERVICES is not set 423# CONFIG_ENCLOSURE_SERVICES is not set
409# CONFIG_HP_ILO is not set 424# CONFIG_HP_ILO is not set
410# CONFIG_C2PORT is not set 425# CONFIG_C2PORT is not set
426
427#
428# EEPROM support
429#
430# CONFIG_EEPROM_93CX6 is not set
411CONFIG_HAVE_IDE=y 431CONFIG_HAVE_IDE=y
412CONFIG_IDE=y 432CONFIG_IDE=y
413 433
414# 434#
415# Please see Documentation/ide/ide.txt for help/info on IDE drives 435# Please see Documentation/ide/ide.txt for help/info on IDE drives
416# 436#
437CONFIG_IDE_XFER_MODE=y
417CONFIG_IDE_TIMINGS=y 438CONFIG_IDE_TIMINGS=y
418# CONFIG_BLK_DEV_IDE_SATA is not set 439# CONFIG_BLK_DEV_IDE_SATA is not set
419CONFIG_IDE_GD=y 440CONFIG_IDE_GD=y
@@ -488,6 +509,7 @@ CONFIG_BLK_DEV_IDEDMA=y
488# CONFIG_I2O is not set 509# CONFIG_I2O is not set
489# CONFIG_MACINTOSH_DRIVERS is not set 510# CONFIG_MACINTOSH_DRIVERS is not set
490CONFIG_NETDEVICES=y 511CONFIG_NETDEVICES=y
512CONFIG_COMPAT_NET_DEV_OPS=y
491# CONFIG_DUMMY is not set 513# CONFIG_DUMMY is not set
492# CONFIG_BONDING is not set 514# CONFIG_BONDING is not set
493# CONFIG_MACVLAN is not set 515# CONFIG_MACVLAN is not set
@@ -521,6 +543,8 @@ CONFIG_MII=y
521# CONFIG_SUNGEM is not set 543# CONFIG_SUNGEM is not set
522# CONFIG_CASSINI is not set 544# CONFIG_CASSINI is not set
523# CONFIG_NET_VENDOR_3COM is not set 545# CONFIG_NET_VENDOR_3COM is not set
546# CONFIG_ETHOC is not set
547# CONFIG_DNET is not set
524# CONFIG_NET_TULIP is not set 548# CONFIG_NET_TULIP is not set
525# CONFIG_HP100 is not set 549# CONFIG_HP100 is not set
526# CONFIG_IBM_NEW_EMAC_ZMII is not set 550# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -540,6 +564,7 @@ CONFIG_E1000=y
540# CONFIG_E1000E is not set 564# CONFIG_E1000E is not set
541# CONFIG_IP1000 is not set 565# CONFIG_IP1000 is not set
542# CONFIG_IGB is not set 566# CONFIG_IGB is not set
567# CONFIG_IGBVF is not set
543# CONFIG_NS83820 is not set 568# CONFIG_NS83820 is not set
544# CONFIG_HAMACHI is not set 569# CONFIG_HAMACHI is not set
545# CONFIG_YELLOWFIN is not set 570# CONFIG_YELLOWFIN is not set
@@ -550,10 +575,12 @@ CONFIG_E1000=y
550# CONFIG_VIA_VELOCITY is not set 575# CONFIG_VIA_VELOCITY is not set
551# CONFIG_TIGON3 is not set 576# CONFIG_TIGON3 is not set
552# CONFIG_BNX2 is not set 577# CONFIG_BNX2 is not set
578CONFIG_FSL_PQ_MDIO=y
553CONFIG_GIANFAR=y 579CONFIG_GIANFAR=y
554# CONFIG_QLA3XXX is not set 580# CONFIG_QLA3XXX is not set
555# CONFIG_ATL1 is not set 581# CONFIG_ATL1 is not set
556# CONFIG_ATL1E is not set 582# CONFIG_ATL1E is not set
583# CONFIG_ATL1C is not set
557# CONFIG_JME is not set 584# CONFIG_JME is not set
558CONFIG_NETDEV_10000=y 585CONFIG_NETDEV_10000=y
559# CONFIG_CHELSIO_T1 is not set 586# CONFIG_CHELSIO_T1 is not set
@@ -563,6 +590,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
563# CONFIG_IXGBE is not set 590# CONFIG_IXGBE is not set
564# CONFIG_IXGB is not set 591# CONFIG_IXGB is not set
565# CONFIG_S2IO is not set 592# CONFIG_S2IO is not set
593# CONFIG_VXGE is not set
566# CONFIG_MYRI10GE is not set 594# CONFIG_MYRI10GE is not set
567# CONFIG_NETXEN_NIC is not set 595# CONFIG_NETXEN_NIC is not set
568# CONFIG_NIU is not set 596# CONFIG_NIU is not set
@@ -572,6 +600,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
572# CONFIG_BNX2X is not set 600# CONFIG_BNX2X is not set
573# CONFIG_QLGE is not set 601# CONFIG_QLGE is not set
574# CONFIG_SFC is not set 602# CONFIG_SFC is not set
603# CONFIG_BE2NET is not set
575# CONFIG_TR is not set 604# CONFIG_TR is not set
576 605
577# 606#
@@ -579,7 +608,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
579# 608#
580# CONFIG_WLAN_PRE80211 is not set 609# CONFIG_WLAN_PRE80211 is not set
581# CONFIG_WLAN_80211 is not set 610# CONFIG_WLAN_80211 is not set
582# CONFIG_IWLWIFI_LEDS is not set
583 611
584# 612#
585# Enable WiMAX (Networking options) to see the WiMAX drivers 613# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -750,7 +778,6 @@ CONFIG_HID=y
750# 778#
751# Special HID drivers 779# Special HID drivers
752# 780#
753CONFIG_HID_COMPAT=y
754CONFIG_USB_SUPPORT=y 781CONFIG_USB_SUPPORT=y
755CONFIG_USB_ARCH_HAS_HCD=y 782CONFIG_USB_ARCH_HAS_HCD=y
756CONFIG_USB_ARCH_HAS_OHCI=y 783CONFIG_USB_ARCH_HAS_OHCI=y
@@ -764,7 +791,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
764# 791#
765 792
766# 793#
767# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 794# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
768# 795#
769# CONFIG_USB_GADGET is not set 796# CONFIG_USB_GADGET is not set
770 797
@@ -780,6 +807,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
780# CONFIG_EDAC is not set 807# CONFIG_EDAC is not set
781# CONFIG_RTC_CLASS is not set 808# CONFIG_RTC_CLASS is not set
782# CONFIG_DMADEVICES is not set 809# CONFIG_DMADEVICES is not set
810# CONFIG_AUXDISPLAY is not set
783# CONFIG_UIO is not set 811# CONFIG_UIO is not set
784# CONFIG_STAGING is not set 812# CONFIG_STAGING is not set
785 813
@@ -790,6 +818,7 @@ CONFIG_EXT2_FS=y
790# CONFIG_EXT2_FS_XATTR is not set 818# CONFIG_EXT2_FS_XATTR is not set
791# CONFIG_EXT2_FS_XIP is not set 819# CONFIG_EXT2_FS_XIP is not set
792CONFIG_EXT3_FS=y 820CONFIG_EXT3_FS=y
821# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
793CONFIG_EXT3_FS_XATTR=y 822CONFIG_EXT3_FS_XATTR=y
794# CONFIG_EXT3_FS_POSIX_ACL is not set 823# CONFIG_EXT3_FS_POSIX_ACL is not set
795# CONFIG_EXT3_FS_SECURITY is not set 824# CONFIG_EXT3_FS_SECURITY is not set
@@ -812,6 +841,11 @@ CONFIG_INOTIFY_USER=y
812# CONFIG_FUSE_FS is not set 841# CONFIG_FUSE_FS is not set
813 842
814# 843#
844# Caches
845#
846# CONFIG_FSCACHE is not set
847
848#
815# CD-ROM/DVD Filesystems 849# CD-ROM/DVD Filesystems
816# 850#
817# CONFIG_ISO9660_FS is not set 851# CONFIG_ISO9660_FS is not set
@@ -854,6 +888,7 @@ CONFIG_MISC_FILESYSTEMS=y
854# CONFIG_ROMFS_FS is not set 888# CONFIG_ROMFS_FS is not set
855# CONFIG_SYSV_FS is not set 889# CONFIG_SYSV_FS is not set
856# CONFIG_UFS_FS is not set 890# CONFIG_UFS_FS is not set
891# CONFIG_NILFS2_FS is not set
857CONFIG_NETWORK_FILESYSTEMS=y 892CONFIG_NETWORK_FILESYSTEMS=y
858CONFIG_NFS_FS=y 893CONFIG_NFS_FS=y
859# CONFIG_NFS_V3 is not set 894# CONFIG_NFS_V3 is not set
@@ -863,7 +898,6 @@ CONFIG_ROOT_NFS=y
863CONFIG_LOCKD=y 898CONFIG_LOCKD=y
864CONFIG_NFS_COMMON=y 899CONFIG_NFS_COMMON=y
865CONFIG_SUNRPC=y 900CONFIG_SUNRPC=y
866# CONFIG_SUNRPC_REGISTER_V4 is not set
867# CONFIG_RPCSEC_GSS_KRB5 is not set 901# CONFIG_RPCSEC_GSS_KRB5 is not set
868# CONFIG_RPCSEC_GSS_SPKM3 is not set 902# CONFIG_RPCSEC_GSS_SPKM3 is not set
869# CONFIG_SMB_FS is not set 903# CONFIG_SMB_FS is not set
@@ -891,6 +925,7 @@ CONFIG_PARTITION_ADVANCED=y
891# CONFIG_SYSV68_PARTITION is not set 925# CONFIG_SYSV68_PARTITION is not set
892# CONFIG_NLS is not set 926# CONFIG_NLS is not set
893# CONFIG_DLM is not set 927# CONFIG_DLM is not set
928# CONFIG_BINARY_PRINTF is not set
894 929
895# 930#
896# Library routines 931# Library routines
@@ -904,11 +939,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
904CONFIG_CRC32=y 939CONFIG_CRC32=y
905# CONFIG_CRC7 is not set 940# CONFIG_CRC7 is not set
906# CONFIG_LIBCRC32C is not set 941# CONFIG_LIBCRC32C is not set
907CONFIG_PLIST=y 942CONFIG_ZLIB_INFLATE=y
943CONFIG_DECOMPRESS_GZIP=y
908CONFIG_HAS_IOMEM=y 944CONFIG_HAS_IOMEM=y
909CONFIG_HAS_IOPORT=y 945CONFIG_HAS_IOPORT=y
910CONFIG_HAS_DMA=y 946CONFIG_HAS_DMA=y
911CONFIG_HAVE_LMB=y 947CONFIG_HAVE_LMB=y
948CONFIG_NLATTR=y
912 949
913# 950#
914# Kernel hacking 951# Kernel hacking
@@ -926,6 +963,9 @@ CONFIG_DEBUG_KERNEL=y
926CONFIG_DETECT_SOFTLOCKUP=y 963CONFIG_DETECT_SOFTLOCKUP=y
927# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 964# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
928CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 965CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
966CONFIG_DETECT_HUNG_TASK=y
967# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
968CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
929CONFIG_SCHED_DEBUG=y 969CONFIG_SCHED_DEBUG=y
930# CONFIG_SCHEDSTATS is not set 970# CONFIG_SCHEDSTATS is not set
931# CONFIG_TIMER_STATS is not set 971# CONFIG_TIMER_STATS is not set
@@ -955,9 +995,12 @@ CONFIG_DEBUG_MUTEXES=y
955# CONFIG_FAULT_INJECTION is not set 995# CONFIG_FAULT_INJECTION is not set
956# CONFIG_LATENCYTOP is not set 996# CONFIG_LATENCYTOP is not set
957CONFIG_SYSCTL_SYSCALL_CHECK=y 997CONFIG_SYSCTL_SYSCALL_CHECK=y
998# CONFIG_DEBUG_PAGEALLOC is not set
958CONFIG_HAVE_FUNCTION_TRACER=y 999CONFIG_HAVE_FUNCTION_TRACER=y
1000CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y 1001CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1002CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1003CONFIG_TRACING_SUPPORT=y
961 1004
962# 1005#
963# Tracers 1006# Tracers
@@ -965,17 +1008,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
965# CONFIG_FUNCTION_TRACER is not set 1008# CONFIG_FUNCTION_TRACER is not set
966# CONFIG_SCHED_TRACER is not set 1009# CONFIG_SCHED_TRACER is not set
967# CONFIG_CONTEXT_SWITCH_TRACER is not set 1010# CONFIG_CONTEXT_SWITCH_TRACER is not set
1011# CONFIG_EVENT_TRACER is not set
968# CONFIG_BOOT_TRACER is not set 1012# CONFIG_BOOT_TRACER is not set
969# CONFIG_TRACE_BRANCH_PROFILING is not set 1013# CONFIG_TRACE_BRANCH_PROFILING is not set
970# CONFIG_STACK_TRACER is not set 1014# CONFIG_STACK_TRACER is not set
971# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1015# CONFIG_KMEMTRACE is not set
1016# CONFIG_WORKQUEUE_TRACER is not set
1017# CONFIG_BLK_DEV_IO_TRACE is not set
972# CONFIG_SAMPLES is not set 1018# CONFIG_SAMPLES is not set
973CONFIG_HAVE_ARCH_KGDB=y 1019CONFIG_HAVE_ARCH_KGDB=y
974# CONFIG_KGDB is not set 1020# CONFIG_KGDB is not set
975CONFIG_PRINT_STACK_DEPTH=64 1021CONFIG_PRINT_STACK_DEPTH=64
976# CONFIG_DEBUG_STACKOVERFLOW is not set 1022# CONFIG_DEBUG_STACKOVERFLOW is not set
977# CONFIG_DEBUG_STACK_USAGE is not set 1023# CONFIG_DEBUG_STACK_USAGE is not set
978# CONFIG_DEBUG_PAGEALLOC is not set
979# CONFIG_CODE_PATCHING_SELFTEST is not set 1024# CONFIG_CODE_PATCHING_SELFTEST is not set
980# CONFIG_FTR_FIXUP_SELFTEST is not set 1025# CONFIG_FTR_FIXUP_SELFTEST is not set
981# CONFIG_MSI_BITMAP_SELFTEST is not set 1026# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1068,6 +1113,7 @@ CONFIG_CRYPTO=y
1068# Compression 1113# Compression
1069# 1114#
1070# CONFIG_CRYPTO_DEFLATE is not set 1115# CONFIG_CRYPTO_DEFLATE is not set
1116# CONFIG_CRYPTO_ZLIB is not set
1071# CONFIG_CRYPTO_LZO is not set 1117# CONFIG_CRYPTO_LZO is not set
1072 1118
1073# 1119#
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index e68e80987aa9..6c36c9c7abfd 100644
--- a/arch/powerpc/configs/85xx/sbc8548_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8548_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:15 2009 4# Wed May 13 17:22:19 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,20 +100,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_EXTRA_PASS is not set 112# CONFIG_KALLSYMS_EXTRA_PASS is not set
113# CONFIG_STRIP_ASM_SYMS is not set
98CONFIG_HOTPLUG=y 114CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 115CONFIG_PRINTK=y
100CONFIG_BUG=y 116CONFIG_BUG=y
101CONFIG_ELF_CORE=y 117CONFIG_ELF_CORE=y
102CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 118CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 119CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106CONFIG_EPOLL=y 120CONFIG_EPOLL=y
107CONFIG_SIGNALFD=y 121CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 122CONFIG_TIMERFD=y
@@ -111,16 +125,19 @@ CONFIG_SHMEM=y
111CONFIG_AIO=y 125CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 126CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 127CONFIG_PCI_QUIRKS=y
128CONFIG_COMPAT_BRK=y
114CONFIG_SLAB=y 129CONFIG_SLAB=y
115# CONFIG_SLUB is not set 130# CONFIG_SLUB is not set
116# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
133# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 135CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 136CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 137CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 138CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 139CONFIG_HAVE_ARCH_TRACEHOOK=y
140# CONFIG_SLOW_WORK is not set
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 141# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 142CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 143CONFIG_RT_MUTEXES=y
@@ -128,7 +145,6 @@ CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 145# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 146CONFIG_BLOCK=y
130# CONFIG_LBD is not set 147# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set 149# CONFIG_BLK_DEV_INTEGRITY is not set
134 150
@@ -144,11 +160,6 @@ CONFIG_DEFAULT_AS=y
144# CONFIG_DEFAULT_CFQ is not set 160# CONFIG_DEFAULT_CFQ is not set
145# CONFIG_DEFAULT_NOOP is not set 161# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
152# CONFIG_FREEZER is not set 163# CONFIG_FREEZER is not set
153 164
154# 165#
@@ -164,6 +175,7 @@ CONFIG_MPC85xx=y
164# CONFIG_MPC85xx_MDS is not set 175# CONFIG_MPC85xx_MDS is not set
165# CONFIG_MPC8536_DS is not set 176# CONFIG_MPC8536_DS is not set
166# CONFIG_MPC85xx_DS is not set 177# CONFIG_MPC85xx_DS is not set
178# CONFIG_SOCRATES is not set
167# CONFIG_KSI8560 is not set 179# CONFIG_KSI8560 is not set
168# CONFIG_STX_GP3 is not set 180# CONFIG_STX_GP3 is not set
169# CONFIG_TQM8540 is not set 181# CONFIG_TQM8540 is not set
@@ -231,9 +243,12 @@ CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_HAVE_MLOCK=y
247CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234CONFIG_PPC_4K_PAGES=y 248CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set 249# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set 250# CONFIG_PPC_64K_PAGES is not set
251# CONFIG_PPC_256K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
@@ -258,6 +273,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
258# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
259# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
260# CONFIG_PCI_STUB is not set 275# CONFIG_PCI_STUB is not set
276# CONFIG_PCI_IOV is not set
261# CONFIG_PCCARD is not set 277# CONFIG_PCCARD is not set
262# CONFIG_HOTPLUG_PCI is not set 278# CONFIG_HOTPLUG_PCI is not set
263# CONFIG_HAS_RAPIDIO is not set 279# CONFIG_HAS_RAPIDIO is not set
@@ -271,17 +287,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
271# Default settings for advanced configuration options are used 287# Default settings for advanced configuration options are used
272# 288#
273CONFIG_LOWMEM_SIZE=0x30000000 289CONFIG_LOWMEM_SIZE=0x30000000
290CONFIG_LOWMEM_CAM_NUM=3
274CONFIG_PAGE_OFFSET=0xc0000000 291CONFIG_PAGE_OFFSET=0xc0000000
275CONFIG_KERNEL_START=0xc0000000 292CONFIG_KERNEL_START=0xc0000000
276CONFIG_PHYSICAL_START=0x00000000 293CONFIG_PHYSICAL_START=0x00000000
277CONFIG_PHYSICAL_ALIGN=0x10000000 294CONFIG_PHYSICAL_ALIGN=0x04000000
278CONFIG_TASK_SIZE=0xc0000000 295CONFIG_TASK_SIZE=0xc0000000
279CONFIG_NET=y 296CONFIG_NET=y
280 297
281# 298#
282# Networking options 299# Networking options
283# 300#
284CONFIG_COMPAT_NET_DEV_OPS=y
285CONFIG_PACKET=y 301CONFIG_PACKET=y
286# CONFIG_PACKET_MMAP is not set 302# CONFIG_PACKET_MMAP is not set
287CONFIG_UNIX=y 303CONFIG_UNIX=y
@@ -337,6 +353,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
337# CONFIG_LAPB is not set 353# CONFIG_LAPB is not set
338# CONFIG_ECONET is not set 354# CONFIG_ECONET is not set
339# CONFIG_WAN_ROUTER is not set 355# CONFIG_WAN_ROUTER is not set
356# CONFIG_PHONET is not set
340# CONFIG_NET_SCHED is not set 357# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set 358# CONFIG_DCB is not set
342 359
@@ -349,7 +366,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
349# CONFIG_IRDA is not set 366# CONFIG_IRDA is not set
350# CONFIG_BT is not set 367# CONFIG_BT is not set
351# CONFIG_AF_RXRPC is not set 368# CONFIG_AF_RXRPC is not set
352# CONFIG_PHONET is not set
353CONFIG_WIRELESS=y 369CONFIG_WIRELESS=y
354# CONFIG_CFG80211 is not set 370# CONFIG_CFG80211 is not set
355CONFIG_WIRELESS_OLD_REGULATORY=y 371CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -396,12 +412,16 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
396# CONFIG_BLK_DEV_HD is not set 412# CONFIG_BLK_DEV_HD is not set
397CONFIG_MISC_DEVICES=y 413CONFIG_MISC_DEVICES=y
398# CONFIG_PHANTOM is not set 414# CONFIG_PHANTOM is not set
399# CONFIG_EEPROM_93CX6 is not set
400# CONFIG_SGI_IOC4 is not set 415# CONFIG_SGI_IOC4 is not set
401# CONFIG_TIFM_CORE is not set 416# CONFIG_TIFM_CORE is not set
402# CONFIG_ENCLOSURE_SERVICES is not set 417# CONFIG_ENCLOSURE_SERVICES is not set
403# CONFIG_HP_ILO is not set 418# CONFIG_HP_ILO is not set
404# CONFIG_C2PORT is not set 419# CONFIG_C2PORT is not set
420
421#
422# EEPROM support
423#
424# CONFIG_EEPROM_93CX6 is not set
405CONFIG_HAVE_IDE=y 425CONFIG_HAVE_IDE=y
406# CONFIG_IDE is not set 426# CONFIG_IDE is not set
407 427
@@ -428,6 +448,7 @@ CONFIG_HAVE_IDE=y
428# CONFIG_I2O is not set 448# CONFIG_I2O is not set
429# CONFIG_MACINTOSH_DRIVERS is not set 449# CONFIG_MACINTOSH_DRIVERS is not set
430CONFIG_NETDEVICES=y 450CONFIG_NETDEVICES=y
451CONFIG_COMPAT_NET_DEV_OPS=y
431# CONFIG_DUMMY is not set 452# CONFIG_DUMMY is not set
432# CONFIG_BONDING is not set 453# CONFIG_BONDING is not set
433# CONFIG_MACVLAN is not set 454# CONFIG_MACVLAN is not set
@@ -461,6 +482,8 @@ CONFIG_MII=y
461# CONFIG_SUNGEM is not set 482# CONFIG_SUNGEM is not set
462# CONFIG_CASSINI is not set 483# CONFIG_CASSINI is not set
463# CONFIG_NET_VENDOR_3COM is not set 484# CONFIG_NET_VENDOR_3COM is not set
485# CONFIG_ETHOC is not set
486# CONFIG_DNET is not set
464# CONFIG_NET_TULIP is not set 487# CONFIG_NET_TULIP is not set
465# CONFIG_HP100 is not set 488# CONFIG_HP100 is not set
466# CONFIG_IBM_NEW_EMAC_ZMII is not set 489# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -480,6 +503,7 @@ CONFIG_NETDEV_1000=y
480# CONFIG_E1000E is not set 503# CONFIG_E1000E is not set
481# CONFIG_IP1000 is not set 504# CONFIG_IP1000 is not set
482# CONFIG_IGB is not set 505# CONFIG_IGB is not set
506# CONFIG_IGBVF is not set
483# CONFIG_NS83820 is not set 507# CONFIG_NS83820 is not set
484# CONFIG_HAMACHI is not set 508# CONFIG_HAMACHI is not set
485# CONFIG_YELLOWFIN is not set 509# CONFIG_YELLOWFIN is not set
@@ -490,10 +514,12 @@ CONFIG_NETDEV_1000=y
490# CONFIG_VIA_VELOCITY is not set 514# CONFIG_VIA_VELOCITY is not set
491# CONFIG_TIGON3 is not set 515# CONFIG_TIGON3 is not set
492# CONFIG_BNX2 is not set 516# CONFIG_BNX2 is not set
517CONFIG_FSL_PQ_MDIO=y
493CONFIG_GIANFAR=y 518CONFIG_GIANFAR=y
494# CONFIG_QLA3XXX is not set 519# CONFIG_QLA3XXX is not set
495# CONFIG_ATL1 is not set 520# CONFIG_ATL1 is not set
496# CONFIG_ATL1E is not set 521# CONFIG_ATL1E is not set
522# CONFIG_ATL1C is not set
497# CONFIG_JME is not set 523# CONFIG_JME is not set
498CONFIG_NETDEV_10000=y 524CONFIG_NETDEV_10000=y
499# CONFIG_CHELSIO_T1 is not set 525# CONFIG_CHELSIO_T1 is not set
@@ -503,6 +529,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
503# CONFIG_IXGBE is not set 529# CONFIG_IXGBE is not set
504# CONFIG_IXGB is not set 530# CONFIG_IXGB is not set
505# CONFIG_S2IO is not set 531# CONFIG_S2IO is not set
532# CONFIG_VXGE is not set
506# CONFIG_MYRI10GE is not set 533# CONFIG_MYRI10GE is not set
507# CONFIG_NETXEN_NIC is not set 534# CONFIG_NETXEN_NIC is not set
508# CONFIG_NIU is not set 535# CONFIG_NIU is not set
@@ -512,6 +539,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
512# CONFIG_BNX2X is not set 539# CONFIG_BNX2X is not set
513# CONFIG_QLGE is not set 540# CONFIG_QLGE is not set
514# CONFIG_SFC is not set 541# CONFIG_SFC is not set
542# CONFIG_BE2NET is not set
515# CONFIG_TR is not set 543# CONFIG_TR is not set
516 544
517# 545#
@@ -519,7 +547,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
519# 547#
520# CONFIG_WLAN_PRE80211 is not set 548# CONFIG_WLAN_PRE80211 is not set
521# CONFIG_WLAN_80211 is not set 549# CONFIG_WLAN_80211 is not set
522# CONFIG_IWLWIFI_LEDS is not set
523 550
524# 551#
525# Enable WiMAX (Networking options) to see the WiMAX drivers 552# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -692,6 +719,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
692# CONFIG_EDAC is not set 719# CONFIG_EDAC is not set
693# CONFIG_RTC_CLASS is not set 720# CONFIG_RTC_CLASS is not set
694# CONFIG_DMADEVICES is not set 721# CONFIG_DMADEVICES is not set
722# CONFIG_AUXDISPLAY is not set
695# CONFIG_UIO is not set 723# CONFIG_UIO is not set
696# CONFIG_STAGING is not set 724# CONFIG_STAGING is not set
697 725
@@ -717,6 +745,11 @@ CONFIG_INOTIFY_USER=y
717# CONFIG_FUSE_FS is not set 745# CONFIG_FUSE_FS is not set
718 746
719# 747#
748# Caches
749#
750# CONFIG_FSCACHE is not set
751
752#
720# CD-ROM/DVD Filesystems 753# CD-ROM/DVD Filesystems
721# 754#
722# CONFIG_ISO9660_FS is not set 755# CONFIG_ISO9660_FS is not set
@@ -759,6 +792,7 @@ CONFIG_MISC_FILESYSTEMS=y
759# CONFIG_ROMFS_FS is not set 792# CONFIG_ROMFS_FS is not set
760# CONFIG_SYSV_FS is not set 793# CONFIG_SYSV_FS is not set
761# CONFIG_UFS_FS is not set 794# CONFIG_UFS_FS is not set
795# CONFIG_NILFS2_FS is not set
762CONFIG_NETWORK_FILESYSTEMS=y 796CONFIG_NETWORK_FILESYSTEMS=y
763CONFIG_NFS_FS=y 797CONFIG_NFS_FS=y
764# CONFIG_NFS_V3 is not set 798# CONFIG_NFS_V3 is not set
@@ -768,7 +802,6 @@ CONFIG_ROOT_NFS=y
768CONFIG_LOCKD=y 802CONFIG_LOCKD=y
769CONFIG_NFS_COMMON=y 803CONFIG_NFS_COMMON=y
770CONFIG_SUNRPC=y 804CONFIG_SUNRPC=y
771# CONFIG_SUNRPC_REGISTER_V4 is not set
772# CONFIG_RPCSEC_GSS_KRB5 is not set 805# CONFIG_RPCSEC_GSS_KRB5 is not set
773# CONFIG_RPCSEC_GSS_SPKM3 is not set 806# CONFIG_RPCSEC_GSS_SPKM3 is not set
774# CONFIG_SMB_FS is not set 807# CONFIG_SMB_FS is not set
@@ -784,6 +817,7 @@ CONFIG_SUNRPC=y
784CONFIG_MSDOS_PARTITION=y 817CONFIG_MSDOS_PARTITION=y
785# CONFIG_NLS is not set 818# CONFIG_NLS is not set
786# CONFIG_DLM is not set 819# CONFIG_DLM is not set
820# CONFIG_BINARY_PRINTF is not set
787 821
788# 822#
789# Library routines 823# Library routines
@@ -797,11 +831,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
797CONFIG_CRC32=y 831CONFIG_CRC32=y
798# CONFIG_CRC7 is not set 832# CONFIG_CRC7 is not set
799# CONFIG_LIBCRC32C is not set 833# CONFIG_LIBCRC32C is not set
800CONFIG_PLIST=y 834CONFIG_ZLIB_INFLATE=y
835CONFIG_DECOMPRESS_GZIP=y
801CONFIG_HAS_IOMEM=y 836CONFIG_HAS_IOMEM=y
802CONFIG_HAS_IOPORT=y 837CONFIG_HAS_IOPORT=y
803CONFIG_HAS_DMA=y 838CONFIG_HAS_DMA=y
804CONFIG_HAVE_LMB=y 839CONFIG_HAVE_LMB=y
840CONFIG_NLATTR=y
805 841
806# 842#
807# Kernel hacking 843# Kernel hacking
@@ -821,13 +857,24 @@ CONFIG_FRAME_WARN=1024
821# CONFIG_LATENCYTOP is not set 857# CONFIG_LATENCYTOP is not set
822CONFIG_SYSCTL_SYSCALL_CHECK=y 858CONFIG_SYSCTL_SYSCALL_CHECK=y
823CONFIG_HAVE_FUNCTION_TRACER=y 859CONFIG_HAVE_FUNCTION_TRACER=y
860CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
824CONFIG_HAVE_DYNAMIC_FTRACE=y 861CONFIG_HAVE_DYNAMIC_FTRACE=y
825CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 862CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
863CONFIG_TRACING_SUPPORT=y
826 864
827# 865#
828# Tracers 866# Tracers
829# 867#
830# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 868# CONFIG_FUNCTION_TRACER is not set
869# CONFIG_SCHED_TRACER is not set
870# CONFIG_CONTEXT_SWITCH_TRACER is not set
871# CONFIG_EVENT_TRACER is not set
872# CONFIG_BOOT_TRACER is not set
873# CONFIG_TRACE_BRANCH_PROFILING is not set
874# CONFIG_STACK_TRACER is not set
875# CONFIG_KMEMTRACE is not set
876# CONFIG_WORKQUEUE_TRACER is not set
877# CONFIG_BLK_DEV_IO_TRACE is not set
831# CONFIG_SAMPLES is not set 878# CONFIG_SAMPLES is not set
832CONFIG_HAVE_ARCH_KGDB=y 879CONFIG_HAVE_ARCH_KGDB=y
833CONFIG_PRINT_STACK_DEPTH=64 880CONFIG_PRINT_STACK_DEPTH=64
@@ -918,6 +965,7 @@ CONFIG_CRYPTO=y
918# Compression 965# Compression
919# 966#
920# CONFIG_CRYPTO_DEFLATE is not set 967# CONFIG_CRYPTO_DEFLATE is not set
968# CONFIG_CRYPTO_ZLIB is not set
921# CONFIG_CRYPTO_LZO is not set 969# CONFIG_CRYPTO_LZO is not set
922 970
923# 971#
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index b1c766ef7e2e..4aaf1a6bdc7d 100644
--- a/arch/powerpc/configs/85xx/sbc8560_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8560_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:17 2009 4# Wed May 13 17:22:20 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,21 +100,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set 112# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 113# CONFIG_KALLSYMS_EXTRA_PASS is not set
114# CONFIG_STRIP_ASM_SYMS is not set
99CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 116CONFIG_PRINTK=y
101CONFIG_BUG=y 117CONFIG_BUG=y
102CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
103CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 120CONFIG_FUTEX=y
106CONFIG_ANON_INODES=y
107CONFIG_EPOLL=y 121CONFIG_EPOLL=y
108CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
@@ -111,16 +125,19 @@ CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 125CONFIG_SHMEM=y
112CONFIG_AIO=y 126CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 127CONFIG_VM_EVENT_COUNTERS=y
128CONFIG_COMPAT_BRK=y
114CONFIG_SLAB=y 129CONFIG_SLAB=y
115# CONFIG_SLUB is not set 130# CONFIG_SLUB is not set
116# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
133# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 135CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 136CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 137CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 138CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 139CONFIG_HAVE_ARCH_TRACEHOOK=y
140# CONFIG_SLOW_WORK is not set
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 141# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 142CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 143CONFIG_RT_MUTEXES=y
@@ -128,7 +145,6 @@ CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 145# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 146CONFIG_BLOCK=y
130# CONFIG_LBD is not set 147# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set 149# CONFIG_BLK_DEV_INTEGRITY is not set
134 150
@@ -144,11 +160,6 @@ CONFIG_DEFAULT_AS=y
144# CONFIG_DEFAULT_CFQ is not set 160# CONFIG_DEFAULT_CFQ is not set
145# CONFIG_DEFAULT_NOOP is not set 161# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
152# CONFIG_FREEZER is not set 163# CONFIG_FREEZER is not set
153 164
154# 165#
@@ -164,6 +175,7 @@ CONFIG_MPC85xx=y
164# CONFIG_MPC85xx_MDS is not set 175# CONFIG_MPC85xx_MDS is not set
165# CONFIG_MPC8536_DS is not set 176# CONFIG_MPC8536_DS is not set
166# CONFIG_MPC85xx_DS is not set 177# CONFIG_MPC85xx_DS is not set
178# CONFIG_SOCRATES is not set
167# CONFIG_KSI8560 is not set 179# CONFIG_KSI8560 is not set
168# CONFIG_STX_GP3 is not set 180# CONFIG_STX_GP3 is not set
169# CONFIG_TQM8540 is not set 181# CONFIG_TQM8540 is not set
@@ -231,9 +243,12 @@ CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_HAVE_MLOCK=y
247CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234CONFIG_PPC_4K_PAGES=y 248CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set 249# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set 250# CONFIG_PPC_64K_PAGES is not set
251# CONFIG_PPC_256K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
@@ -264,17 +279,17 @@ CONFIG_PPC_PCI_CHOICE=y
264# Default settings for advanced configuration options are used 279# Default settings for advanced configuration options are used
265# 280#
266CONFIG_LOWMEM_SIZE=0x30000000 281CONFIG_LOWMEM_SIZE=0x30000000
282CONFIG_LOWMEM_CAM_NUM=3
267CONFIG_PAGE_OFFSET=0xc0000000 283CONFIG_PAGE_OFFSET=0xc0000000
268CONFIG_KERNEL_START=0xc0000000 284CONFIG_KERNEL_START=0xc0000000
269CONFIG_PHYSICAL_START=0x00000000 285CONFIG_PHYSICAL_START=0x00000000
270CONFIG_PHYSICAL_ALIGN=0x10000000 286CONFIG_PHYSICAL_ALIGN=0x04000000
271CONFIG_TASK_SIZE=0xc0000000 287CONFIG_TASK_SIZE=0xc0000000
272CONFIG_NET=y 288CONFIG_NET=y
273 289
274# 290#
275# Networking options 291# Networking options
276# 292#
277CONFIG_COMPAT_NET_DEV_OPS=y
278CONFIG_PACKET=y 293CONFIG_PACKET=y
279# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
280CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -330,6 +345,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_LAPB is not set 345# CONFIG_LAPB is not set
331# CONFIG_ECONET is not set 346# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set 347# CONFIG_WAN_ROUTER is not set
348# CONFIG_PHONET is not set
333# CONFIG_NET_SCHED is not set 349# CONFIG_NET_SCHED is not set
334# CONFIG_DCB is not set 350# CONFIG_DCB is not set
335 351
@@ -342,7 +358,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_IRDA is not set 358# CONFIG_IRDA is not set
343# CONFIG_BT is not set 359# CONFIG_BT is not set
344# CONFIG_AF_RXRPC is not set 360# CONFIG_AF_RXRPC is not set
345# CONFIG_PHONET is not set
346CONFIG_WIRELESS=y 361CONFIG_WIRELESS=y
347# CONFIG_CFG80211 is not set 362# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y 363CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -385,9 +400,13 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
385# CONFIG_ATA_OVER_ETH is not set 400# CONFIG_ATA_OVER_ETH is not set
386# CONFIG_BLK_DEV_HD is not set 401# CONFIG_BLK_DEV_HD is not set
387CONFIG_MISC_DEVICES=y 402CONFIG_MISC_DEVICES=y
388# CONFIG_EEPROM_93CX6 is not set
389# CONFIG_ENCLOSURE_SERVICES is not set 403# CONFIG_ENCLOSURE_SERVICES is not set
390# CONFIG_C2PORT is not set 404# CONFIG_C2PORT is not set
405
406#
407# EEPROM support
408#
409# CONFIG_EEPROM_93CX6 is not set
391CONFIG_HAVE_IDE=y 410CONFIG_HAVE_IDE=y
392# CONFIG_IDE is not set 411# CONFIG_IDE is not set
393 412
@@ -402,6 +421,7 @@ CONFIG_HAVE_IDE=y
402# CONFIG_MD is not set 421# CONFIG_MD is not set
403# CONFIG_MACINTOSH_DRIVERS is not set 422# CONFIG_MACINTOSH_DRIVERS is not set
404CONFIG_NETDEVICES=y 423CONFIG_NETDEVICES=y
424CONFIG_COMPAT_NET_DEV_OPS=y
405# CONFIG_DUMMY is not set 425# CONFIG_DUMMY is not set
406# CONFIG_BONDING is not set 426# CONFIG_BONDING is not set
407# CONFIG_MACVLAN is not set 427# CONFIG_MACVLAN is not set
@@ -430,6 +450,8 @@ CONFIG_BROADCOM_PHY=y
430# CONFIG_MDIO_BITBANG is not set 450# CONFIG_MDIO_BITBANG is not set
431CONFIG_NET_ETHERNET=y 451CONFIG_NET_ETHERNET=y
432CONFIG_MII=y 452CONFIG_MII=y
453# CONFIG_ETHOC is not set
454# CONFIG_DNET is not set
433# CONFIG_IBM_NEW_EMAC_ZMII is not set 455# CONFIG_IBM_NEW_EMAC_ZMII is not set
434# CONFIG_IBM_NEW_EMAC_RGMII is not set 456# CONFIG_IBM_NEW_EMAC_RGMII is not set
435# CONFIG_IBM_NEW_EMAC_TAH is not set 457# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -439,6 +461,7 @@ CONFIG_MII=y
439# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 461# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
440# CONFIG_B44 is not set 462# CONFIG_B44 is not set
441CONFIG_NETDEV_1000=y 463CONFIG_NETDEV_1000=y
464CONFIG_FSL_PQ_MDIO=y
442CONFIG_GIANFAR=y 465CONFIG_GIANFAR=y
443CONFIG_NETDEV_10000=y 466CONFIG_NETDEV_10000=y
444 467
@@ -447,7 +470,6 @@ CONFIG_NETDEV_10000=y
447# 470#
448# CONFIG_WLAN_PRE80211 is not set 471# CONFIG_WLAN_PRE80211 is not set
449# CONFIG_WLAN_80211 is not set 472# CONFIG_WLAN_80211 is not set
450# CONFIG_IWLWIFI_LEDS is not set
451 473
452# 474#
453# Enable WiMAX (Networking options) to see the WiMAX drivers 475# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -603,7 +625,6 @@ CONFIG_HID=y
603# 625#
604# Special HID drivers 626# Special HID drivers
605# 627#
606CONFIG_HID_COMPAT=y
607CONFIG_USB_SUPPORT=y 628CONFIG_USB_SUPPORT=y
608# CONFIG_USB_ARCH_HAS_HCD is not set 629# CONFIG_USB_ARCH_HAS_HCD is not set
609# CONFIG_USB_ARCH_HAS_OHCI is not set 630# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -616,7 +637,7 @@ CONFIG_USB_SUPPORT=y
616# 637#
617 638
618# 639#
619# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 640# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
620# 641#
621# CONFIG_USB_GADGET is not set 642# CONFIG_USB_GADGET is not set
622 643
@@ -665,8 +686,9 @@ CONFIG_RTC_DRV_M48T59=y
665# 686#
666# on-CPU RTC drivers 687# on-CPU RTC drivers
667# 688#
668# CONFIG_RTC_DRV_PPC is not set 689# CONFIG_RTC_DRV_GENERIC is not set
669# CONFIG_DMADEVICES is not set 690# CONFIG_DMADEVICES is not set
691# CONFIG_AUXDISPLAY is not set
670# CONFIG_UIO is not set 692# CONFIG_UIO is not set
671# CONFIG_STAGING is not set 693# CONFIG_STAGING is not set
672 694
@@ -692,6 +714,11 @@ CONFIG_INOTIFY_USER=y
692# CONFIG_FUSE_FS is not set 714# CONFIG_FUSE_FS is not set
693 715
694# 716#
717# Caches
718#
719# CONFIG_FSCACHE is not set
720
721#
695# CD-ROM/DVD Filesystems 722# CD-ROM/DVD Filesystems
696# 723#
697# CONFIG_ISO9660_FS is not set 724# CONFIG_ISO9660_FS is not set
@@ -734,6 +761,7 @@ CONFIG_MISC_FILESYSTEMS=y
734# CONFIG_ROMFS_FS is not set 761# CONFIG_ROMFS_FS is not set
735# CONFIG_SYSV_FS is not set 762# CONFIG_SYSV_FS is not set
736# CONFIG_UFS_FS is not set 763# CONFIG_UFS_FS is not set
764# CONFIG_NILFS2_FS is not set
737CONFIG_NETWORK_FILESYSTEMS=y 765CONFIG_NETWORK_FILESYSTEMS=y
738CONFIG_NFS_FS=y 766CONFIG_NFS_FS=y
739# CONFIG_NFS_V3 is not set 767# CONFIG_NFS_V3 is not set
@@ -743,7 +771,6 @@ CONFIG_ROOT_NFS=y
743CONFIG_LOCKD=y 771CONFIG_LOCKD=y
744CONFIG_NFS_COMMON=y 772CONFIG_NFS_COMMON=y
745CONFIG_SUNRPC=y 773CONFIG_SUNRPC=y
746# CONFIG_SUNRPC_REGISTER_V4 is not set
747# CONFIG_RPCSEC_GSS_KRB5 is not set 774# CONFIG_RPCSEC_GSS_KRB5 is not set
748# CONFIG_RPCSEC_GSS_SPKM3 is not set 775# CONFIG_RPCSEC_GSS_SPKM3 is not set
749# CONFIG_SMB_FS is not set 776# CONFIG_SMB_FS is not set
@@ -771,6 +798,7 @@ CONFIG_PARTITION_ADVANCED=y
771# CONFIG_SYSV68_PARTITION is not set 798# CONFIG_SYSV68_PARTITION is not set
772# CONFIG_NLS is not set 799# CONFIG_NLS is not set
773# CONFIG_DLM is not set 800# CONFIG_DLM is not set
801# CONFIG_BINARY_PRINTF is not set
774 802
775# 803#
776# Library routines 804# Library routines
@@ -784,11 +812,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
784CONFIG_CRC32=y 812CONFIG_CRC32=y
785# CONFIG_CRC7 is not set 813# CONFIG_CRC7 is not set
786# CONFIG_LIBCRC32C is not set 814# CONFIG_LIBCRC32C is not set
787CONFIG_PLIST=y 815CONFIG_ZLIB_INFLATE=y
816CONFIG_DECOMPRESS_GZIP=y
788CONFIG_HAS_IOMEM=y 817CONFIG_HAS_IOMEM=y
789CONFIG_HAS_IOPORT=y 818CONFIG_HAS_IOPORT=y
790CONFIG_HAS_DMA=y 819CONFIG_HAS_DMA=y
791CONFIG_HAVE_LMB=y 820CONFIG_HAVE_LMB=y
821CONFIG_NLATTR=y
792 822
793# 823#
794# Kernel hacking 824# Kernel hacking
@@ -806,6 +836,9 @@ CONFIG_DEBUG_KERNEL=y
806CONFIG_DETECT_SOFTLOCKUP=y 836CONFIG_DETECT_SOFTLOCKUP=y
807# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 837# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
808CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 838CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
839CONFIG_DETECT_HUNG_TASK=y
840# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
841CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
809CONFIG_SCHED_DEBUG=y 842CONFIG_SCHED_DEBUG=y
810# CONFIG_SCHEDSTATS is not set 843# CONFIG_SCHEDSTATS is not set
811# CONFIG_TIMER_STATS is not set 844# CONFIG_TIMER_STATS is not set
@@ -834,9 +867,12 @@ CONFIG_DEBUG_MUTEXES=y
834# CONFIG_FAULT_INJECTION is not set 867# CONFIG_FAULT_INJECTION is not set
835# CONFIG_LATENCYTOP is not set 868# CONFIG_LATENCYTOP is not set
836CONFIG_SYSCTL_SYSCALL_CHECK=y 869CONFIG_SYSCTL_SYSCALL_CHECK=y
870# CONFIG_DEBUG_PAGEALLOC is not set
837CONFIG_HAVE_FUNCTION_TRACER=y 871CONFIG_HAVE_FUNCTION_TRACER=y
872CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
838CONFIG_HAVE_DYNAMIC_FTRACE=y 873CONFIG_HAVE_DYNAMIC_FTRACE=y
839CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 874CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
875CONFIG_TRACING_SUPPORT=y
840 876
841# 877#
842# Tracers 878# Tracers
@@ -844,17 +880,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
844# CONFIG_FUNCTION_TRACER is not set 880# CONFIG_FUNCTION_TRACER is not set
845# CONFIG_SCHED_TRACER is not set 881# CONFIG_SCHED_TRACER is not set
846# CONFIG_CONTEXT_SWITCH_TRACER is not set 882# CONFIG_CONTEXT_SWITCH_TRACER is not set
883# CONFIG_EVENT_TRACER is not set
847# CONFIG_BOOT_TRACER is not set 884# CONFIG_BOOT_TRACER is not set
848# CONFIG_TRACE_BRANCH_PROFILING is not set 885# CONFIG_TRACE_BRANCH_PROFILING is not set
849# CONFIG_STACK_TRACER is not set 886# CONFIG_STACK_TRACER is not set
850# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 887# CONFIG_KMEMTRACE is not set
888# CONFIG_WORKQUEUE_TRACER is not set
889# CONFIG_BLK_DEV_IO_TRACE is not set
851# CONFIG_SAMPLES is not set 890# CONFIG_SAMPLES is not set
852CONFIG_HAVE_ARCH_KGDB=y 891CONFIG_HAVE_ARCH_KGDB=y
853# CONFIG_KGDB is not set 892# CONFIG_KGDB is not set
854CONFIG_PRINT_STACK_DEPTH=64 893CONFIG_PRINT_STACK_DEPTH=64
855# CONFIG_DEBUG_STACKOVERFLOW is not set 894# CONFIG_DEBUG_STACKOVERFLOW is not set
856# CONFIG_DEBUG_STACK_USAGE is not set 895# CONFIG_DEBUG_STACK_USAGE is not set
857# CONFIG_DEBUG_PAGEALLOC is not set
858# CONFIG_CODE_PATCHING_SELFTEST is not set 896# CONFIG_CODE_PATCHING_SELFTEST is not set
859# CONFIG_FTR_FIXUP_SELFTEST is not set 897# CONFIG_FTR_FIXUP_SELFTEST is not set
860# CONFIG_MSI_BITMAP_SELFTEST is not set 898# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -958,6 +996,7 @@ CONFIG_CRYPTO=y
958# Compression 996# Compression
959# 997#
960# CONFIG_CRYPTO_DEFLATE is not set 998# CONFIG_CRYPTO_DEFLATE is not set
999# CONFIG_CRYPTO_ZLIB is not set
961# CONFIG_CRYPTO_LZO is not set 1000# CONFIG_CRYPTO_LZO is not set
962 1001
963# 1002#
diff --git a/arch/powerpc/configs/85xx/socrates_defconfig b/arch/powerpc/configs/85xx/socrates_defconfig
index 0cc9048290a8..79984589db69 100644
--- a/arch/powerpc/configs/85xx/socrates_defconfig
+++ b/arch/powerpc/configs/85xx/socrates_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26.2 3# Linux kernel version: 2.6.30-rc3
4# Sat Oct 18 11:06:13 2008 4# Wed May 13 17:22:21 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,15 +15,19 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
23# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
27# CONFIG_SMP is not set
24CONFIG_PPC32=y 28CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 29CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 30# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 31CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 32CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 33CONFIG_GENERIC_TIME=y
@@ -33,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 37# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 38CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 39CONFIG_STACKTRACE_SUPPORT=y
40CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 41CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 42CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 43CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -43,7 +48,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 48CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
49CONFIG_OF=y 54CONFIG_OF=y
@@ -54,6 +59,7 @@ CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
55# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 64
59# 65#
@@ -71,54 +77,70 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
74# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=16 90CONFIG_LOG_BUF_SHIFT=16
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
78CONFIG_FAIR_GROUP_SCHED=y 92CONFIG_FAIR_GROUP_SCHED=y
79# CONFIG_RT_GROUP_SCHED is not set 93# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 94CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 95# CONFIG_CGROUP_SCHED is not set
96# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 97CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 98CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 99# CONFIG_RELAY is not set
85# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
86CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
87CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
88# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
89CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
90CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 111# CONFIG_KALLSYMS is not set
112# CONFIG_STRIP_ASM_SYMS is not set
94# CONFIG_HOTPLUG is not set 113# CONFIG_HOTPLUG is not set
95CONFIG_PRINTK=y 114CONFIG_PRINTK=y
96CONFIG_BUG=y 115CONFIG_BUG=y
97CONFIG_ELF_CORE=y 116CONFIG_ELF_CORE=y
98CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 117CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 118CONFIG_FUTEX=y
101CONFIG_ANON_INODES=y
102# CONFIG_EPOLL is not set 119# CONFIG_EPOLL is not set
103CONFIG_SIGNALFD=y 120CONFIG_SIGNALFD=y
104CONFIG_TIMERFD=y 121CONFIG_TIMERFD=y
105CONFIG_EVENTFD=y 122CONFIG_EVENTFD=y
106CONFIG_SHMEM=y 123CONFIG_SHMEM=y
124CONFIG_AIO=y
107CONFIG_VM_EVENT_COUNTERS=y 125CONFIG_VM_EVENT_COUNTERS=y
126CONFIG_PCI_QUIRKS=y
108CONFIG_SLUB_DEBUG=y 127CONFIG_SLUB_DEBUG=y
128CONFIG_COMPAT_BRK=y
109# CONFIG_SLAB is not set 129# CONFIG_SLAB is not set
110CONFIG_SLUB=y 130CONFIG_SLUB=y
111# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 133# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
135CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
136CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 137CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 138CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set 139CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_PROC_PAGE_MONITOR=y 140# CONFIG_SLOW_WORK is not set
141# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 142CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 143CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set
122CONFIG_BASE_SMALL=0 144CONFIG_BASE_SMALL=0
123CONFIG_MODULES=y 145CONFIG_MODULES=y
124# CONFIG_MODULE_FORCE_LOAD is not set 146# CONFIG_MODULE_FORCE_LOAD is not set
@@ -126,12 +148,10 @@ CONFIG_MODULE_UNLOAD=y
126CONFIG_MODULE_FORCE_UNLOAD=y 148CONFIG_MODULE_FORCE_UNLOAD=y
127# CONFIG_MODVERSIONS is not set 149# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 150# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set
130CONFIG_BLOCK=y 151CONFIG_BLOCK=y
131# CONFIG_LBD is not set 152# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 153# CONFIG_BLK_DEV_BSG is not set
154# CONFIG_BLK_DEV_INTEGRITY is not set
135 155
136# 156#
137# IO Schedulers 157# IO Schedulers
@@ -145,13 +165,11 @@ CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_CFQ is not set 165# CONFIG_DEFAULT_CFQ is not set
146# CONFIG_DEFAULT_NOOP is not set 166# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 167CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y 168# CONFIG_FREEZER is not set
149 169
150# 170#
151# Platform support 171# Platform support
152# 172#
153# CONFIG_PPC_MPC512x is not set
154# CONFIG_PPC_MPC5121 is not set
155# CONFIG_PPC_CELL is not set 173# CONFIG_PPC_CELL is not set
156# CONFIG_PPC_CELL_NATIVE is not set 174# CONFIG_PPC_CELL_NATIVE is not set
157# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
@@ -160,12 +178,14 @@ CONFIG_MPC85xx=y
160# CONFIG_MPC8560_ADS is not set 178# CONFIG_MPC8560_ADS is not set
161# CONFIG_MPC85xx_CDS is not set 179# CONFIG_MPC85xx_CDS is not set
162# CONFIG_MPC85xx_MDS is not set 180# CONFIG_MPC85xx_MDS is not set
181# CONFIG_MPC8536_DS is not set
163# CONFIG_MPC85xx_DS is not set 182# CONFIG_MPC85xx_DS is not set
164CONFIG_SOCRATES=y 183CONFIG_SOCRATES=y
165# CONFIG_KSI8560 is not set 184# CONFIG_KSI8560 is not set
166# CONFIG_STX_GP3 is not set 185# CONFIG_STX_GP3 is not set
167# CONFIG_TQM8540 is not set 186# CONFIG_TQM8540 is not set
168# CONFIG_TQM8541 is not set 187# CONFIG_TQM8541 is not set
188# CONFIG_TQM8548 is not set
169# CONFIG_TQM8555 is not set 189# CONFIG_TQM8555 is not set
170# CONFIG_TQM8560 is not set 190# CONFIG_TQM8560 is not set
171# CONFIG_SBC8548 is not set 191# CONFIG_SBC8548 is not set
@@ -181,14 +201,16 @@ CONFIG_MPIC=y
181# CONFIG_PPC_INDIRECT_IO is not set 201# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 202# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 203# CONFIG_CPU_FREQ is not set
204# CONFIG_QUICC_ENGINE is not set
184# CONFIG_CPM2 is not set 205# CONFIG_CPM2 is not set
185# CONFIG_FSL_ULI1575 is not set 206# CONFIG_FSL_ULI1575 is not set
207# CONFIG_MPC8xxx_GPIO is not set
208# CONFIG_SIMPLE_GPIO is not set
186 209
187# 210#
188# Kernel options 211# Kernel options
189# 212#
190# CONFIG_HIGHMEM is not set 213# CONFIG_HIGHMEM is not set
191# CONFIG_TICK_ONESHOT is not set
192# CONFIG_NO_HZ is not set 214# CONFIG_NO_HZ is not set
193# CONFIG_HIGH_RES_TIMERS is not set 215# CONFIG_HIGH_RES_TIMERS is not set
194CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 216CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -202,6 +224,8 @@ CONFIG_PREEMPT_NONE=y
202# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
203# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
204CONFIG_BINFMT_ELF=y 226CONFIG_BINFMT_ELF=y
227# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
228# CONFIG_HAVE_AOUT is not set
205# CONFIG_BINFMT_MISC is not set 229# CONFIG_BINFMT_MISC is not set
206CONFIG_MATH_EMULATION=y 230CONFIG_MATH_EMULATION=y
207# CONFIG_IOMMU_HELPER is not set 231# CONFIG_IOMMU_HELPER is not set
@@ -216,17 +240,24 @@ CONFIG_FLATMEM_MANUAL=y
216# CONFIG_SPARSEMEM_MANUAL is not set 240# CONFIG_SPARSEMEM_MANUAL is not set
217CONFIG_FLATMEM=y 241CONFIG_FLATMEM=y
218CONFIG_FLAT_NODE_MEM_MAP=y 242CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_STATIC is not set
220# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
221CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
222CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
223# CONFIG_RESOURCES_64BIT is not set 245CONFIG_MIGRATION=y
246# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 249CONFIG_VIRT_TO_BUS=y
250CONFIG_UNEVICTABLE_LRU=y
251CONFIG_HAVE_MLOCK=y
252CONFIG_HAVE_MLOCKED_PAGE_BIT=y
253CONFIG_PPC_4K_PAGES=y
254# CONFIG_PPC_16K_PAGES is not set
255# CONFIG_PPC_64K_PAGES is not set
256# CONFIG_PPC_256K_PAGES is not set
227CONFIG_FORCE_MAX_ZONEORDER=11 257CONFIG_FORCE_MAX_ZONEORDER=11
228# CONFIG_PROC_DEVICETREE is not set 258# CONFIG_PROC_DEVICETREE is not set
229# CONFIG_CMDLINE_BOOL is not set 259# CONFIG_CMDLINE_BOOL is not set
260CONFIG_EXTRA_TARGETS=""
230# CONFIG_PM is not set 261# CONFIG_PM is not set
231CONFIG_SECCOMP=y 262CONFIG_SECCOMP=y
232CONFIG_ISA_DMA_API=y 263CONFIG_ISA_DMA_API=y
@@ -238,6 +269,7 @@ CONFIG_ZONE_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 269CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 270CONFIG_FSL_SOC=y
240CONFIG_FSL_PCI=y 271CONFIG_FSL_PCI=y
272CONFIG_PPC_PCI_CHOICE=y
241CONFIG_PCI=y 273CONFIG_PCI=y
242CONFIG_PCI_DOMAINS=y 274CONFIG_PCI_DOMAINS=y
243CONFIG_PCI_SYSCALL=y 275CONFIG_PCI_SYSCALL=y
@@ -245,6 +277,8 @@ CONFIG_PCI_SYSCALL=y
245CONFIG_ARCH_SUPPORTS_MSI=y 277CONFIG_ARCH_SUPPORTS_MSI=y
246# CONFIG_PCI_MSI is not set 278# CONFIG_PCI_MSI is not set
247CONFIG_PCI_LEGACY=y 279CONFIG_PCI_LEGACY=y
280# CONFIG_PCI_STUB is not set
281# CONFIG_PCI_IOV is not set
248# CONFIG_HAS_RAPIDIO is not set 282# CONFIG_HAS_RAPIDIO is not set
249 283
250# 284#
@@ -256,15 +290,12 @@ CONFIG_PCI_LEGACY=y
256# Default settings for advanced configuration options are used 290# Default settings for advanced configuration options are used
257# 291#
258CONFIG_LOWMEM_SIZE=0x30000000 292CONFIG_LOWMEM_SIZE=0x30000000
293CONFIG_LOWMEM_CAM_NUM=3
259CONFIG_PAGE_OFFSET=0xc0000000 294CONFIG_PAGE_OFFSET=0xc0000000
260CONFIG_KERNEL_START=0xc0000000 295CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000 296CONFIG_PHYSICAL_START=0x00000000
262CONFIG_PHYSICAL_ALIGN=0x10000000 297CONFIG_PHYSICAL_ALIGN=0x04000000
263CONFIG_TASK_SIZE=0xc0000000 298CONFIG_TASK_SIZE=0xc0000000
264
265#
266# Networking
267#
268CONFIG_NET=y 299CONFIG_NET=y
269 300
270# 301#
@@ -315,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
315# CONFIG_TIPC is not set 346# CONFIG_TIPC is not set
316# CONFIG_ATM is not set 347# CONFIG_ATM is not set
317# CONFIG_BRIDGE is not set 348# CONFIG_BRIDGE is not set
349# CONFIG_NET_DSA is not set
318# CONFIG_VLAN_8021Q is not set 350# CONFIG_VLAN_8021Q is not set
319# CONFIG_DECNET is not set 351# CONFIG_DECNET is not set
320# CONFIG_LLC2 is not set 352# CONFIG_LLC2 is not set
@@ -324,7 +356,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_LAPB is not set 356# CONFIG_LAPB is not set
325# CONFIG_ECONET is not set 357# CONFIG_ECONET is not set
326# CONFIG_WAN_ROUTER is not set 358# CONFIG_WAN_ROUTER is not set
359# CONFIG_PHONET is not set
327# CONFIG_NET_SCHED is not set 360# CONFIG_NET_SCHED is not set
361# CONFIG_DCB is not set
328 362
329# 363#
330# Network testing 364# Network testing
@@ -339,27 +373,17 @@ CONFIG_CAN_BCM=y
339# CAN Device Drivers 373# CAN Device Drivers
340# 374#
341# CONFIG_CAN_VCAN is not set 375# CONFIG_CAN_VCAN is not set
342# CONFIG_CAN_OLD_DRIVERS is not set
343# CONFIG_CAN_SLCAN is not set
344CONFIG_CAN_SJA1000=y
345CONFIG_CAN_SJA1000_MEM_OF=y
346# CONFIG_CAN_EMS_PCI is not set
347# CONFIG_CAN_IXXAT_PCI is not set
348# CONFIG_CAN_PEAK_PCI is not set
349# CONFIG_CAN_KVASER_PCI is not set
350# CONFIG_CAN_MSCAN is not set
351# CONFIG_CAN_DEBUG_DEVICES is not set 376# CONFIG_CAN_DEBUG_DEVICES is not set
352# CONFIG_IRDA is not set 377# CONFIG_IRDA is not set
353# CONFIG_BT is not set 378# CONFIG_BT is not set
354# CONFIG_AF_RXRPC is not set 379# CONFIG_AF_RXRPC is not set
355 380CONFIG_WIRELESS=y
356#
357# Wireless
358#
359# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
382# CONFIG_WIRELESS_OLD_REGULATORY is not set
360# CONFIG_WIRELESS_EXT is not set 383# CONFIG_WIRELESS_EXT is not set
384# CONFIG_LIB80211 is not set
361# CONFIG_MAC80211 is not set 385# CONFIG_MAC80211 is not set
362# CONFIG_IEEE80211 is not set 386# CONFIG_WIMAX is not set
363# CONFIG_RFKILL is not set 387# CONFIG_RFKILL is not set
364# CONFIG_NET_9P is not set 388# CONFIG_NET_9P is not set
365 389
@@ -378,6 +402,7 @@ CONFIG_MTD=y
378# CONFIG_MTD_DEBUG is not set 402# CONFIG_MTD_DEBUG is not set
379CONFIG_MTD_CONCAT=y 403CONFIG_MTD_CONCAT=y
380CONFIG_MTD_PARTITIONS=y 404CONFIG_MTD_PARTITIONS=y
405# CONFIG_MTD_TESTS is not set
381# CONFIG_MTD_REDBOOT_PARTS is not set 406# CONFIG_MTD_REDBOOT_PARTS is not set
382CONFIG_MTD_CMDLINE_PARTS=y 407CONFIG_MTD_CMDLINE_PARTS=y
383CONFIG_MTD_OF_PARTS=y 408CONFIG_MTD_OF_PARTS=y
@@ -458,15 +483,22 @@ CONFIG_MTD_NAND_IDS=y
458# CONFIG_MTD_NAND_PLATFORM is not set 483# CONFIG_MTD_NAND_PLATFORM is not set
459# CONFIG_MTD_ALAUDA is not set 484# CONFIG_MTD_ALAUDA is not set
460# CONFIG_MTD_NAND_FSL_ELBC is not set 485# CONFIG_MTD_NAND_FSL_ELBC is not set
486# CONFIG_MTD_NAND_FSL_UPM is not set
461CONFIG_MTD_NAND_SOCRATES=y 487CONFIG_MTD_NAND_SOCRATES=y
462# CONFIG_MTD_ONENAND is not set 488# CONFIG_MTD_ONENAND is not set
463 489
464# 490#
491# LPDDR flash memory drivers
492#
493# CONFIG_MTD_LPDDR is not set
494
495#
465# UBI - Unsorted block images 496# UBI - Unsorted block images
466# 497#
467# CONFIG_MTD_UBI is not set 498# CONFIG_MTD_UBI is not set
468CONFIG_OF_DEVICE=y 499CONFIG_OF_DEVICE=y
469CONFIG_OF_I2C=y 500CONFIG_OF_I2C=y
501CONFIG_OF_SPI=y
470# CONFIG_PARPORT is not set 502# CONFIG_PARPORT is not set
471CONFIG_BLK_DEV=y 503CONFIG_BLK_DEV=y
472# CONFIG_BLK_DEV_FD is not set 504# CONFIG_BLK_DEV_FD is not set
@@ -486,12 +518,24 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
486# CONFIG_BLK_DEV_XIP is not set 518# CONFIG_BLK_DEV_XIP is not set
487# CONFIG_CDROM_PKTCDVD is not set 519# CONFIG_CDROM_PKTCDVD is not set
488# CONFIG_ATA_OVER_ETH is not set 520# CONFIG_ATA_OVER_ETH is not set
521# CONFIG_BLK_DEV_HD is not set
489CONFIG_MISC_DEVICES=y 522CONFIG_MISC_DEVICES=y
490# CONFIG_PHANTOM is not set 523# CONFIG_PHANTOM is not set
491# CONFIG_EEPROM_93CX6 is not set
492# CONFIG_SGI_IOC4 is not set 524# CONFIG_SGI_IOC4 is not set
493# CONFIG_TIFM_CORE is not set 525# CONFIG_TIFM_CORE is not set
526# CONFIG_ICS932S401 is not set
494# CONFIG_ENCLOSURE_SERVICES is not set 527# CONFIG_ENCLOSURE_SERVICES is not set
528# CONFIG_HP_ILO is not set
529# CONFIG_ISL29003 is not set
530# CONFIG_C2PORT is not set
531
532#
533# EEPROM support
534#
535# CONFIG_EEPROM_AT24 is not set
536# CONFIG_EEPROM_AT25 is not set
537# CONFIG_EEPROM_LEGACY is not set
538# CONFIG_EEPROM_93CX6 is not set
495CONFIG_HAVE_IDE=y 539CONFIG_HAVE_IDE=y
496# CONFIG_IDE is not set 540# CONFIG_IDE is not set
497 541
@@ -533,6 +577,8 @@ CONFIG_SCSI_WAIT_SCAN=m
533# CONFIG_SCSI_SAS_LIBSAS is not set 577# CONFIG_SCSI_SAS_LIBSAS is not set
534# CONFIG_SCSI_SRP_ATTRS is not set 578# CONFIG_SCSI_SRP_ATTRS is not set
535# CONFIG_SCSI_LOWLEVEL is not set 579# CONFIG_SCSI_LOWLEVEL is not set
580# CONFIG_SCSI_DH is not set
581# CONFIG_SCSI_OSD_INITIATOR is not set
536# CONFIG_ATA is not set 582# CONFIG_ATA is not set
537# CONFIG_MD is not set 583# CONFIG_MD is not set
538# CONFIG_FUSION is not set 584# CONFIG_FUSION is not set
@@ -549,7 +595,7 @@ CONFIG_SCSI_WAIT_SCAN=m
549# CONFIG_I2O is not set 595# CONFIG_I2O is not set
550# CONFIG_MACINTOSH_DRIVERS is not set 596# CONFIG_MACINTOSH_DRIVERS is not set
551CONFIG_NETDEVICES=y 597CONFIG_NETDEVICES=y
552# CONFIG_NETDEVICES_MULTIQUEUE is not set 598CONFIG_COMPAT_NET_DEV_OPS=y
553# CONFIG_DUMMY is not set 599# CONFIG_DUMMY is not set
554# CONFIG_BONDING is not set 600# CONFIG_BONDING is not set
555# CONFIG_MACVLAN is not set 601# CONFIG_MACVLAN is not set
@@ -572,6 +618,9 @@ CONFIG_MARVELL_PHY=y
572# CONFIG_BROADCOM_PHY is not set 618# CONFIG_BROADCOM_PHY is not set
573# CONFIG_ICPLUS_PHY is not set 619# CONFIG_ICPLUS_PHY is not set
574# CONFIG_REALTEK_PHY is not set 620# CONFIG_REALTEK_PHY is not set
621# CONFIG_NATIONAL_PHY is not set
622# CONFIG_STE10XP is not set
623# CONFIG_LSI_ET1011C_PHY is not set
575# CONFIG_FIXED_PHY is not set 624# CONFIG_FIXED_PHY is not set
576# CONFIG_MDIO_BITBANG is not set 625# CONFIG_MDIO_BITBANG is not set
577CONFIG_NET_ETHERNET=y 626CONFIG_NET_ETHERNET=y
@@ -581,22 +630,28 @@ CONFIG_MII=y
581# CONFIG_CASSINI is not set 630# CONFIG_CASSINI is not set
582# CONFIG_NET_VENDOR_3COM is not set 631# CONFIG_NET_VENDOR_3COM is not set
583# CONFIG_ENC28J60 is not set 632# CONFIG_ENC28J60 is not set
633# CONFIG_ETHOC is not set
634# CONFIG_DNET is not set
584# CONFIG_NET_TULIP is not set 635# CONFIG_NET_TULIP is not set
585# CONFIG_HP100 is not set 636# CONFIG_HP100 is not set
586# CONFIG_IBM_NEW_EMAC_ZMII is not set 637# CONFIG_IBM_NEW_EMAC_ZMII is not set
587# CONFIG_IBM_NEW_EMAC_RGMII is not set 638# CONFIG_IBM_NEW_EMAC_RGMII is not set
588# CONFIG_IBM_NEW_EMAC_TAH is not set 639# CONFIG_IBM_NEW_EMAC_TAH is not set
589# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 640# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
641# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
642# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
643# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
590# CONFIG_NET_PCI is not set 644# CONFIG_NET_PCI is not set
591# CONFIG_B44 is not set 645# CONFIG_B44 is not set
646# CONFIG_ATL2 is not set
592CONFIG_NETDEV_1000=y 647CONFIG_NETDEV_1000=y
593# CONFIG_ACENIC is not set 648# CONFIG_ACENIC is not set
594# CONFIG_DL2K is not set 649# CONFIG_DL2K is not set
595# CONFIG_E1000 is not set 650# CONFIG_E1000 is not set
596# CONFIG_E1000E is not set 651# CONFIG_E1000E is not set
597# CONFIG_E1000E_ENABLED is not set
598# CONFIG_IP1000 is not set 652# CONFIG_IP1000 is not set
599# CONFIG_IGB is not set 653# CONFIG_IGB is not set
654# CONFIG_IGBVF is not set
600# CONFIG_NS83820 is not set 655# CONFIG_NS83820 is not set
601# CONFIG_HAMACHI is not set 656# CONFIG_HAMACHI is not set
602# CONFIG_YELLOWFIN is not set 657# CONFIG_YELLOWFIN is not set
@@ -607,10 +662,13 @@ CONFIG_NETDEV_1000=y
607# CONFIG_VIA_VELOCITY is not set 662# CONFIG_VIA_VELOCITY is not set
608# CONFIG_TIGON3 is not set 663# CONFIG_TIGON3 is not set
609# CONFIG_BNX2 is not set 664# CONFIG_BNX2 is not set
665CONFIG_FSL_PQ_MDIO=y
610CONFIG_GIANFAR=y 666CONFIG_GIANFAR=y
611CONFIG_GFAR_NAPI=y
612# CONFIG_QLA3XXX is not set 667# CONFIG_QLA3XXX is not set
613# CONFIG_ATL1 is not set 668# CONFIG_ATL1 is not set
669# CONFIG_ATL1E is not set
670# CONFIG_ATL1C is not set
671# CONFIG_JME is not set
614# CONFIG_NETDEV_10000 is not set 672# CONFIG_NETDEV_10000 is not set
615# CONFIG_TR is not set 673# CONFIG_TR is not set
616 674
@@ -619,7 +677,10 @@ CONFIG_GFAR_NAPI=y
619# 677#
620# CONFIG_WLAN_PRE80211 is not set 678# CONFIG_WLAN_PRE80211 is not set
621# CONFIG_WLAN_80211 is not set 679# CONFIG_WLAN_80211 is not set
622# CONFIG_IWLWIFI_LEDS is not set 680
681#
682# Enable WiMAX (Networking options) to see the WiMAX drivers
683#
623 684
624# 685#
625# USB Network Adapters 686# USB Network Adapters
@@ -668,17 +729,23 @@ CONFIG_INPUT_EVDEV=y
668# CONFIG_INPUT_TABLET is not set 729# CONFIG_INPUT_TABLET is not set
669CONFIG_INPUT_TOUCHSCREEN=y 730CONFIG_INPUT_TOUCHSCREEN=y
670# CONFIG_TOUCHSCREEN_ADS7846 is not set 731# CONFIG_TOUCHSCREEN_ADS7846 is not set
732# CONFIG_TOUCHSCREEN_AD7877 is not set
733# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
734# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
735# CONFIG_TOUCHSCREEN_AD7879 is not set
671# CONFIG_TOUCHSCREEN_FUJITSU is not set 736# CONFIG_TOUCHSCREEN_FUJITSU is not set
672# CONFIG_TOUCHSCREEN_GUNZE is not set 737# CONFIG_TOUCHSCREEN_GUNZE is not set
673# CONFIG_TOUCHSCREEN_ELO is not set 738# CONFIG_TOUCHSCREEN_ELO is not set
739# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
674# CONFIG_TOUCHSCREEN_MTOUCH is not set 740# CONFIG_TOUCHSCREEN_MTOUCH is not set
741# CONFIG_TOUCHSCREEN_INEXIO is not set
675# CONFIG_TOUCHSCREEN_MK712 is not set 742# CONFIG_TOUCHSCREEN_MK712 is not set
676# CONFIG_TOUCHSCREEN_PENMOUNT is not set 743# CONFIG_TOUCHSCREEN_PENMOUNT is not set
677# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 744# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
678# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 745# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
679# CONFIG_TOUCHSCREEN_UCB1400 is not set
680CONFIG_TOUCHSCREEN_TSC2003=y
681# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 746# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
747# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
748# CONFIG_TOUCHSCREEN_TSC2007 is not set
682# CONFIG_INPUT_MISC is not set 749# CONFIG_INPUT_MISC is not set
683 750
684# 751#
@@ -691,6 +758,7 @@ CONFIG_TOUCHSCREEN_TSC2003=y
691# Character devices 758# Character devices
692# 759#
693CONFIG_VT=y 760CONFIG_VT=y
761CONFIG_CONSOLE_TRANSLATIONS=y
694CONFIG_VT_CONSOLE=y 762CONFIG_VT_CONSOLE=y
695CONFIG_HW_CONSOLE=y 763CONFIG_HW_CONSOLE=y
696# CONFIG_VT_HW_CONSOLE_BINDING is not set 764# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -715,16 +783,20 @@ CONFIG_SERIAL_8250_RSA=y
715# 783#
716# Non-8250 serial port support 784# Non-8250 serial port support
717# 785#
786# CONFIG_SERIAL_MAX3100 is not set
718# CONFIG_SERIAL_UARTLITE is not set 787# CONFIG_SERIAL_UARTLITE is not set
719CONFIG_SERIAL_CORE=y 788CONFIG_SERIAL_CORE=y
720CONFIG_SERIAL_CORE_CONSOLE=y 789CONFIG_SERIAL_CORE_CONSOLE=y
721# CONFIG_SERIAL_JSM is not set 790# CONFIG_SERIAL_JSM is not set
722# CONFIG_SERIAL_OF_PLATFORM is not set 791# CONFIG_SERIAL_OF_PLATFORM is not set
723CONFIG_UNIX98_PTYS=y 792CONFIG_UNIX98_PTYS=y
793# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
724CONFIG_LEGACY_PTYS=y 794CONFIG_LEGACY_PTYS=y
725CONFIG_LEGACY_PTY_COUNT=256 795CONFIG_LEGACY_PTY_COUNT=256
796# CONFIG_HVC_UDBG is not set
726# CONFIG_IPMI_HANDLER is not set 797# CONFIG_IPMI_HANDLER is not set
727CONFIG_HW_RANDOM=y 798CONFIG_HW_RANDOM=y
799# CONFIG_HW_RANDOM_TIMERIOMEM is not set
728# CONFIG_NVRAM is not set 800# CONFIG_NVRAM is not set
729# CONFIG_R3964 is not set 801# CONFIG_R3964 is not set
730# CONFIG_APPLICOM is not set 802# CONFIG_APPLICOM is not set
@@ -734,44 +806,62 @@ CONFIG_DEVPORT=y
734CONFIG_I2C=y 806CONFIG_I2C=y
735CONFIG_I2C_BOARDINFO=y 807CONFIG_I2C_BOARDINFO=y
736CONFIG_I2C_CHARDEV=y 808CONFIG_I2C_CHARDEV=y
809CONFIG_I2C_HELPER_AUTO=y
737 810
738# 811#
739# I2C Hardware Bus support 812# I2C Hardware Bus support
740# 813#
814
815#
816# PC SMBus host controller drivers
817#
741# CONFIG_I2C_ALI1535 is not set 818# CONFIG_I2C_ALI1535 is not set
742# CONFIG_I2C_ALI1563 is not set 819# CONFIG_I2C_ALI1563 is not set
743# CONFIG_I2C_ALI15X3 is not set 820# CONFIG_I2C_ALI15X3 is not set
744# CONFIG_I2C_AMD756 is not set 821# CONFIG_I2C_AMD756 is not set
745# CONFIG_I2C_AMD8111 is not set 822# CONFIG_I2C_AMD8111 is not set
746# CONFIG_I2C_I801 is not set 823# CONFIG_I2C_I801 is not set
747# CONFIG_I2C_I810 is not set 824# CONFIG_I2C_ISCH is not set
748# CONFIG_I2C_PIIX4 is not set 825# CONFIG_I2C_PIIX4 is not set
749CONFIG_I2C_MPC=y
750# CONFIG_I2C_NFORCE2 is not set 826# CONFIG_I2C_NFORCE2 is not set
751# CONFIG_I2C_OCORES is not set
752# CONFIG_I2C_PARPORT_LIGHT is not set
753# CONFIG_I2C_PROSAVAGE is not set
754# CONFIG_I2C_SAVAGE4 is not set
755# CONFIG_I2C_SIMTEC is not set
756# CONFIG_I2C_SIS5595 is not set 827# CONFIG_I2C_SIS5595 is not set
757# CONFIG_I2C_SIS630 is not set 828# CONFIG_I2C_SIS630 is not set
758# CONFIG_I2C_SIS96X is not set 829# CONFIG_I2C_SIS96X is not set
759# CONFIG_I2C_TAOS_EVM is not set
760# CONFIG_I2C_STUB is not set
761# CONFIG_I2C_TINY_USB is not set
762# CONFIG_I2C_VIA is not set 830# CONFIG_I2C_VIA is not set
763# CONFIG_I2C_VIAPRO is not set 831# CONFIG_I2C_VIAPRO is not set
832
833#
834# I2C system bus drivers (mostly embedded / system-on-chip)
835#
836CONFIG_I2C_MPC=y
837# CONFIG_I2C_OCORES is not set
838# CONFIG_I2C_SIMTEC is not set
839
840#
841# External I2C/SMBus adapter drivers
842#
843# CONFIG_I2C_PARPORT_LIGHT is not set
844# CONFIG_I2C_TAOS_EVM is not set
845# CONFIG_I2C_TINY_USB is not set
846
847#
848# Graphics adapter I2C/DDC channel drivers
849#
764# CONFIG_I2C_VOODOO3 is not set 850# CONFIG_I2C_VOODOO3 is not set
851
852#
853# Other I2C/SMBus bus drivers
854#
765# CONFIG_I2C_PCA_PLATFORM is not set 855# CONFIG_I2C_PCA_PLATFORM is not set
856# CONFIG_I2C_STUB is not set
766 857
767# 858#
768# Miscellaneous I2C Chip support 859# Miscellaneous I2C Chip support
769# 860#
770# CONFIG_DS1682 is not set 861# CONFIG_DS1682 is not set
771# CONFIG_SENSORS_EEPROM is not set
772# CONFIG_SENSORS_PCF8574 is not set 862# CONFIG_SENSORS_PCF8574 is not set
773# CONFIG_PCF8575 is not set 863# CONFIG_PCF8575 is not set
774# CONFIG_SENSORS_PCF8591 is not set 864# CONFIG_SENSORS_PCA9539 is not set
775# CONFIG_SENSORS_MAX6875 is not set 865# CONFIG_SENSORS_MAX6875 is not set
776# CONFIG_SENSORS_TSL2550 is not set 866# CONFIG_SENSORS_TSL2550 is not set
777# CONFIG_I2C_DEBUG_CORE is not set 867# CONFIG_I2C_DEBUG_CORE is not set
@@ -785,33 +875,38 @@ CONFIG_SPI_MASTER=y
785# SPI Master Controller Drivers 875# SPI Master Controller Drivers
786# 876#
787# CONFIG_SPI_BITBANG is not set 877# CONFIG_SPI_BITBANG is not set
788CONFIG_SPI_SOCRATES=y
789 878
790# 879#
791# SPI Protocol Masters 880# SPI Protocol Masters
792# 881#
793# CONFIG_SPI_AT25 is not set
794# CONFIG_SPI_SPIDEV is not set 882# CONFIG_SPI_SPIDEV is not set
795# CONFIG_SPI_TLE62X0 is not set 883# CONFIG_SPI_TLE62X0 is not set
884CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
885# CONFIG_GPIOLIB is not set
796# CONFIG_W1 is not set 886# CONFIG_W1 is not set
797# CONFIG_POWER_SUPPLY is not set 887# CONFIG_POWER_SUPPLY is not set
798CONFIG_HWMON=y 888CONFIG_HWMON=y
799CONFIG_HWMON_VID=y 889CONFIG_HWMON_VID=y
890# CONFIG_SENSORS_AD7414 is not set
800# CONFIG_SENSORS_AD7418 is not set 891# CONFIG_SENSORS_AD7418 is not set
892# CONFIG_SENSORS_ADCXX is not set
801# CONFIG_SENSORS_ADM1021 is not set 893# CONFIG_SENSORS_ADM1021 is not set
802# CONFIG_SENSORS_ADM1025 is not set 894# CONFIG_SENSORS_ADM1025 is not set
803# CONFIG_SENSORS_ADM1026 is not set 895# CONFIG_SENSORS_ADM1026 is not set
804# CONFIG_SENSORS_ADM1029 is not set 896# CONFIG_SENSORS_ADM1029 is not set
805# CONFIG_SENSORS_ADM1031 is not set 897# CONFIG_SENSORS_ADM1031 is not set
806# CONFIG_SENSORS_ADM9240 is not set 898# CONFIG_SENSORS_ADM9240 is not set
899# CONFIG_SENSORS_ADT7462 is not set
807# CONFIG_SENSORS_ADT7470 is not set 900# CONFIG_SENSORS_ADT7470 is not set
808# CONFIG_SENSORS_ADT7473 is not set 901# CONFIG_SENSORS_ADT7473 is not set
902# CONFIG_SENSORS_ADT7475 is not set
809# CONFIG_SENSORS_ATXP1 is not set 903# CONFIG_SENSORS_ATXP1 is not set
810# CONFIG_SENSORS_DS1621 is not set 904# CONFIG_SENSORS_DS1621 is not set
811# CONFIG_SENSORS_I5K_AMB is not set 905# CONFIG_SENSORS_I5K_AMB is not set
812# CONFIG_SENSORS_F71805F is not set 906# CONFIG_SENSORS_F71805F is not set
813# CONFIG_SENSORS_F71882FG is not set 907# CONFIG_SENSORS_F71882FG is not set
814# CONFIG_SENSORS_F75375S is not set 908# CONFIG_SENSORS_F75375S is not set
909# CONFIG_SENSORS_G760A is not set
815# CONFIG_SENSORS_GL518SM is not set 910# CONFIG_SENSORS_GL518SM is not set
816# CONFIG_SENSORS_GL520SM is not set 911# CONFIG_SENSORS_GL520SM is not set
817# CONFIG_SENSORS_IT87 is not set 912# CONFIG_SENSORS_IT87 is not set
@@ -827,10 +922,15 @@ CONFIG_SENSORS_LM75=y
827# CONFIG_SENSORS_LM90 is not set 922# CONFIG_SENSORS_LM90 is not set
828# CONFIG_SENSORS_LM92 is not set 923# CONFIG_SENSORS_LM92 is not set
829# CONFIG_SENSORS_LM93 is not set 924# CONFIG_SENSORS_LM93 is not set
925# CONFIG_SENSORS_LTC4215 is not set
926# CONFIG_SENSORS_LTC4245 is not set
927# CONFIG_SENSORS_LM95241 is not set
928# CONFIG_SENSORS_MAX1111 is not set
830# CONFIG_SENSORS_MAX1619 is not set 929# CONFIG_SENSORS_MAX1619 is not set
831# CONFIG_SENSORS_MAX6650 is not set 930# CONFIG_SENSORS_MAX6650 is not set
832# CONFIG_SENSORS_PC87360 is not set 931# CONFIG_SENSORS_PC87360 is not set
833# CONFIG_SENSORS_PC87427 is not set 932# CONFIG_SENSORS_PC87427 is not set
933# CONFIG_SENSORS_PCF8591 is not set
834# CONFIG_SENSORS_SIS5595 is not set 934# CONFIG_SENSORS_SIS5595 is not set
835# CONFIG_SENSORS_DME1737 is not set 935# CONFIG_SENSORS_DME1737 is not set
836# CONFIG_SENSORS_SMSC47M1 is not set 936# CONFIG_SENSORS_SMSC47M1 is not set
@@ -849,22 +949,31 @@ CONFIG_SENSORS_W83781D=y
849# CONFIG_SENSORS_W83L786NG is not set 949# CONFIG_SENSORS_W83L786NG is not set
850# CONFIG_SENSORS_W83627HF is not set 950# CONFIG_SENSORS_W83627HF is not set
851# CONFIG_SENSORS_W83627EHF is not set 951# CONFIG_SENSORS_W83627EHF is not set
952# CONFIG_SENSORS_LIS3_SPI is not set
852CONFIG_HWMON_DEBUG_CHIP=y 953CONFIG_HWMON_DEBUG_CHIP=y
853# CONFIG_THERMAL is not set 954# CONFIG_THERMAL is not set
854# CONFIG_THERMAL_HWMON is not set 955# CONFIG_THERMAL_HWMON is not set
855# CONFIG_WATCHDOG is not set 956# CONFIG_WATCHDOG is not set
957CONFIG_SSB_POSSIBLE=y
856 958
857# 959#
858# Sonics Silicon Backplane 960# Sonics Silicon Backplane
859# 961#
860CONFIG_SSB_POSSIBLE=y
861# CONFIG_SSB is not set 962# CONFIG_SSB is not set
862 963
863# 964#
864# Multifunction device drivers 965# Multifunction device drivers
865# 966#
967# CONFIG_MFD_CORE is not set
866# CONFIG_MFD_SM501 is not set 968# CONFIG_MFD_SM501 is not set
867# CONFIG_HTC_PASIC3 is not set 969# CONFIG_HTC_PASIC3 is not set
970# CONFIG_TWL4030_CORE is not set
971# CONFIG_MFD_TMIO is not set
972# CONFIG_PMIC_DA903X is not set
973# CONFIG_MFD_WM8400 is not set
974# CONFIG_MFD_WM8350_I2C is not set
975# CONFIG_MFD_PCF50633 is not set
976# CONFIG_REGULATOR is not set
868 977
869# 978#
870# Multimedia devices 979# Multimedia devices
@@ -893,6 +1002,7 @@ CONFIG_DAB=y
893CONFIG_FB=y 1002CONFIG_FB=y
894# CONFIG_FIRMWARE_EDID is not set 1003# CONFIG_FIRMWARE_EDID is not set
895# CONFIG_FB_DDC is not set 1004# CONFIG_FB_DDC is not set
1005# CONFIG_FB_BOOT_VESA_SUPPORT is not set
896CONFIG_FB_CFB_FILLRECT=y 1006CONFIG_FB_CFB_FILLRECT=y
897CONFIG_FB_CFB_COPYAREA=y 1007CONFIG_FB_CFB_COPYAREA=y
898CONFIG_FB_CFB_IMAGEBLIT=y 1008CONFIG_FB_CFB_IMAGEBLIT=y
@@ -914,10 +1024,6 @@ CONFIG_FB_BOTH_ENDIAN=y
914# 1024#
915# Frame buffer hardware drivers 1025# Frame buffer hardware drivers
916# 1026#
917CONFIG_FB_MB862XX=y
918# CONFIG_FB_MB862XX_PCI_GDC is not set
919CONFIG_FB_MB862XX_LIME=y
920# CONFIG_FB_PRE_INIT_FB is not set
921# CONFIG_FB_CIRRUS is not set 1027# CONFIG_FB_CIRRUS is not set
922# CONFIG_FB_PM2 is not set 1028# CONFIG_FB_PM2 is not set
923# CONFIG_FB_CYBER2000 is not set 1029# CONFIG_FB_CYBER2000 is not set
@@ -936,6 +1042,7 @@ CONFIG_FB_MB862XX_LIME=y
936# CONFIG_FB_S3 is not set 1042# CONFIG_FB_S3 is not set
937# CONFIG_FB_SAVAGE is not set 1043# CONFIG_FB_SAVAGE is not set
938# CONFIG_FB_SIS is not set 1044# CONFIG_FB_SIS is not set
1045# CONFIG_FB_VIA is not set
939# CONFIG_FB_NEOMAGIC is not set 1046# CONFIG_FB_NEOMAGIC is not set
940# CONFIG_FB_KYRO is not set 1047# CONFIG_FB_KYRO is not set
941# CONFIG_FB_3DFX is not set 1048# CONFIG_FB_3DFX is not set
@@ -944,9 +1051,16 @@ CONFIG_FB_MB862XX_LIME=y
944# CONFIG_FB_TRIDENT is not set 1051# CONFIG_FB_TRIDENT is not set
945# CONFIG_FB_ARK is not set 1052# CONFIG_FB_ARK is not set
946# CONFIG_FB_PM3 is not set 1053# CONFIG_FB_PM3 is not set
1054# CONFIG_FB_CARMINE is not set
947# CONFIG_FB_FSL_DIU is not set 1055# CONFIG_FB_FSL_DIU is not set
948# CONFIG_FB_IBM_GXT4500 is not set 1056# CONFIG_FB_IBM_GXT4500 is not set
949# CONFIG_FB_VIRTUAL is not set 1057# CONFIG_FB_VIRTUAL is not set
1058# CONFIG_FB_METRONOME is not set
1059CONFIG_FB_MB862XX=y
1060# CONFIG_FB_MB862XX_PCI_GDC is not set
1061CONFIG_FB_MB862XX_LIME=y
1062# CONFIG_FB_PRE_INIT_FB is not set
1063# CONFIG_FB_BROADSHEET is not set
950# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1064# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
951 1065
952# 1066#
@@ -974,10 +1088,6 @@ CONFIG_FONT_8x16=y
974# CONFIG_FONT_SUN12x22 is not set 1088# CONFIG_FONT_SUN12x22 is not set
975# CONFIG_FONT_10x18 is not set 1089# CONFIG_FONT_10x18 is not set
976# CONFIG_LOGO is not set 1090# CONFIG_LOGO is not set
977
978#
979# Sound
980#
981# CONFIG_SOUND is not set 1091# CONFIG_SOUND is not set
982CONFIG_HID_SUPPORT=y 1092CONFIG_HID_SUPPORT=y
983CONFIG_HID=y 1093CONFIG_HID=y
@@ -988,9 +1098,36 @@ CONFIG_HID=y
988# USB Input Devices 1098# USB Input Devices
989# 1099#
990CONFIG_USB_HID=y 1100CONFIG_USB_HID=y
991# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1101# CONFIG_HID_PID is not set
992# CONFIG_HID_FF is not set
993# CONFIG_USB_HIDDEV is not set 1102# CONFIG_USB_HIDDEV is not set
1103
1104#
1105# Special HID drivers
1106#
1107# CONFIG_HID_A4TECH is not set
1108# CONFIG_HID_APPLE is not set
1109# CONFIG_HID_BELKIN is not set
1110# CONFIG_HID_CHERRY is not set
1111# CONFIG_HID_CHICONY is not set
1112# CONFIG_HID_CYPRESS is not set
1113# CONFIG_DRAGONRISE_FF is not set
1114# CONFIG_HID_EZKEY is not set
1115# CONFIG_HID_KYE is not set
1116# CONFIG_HID_GYRATION is not set
1117# CONFIG_HID_KENSINGTON is not set
1118# CONFIG_HID_LOGITECH is not set
1119# CONFIG_HID_MICROSOFT is not set
1120# CONFIG_HID_MONTEREY is not set
1121# CONFIG_HID_NTRIG is not set
1122# CONFIG_HID_PANTHERLORD is not set
1123# CONFIG_HID_PETALYNX is not set
1124# CONFIG_HID_SAMSUNG is not set
1125# CONFIG_HID_SONY is not set
1126# CONFIG_HID_SUNPLUS is not set
1127# CONFIG_GREENASIA_FF is not set
1128# CONFIG_HID_TOPSEED is not set
1129# CONFIG_THRUSTMASTER_FF is not set
1130# CONFIG_ZEROPLUS_FF is not set
994CONFIG_USB_SUPPORT=y 1131CONFIG_USB_SUPPORT=y
995CONFIG_USB_ARCH_HAS_HCD=y 1132CONFIG_USB_ARCH_HAS_HCD=y
996CONFIG_USB_ARCH_HAS_OHCI=y 1133CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1008,6 +1145,9 @@ CONFIG_USB_DEVICE_CLASS=y
1008# CONFIG_USB_OTG is not set 1145# CONFIG_USB_OTG is not set
1009# CONFIG_USB_OTG_WHITELIST is not set 1146# CONFIG_USB_OTG_WHITELIST is not set
1010# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1147# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1148CONFIG_USB_MON=y
1149# CONFIG_USB_WUSB is not set
1150# CONFIG_USB_WUSB_CBAF is not set
1011 1151
1012# 1152#
1013# USB Host Controller Drivers 1153# USB Host Controller Drivers
@@ -1018,6 +1158,7 @@ CONFIG_USB_EHCI_HCD=y
1018# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1158# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1019# CONFIG_USB_EHCI_FSL is not set 1159# CONFIG_USB_EHCI_FSL is not set
1020CONFIG_USB_EHCI_HCD_PPC_OF=y 1160CONFIG_USB_EHCI_HCD_PPC_OF=y
1161# CONFIG_USB_OXU210HP_HCD is not set
1021# CONFIG_USB_ISP116X_HCD is not set 1162# CONFIG_USB_ISP116X_HCD is not set
1022# CONFIG_USB_ISP1760_HCD is not set 1163# CONFIG_USB_ISP1760_HCD is not set
1023CONFIG_USB_OHCI_HCD=y 1164CONFIG_USB_OHCI_HCD=y
@@ -1031,6 +1172,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1031# CONFIG_USB_UHCI_HCD is not set 1172# CONFIG_USB_UHCI_HCD is not set
1032# CONFIG_USB_SL811_HCD is not set 1173# CONFIG_USB_SL811_HCD is not set
1033# CONFIG_USB_R8A66597_HCD is not set 1174# CONFIG_USB_R8A66597_HCD is not set
1175# CONFIG_USB_WHCI_HCD is not set
1176# CONFIG_USB_HWA_HCD is not set
1034 1177
1035# 1178#
1036# USB Device Class drivers 1179# USB Device Class drivers
@@ -1038,20 +1181,20 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1038# CONFIG_USB_ACM is not set 1181# CONFIG_USB_ACM is not set
1039# CONFIG_USB_PRINTER is not set 1182# CONFIG_USB_PRINTER is not set
1040# CONFIG_USB_WDM is not set 1183# CONFIG_USB_WDM is not set
1184# CONFIG_USB_TMC is not set
1041 1185
1042# 1186#
1043# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1187# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1044# 1188#
1045 1189
1046# 1190#
1047# may also be needed; see USB_STORAGE Help for more information 1191# also be needed; see USB_STORAGE Help for more info
1048# 1192#
1049CONFIG_USB_STORAGE=y 1193CONFIG_USB_STORAGE=y
1050# CONFIG_USB_STORAGE_DEBUG is not set 1194# CONFIG_USB_STORAGE_DEBUG is not set
1051# CONFIG_USB_STORAGE_DATAFAB is not set 1195# CONFIG_USB_STORAGE_DATAFAB is not set
1052# CONFIG_USB_STORAGE_FREECOM is not set 1196# CONFIG_USB_STORAGE_FREECOM is not set
1053# CONFIG_USB_STORAGE_ISD200 is not set 1197# CONFIG_USB_STORAGE_ISD200 is not set
1054# CONFIG_USB_STORAGE_DPCM is not set
1055# CONFIG_USB_STORAGE_USBAT is not set 1198# CONFIG_USB_STORAGE_USBAT is not set
1056# CONFIG_USB_STORAGE_SDDR09 is not set 1199# CONFIG_USB_STORAGE_SDDR09 is not set
1057# CONFIG_USB_STORAGE_SDDR55 is not set 1200# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1067,7 +1210,6 @@ CONFIG_USB_STORAGE=y
1067# 1210#
1068# CONFIG_USB_MDC800 is not set 1211# CONFIG_USB_MDC800 is not set
1069# CONFIG_USB_MICROTEK is not set 1212# CONFIG_USB_MICROTEK is not set
1070CONFIG_USB_MON=y
1071 1213
1072# 1214#
1073# USB port drivers 1215# USB port drivers
@@ -1080,7 +1222,7 @@ CONFIG_USB_MON=y
1080# CONFIG_USB_EMI62 is not set 1222# CONFIG_USB_EMI62 is not set
1081# CONFIG_USB_EMI26 is not set 1223# CONFIG_USB_EMI26 is not set
1082# CONFIG_USB_ADUTUX is not set 1224# CONFIG_USB_ADUTUX is not set
1083# CONFIG_USB_AUERSWALD is not set 1225# CONFIG_USB_SEVSEG is not set
1084# CONFIG_USB_RIO500 is not set 1226# CONFIG_USB_RIO500 is not set
1085# CONFIG_USB_LEGOTOWER is not set 1227# CONFIG_USB_LEGOTOWER is not set
1086# CONFIG_USB_LCD is not set 1228# CONFIG_USB_LCD is not set
@@ -1088,7 +1230,6 @@ CONFIG_USB_MON=y
1088# CONFIG_USB_LED is not set 1230# CONFIG_USB_LED is not set
1089# CONFIG_USB_CYPRESS_CY7C63 is not set 1231# CONFIG_USB_CYPRESS_CY7C63 is not set
1090# CONFIG_USB_CYTHERM is not set 1232# CONFIG_USB_CYTHERM is not set
1091# CONFIG_USB_PHIDGET is not set
1092# CONFIG_USB_IDMOUSE is not set 1233# CONFIG_USB_IDMOUSE is not set
1093# CONFIG_USB_FTDI_ELAN is not set 1234# CONFIG_USB_FTDI_ELAN is not set
1094# CONFIG_USB_APPLEDISPLAY is not set 1235# CONFIG_USB_APPLEDISPLAY is not set
@@ -1098,7 +1239,14 @@ CONFIG_USB_MON=y
1098# CONFIG_USB_IOWARRIOR is not set 1239# CONFIG_USB_IOWARRIOR is not set
1099# CONFIG_USB_TEST is not set 1240# CONFIG_USB_TEST is not set
1100# CONFIG_USB_ISIGHTFW is not set 1241# CONFIG_USB_ISIGHTFW is not set
1242# CONFIG_USB_VST is not set
1101# CONFIG_USB_GADGET is not set 1243# CONFIG_USB_GADGET is not set
1244
1245#
1246# OTG and related infrastructure
1247#
1248# CONFIG_NOP_USB_XCEIV is not set
1249# CONFIG_UWB is not set
1102# CONFIG_MMC is not set 1250# CONFIG_MMC is not set
1103# CONFIG_MEMSTICK is not set 1251# CONFIG_MEMSTICK is not set
1104# CONFIG_NEW_LEDS is not set 1252# CONFIG_NEW_LEDS is not set
@@ -1135,33 +1283,42 @@ CONFIG_RTC_INTF_DEV=y
1135# CONFIG_RTC_DRV_M41T80 is not set 1283# CONFIG_RTC_DRV_M41T80 is not set
1136# CONFIG_RTC_DRV_S35390A is not set 1284# CONFIG_RTC_DRV_S35390A is not set
1137# CONFIG_RTC_DRV_FM3130 is not set 1285# CONFIG_RTC_DRV_FM3130 is not set
1138CONFIG_RTC_DRV_RX8025=y 1286# CONFIG_RTC_DRV_RX8581 is not set
1139 1287
1140# 1288#
1141# SPI RTC drivers 1289# SPI RTC drivers
1142# 1290#
1291# CONFIG_RTC_DRV_M41T94 is not set
1292# CONFIG_RTC_DRV_DS1305 is not set
1293# CONFIG_RTC_DRV_DS1390 is not set
1143# CONFIG_RTC_DRV_MAX6902 is not set 1294# CONFIG_RTC_DRV_MAX6902 is not set
1144# CONFIG_RTC_DRV_R9701 is not set 1295# CONFIG_RTC_DRV_R9701 is not set
1145# CONFIG_RTC_DRV_RS5C348 is not set 1296# CONFIG_RTC_DRV_RS5C348 is not set
1297# CONFIG_RTC_DRV_DS3234 is not set
1146 1298
1147# 1299#
1148# Platform RTC drivers 1300# Platform RTC drivers
1149# 1301#
1150# CONFIG_RTC_DRV_CMOS is not set 1302# CONFIG_RTC_DRV_CMOS is not set
1303# CONFIG_RTC_DRV_DS1286 is not set
1151# CONFIG_RTC_DRV_DS1511 is not set 1304# CONFIG_RTC_DRV_DS1511 is not set
1152# CONFIG_RTC_DRV_DS1553 is not set 1305# CONFIG_RTC_DRV_DS1553 is not set
1153# CONFIG_RTC_DRV_DS1742 is not set 1306# CONFIG_RTC_DRV_DS1742 is not set
1154# CONFIG_RTC_DRV_STK17TA8 is not set 1307# CONFIG_RTC_DRV_STK17TA8 is not set
1155# CONFIG_RTC_DRV_M48T86 is not set 1308# CONFIG_RTC_DRV_M48T86 is not set
1309# CONFIG_RTC_DRV_M48T35 is not set
1156# CONFIG_RTC_DRV_M48T59 is not set 1310# CONFIG_RTC_DRV_M48T59 is not set
1311# CONFIG_RTC_DRV_BQ4802 is not set
1157# CONFIG_RTC_DRV_V3020 is not set 1312# CONFIG_RTC_DRV_V3020 is not set
1158 1313
1159# 1314#
1160# on-CPU RTC drivers 1315# on-CPU RTC drivers
1161# 1316#
1162CONFIG_RTC_DRV_PPC=y 1317# CONFIG_RTC_DRV_GENERIC is not set
1163# CONFIG_DMADEVICES is not set 1318# CONFIG_DMADEVICES is not set
1319# CONFIG_AUXDISPLAY is not set
1164# CONFIG_UIO is not set 1320# CONFIG_UIO is not set
1321# CONFIG_STAGING is not set
1165 1322
1166# 1323#
1167# File systems 1324# File systems
@@ -1170,17 +1327,20 @@ CONFIG_EXT2_FS=y
1170# CONFIG_EXT2_FS_XATTR is not set 1327# CONFIG_EXT2_FS_XATTR is not set
1171# CONFIG_EXT2_FS_XIP is not set 1328# CONFIG_EXT2_FS_XIP is not set
1172CONFIG_EXT3_FS=y 1329CONFIG_EXT3_FS=y
1330# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1173CONFIG_EXT3_FS_XATTR=y 1331CONFIG_EXT3_FS_XATTR=y
1174# CONFIG_EXT3_FS_POSIX_ACL is not set 1332# CONFIG_EXT3_FS_POSIX_ACL is not set
1175# CONFIG_EXT3_FS_SECURITY is not set 1333# CONFIG_EXT3_FS_SECURITY is not set
1176# CONFIG_EXT4DEV_FS is not set 1334# CONFIG_EXT4_FS is not set
1177CONFIG_JBD=y 1335CONFIG_JBD=y
1178CONFIG_FS_MBCACHE=y 1336CONFIG_FS_MBCACHE=y
1179# CONFIG_REISERFS_FS is not set 1337# CONFIG_REISERFS_FS is not set
1180# CONFIG_JFS_FS is not set 1338# CONFIG_JFS_FS is not set
1181# CONFIG_FS_POSIX_ACL is not set 1339# CONFIG_FS_POSIX_ACL is not set
1340CONFIG_FILE_LOCKING=y
1182# CONFIG_XFS_FS is not set 1341# CONFIG_XFS_FS is not set
1183# CONFIG_OCFS2_FS is not set 1342# CONFIG_OCFS2_FS is not set
1343# CONFIG_BTRFS_FS is not set
1184CONFIG_DNOTIFY=y 1344CONFIG_DNOTIFY=y
1185CONFIG_INOTIFY=y 1345CONFIG_INOTIFY=y
1186CONFIG_INOTIFY_USER=y 1346CONFIG_INOTIFY_USER=y
@@ -1190,6 +1350,11 @@ CONFIG_INOTIFY_USER=y
1190# CONFIG_FUSE_FS is not set 1350# CONFIG_FUSE_FS is not set
1191 1351
1192# 1352#
1353# Caches
1354#
1355# CONFIG_FSCACHE is not set
1356
1357#
1193# CD-ROM/DVD Filesystems 1358# CD-ROM/DVD Filesystems
1194# 1359#
1195# CONFIG_ISO9660_FS is not set 1360# CONFIG_ISO9660_FS is not set
@@ -1208,15 +1373,13 @@ CONFIG_INOTIFY_USER=y
1208CONFIG_PROC_FS=y 1373CONFIG_PROC_FS=y
1209CONFIG_PROC_KCORE=y 1374CONFIG_PROC_KCORE=y
1210CONFIG_PROC_SYSCTL=y 1375CONFIG_PROC_SYSCTL=y
1376CONFIG_PROC_PAGE_MONITOR=y
1211CONFIG_SYSFS=y 1377CONFIG_SYSFS=y
1212CONFIG_TMPFS=y 1378CONFIG_TMPFS=y
1213# CONFIG_TMPFS_POSIX_ACL is not set 1379# CONFIG_TMPFS_POSIX_ACL is not set
1214# CONFIG_HUGETLB_PAGE is not set 1380# CONFIG_HUGETLB_PAGE is not set
1215# CONFIG_CONFIGFS_FS is not set 1381# CONFIG_CONFIGFS_FS is not set
1216 1382CONFIG_MISC_FILESYSTEMS=y
1217#
1218# Miscellaneous filesystems
1219#
1220# CONFIG_ADFS_FS is not set 1383# CONFIG_ADFS_FS is not set
1221# CONFIG_AFFS_FS is not set 1384# CONFIG_AFFS_FS is not set
1222# CONFIG_HFS_FS is not set 1385# CONFIG_HFS_FS is not set
@@ -1236,25 +1399,27 @@ CONFIG_JFFS2_ZLIB=y
1236CONFIG_JFFS2_RTIME=y 1399CONFIG_JFFS2_RTIME=y
1237# CONFIG_JFFS2_RUBIN is not set 1400# CONFIG_JFFS2_RUBIN is not set
1238CONFIG_CRAMFS=y 1401CONFIG_CRAMFS=y
1402# CONFIG_SQUASHFS is not set
1239# CONFIG_VXFS_FS is not set 1403# CONFIG_VXFS_FS is not set
1240# CONFIG_MINIX_FS is not set 1404# CONFIG_MINIX_FS is not set
1405# CONFIG_OMFS_FS is not set
1241# CONFIG_HPFS_FS is not set 1406# CONFIG_HPFS_FS is not set
1242# CONFIG_QNX4FS_FS is not set 1407# CONFIG_QNX4FS_FS is not set
1243# CONFIG_ROMFS_FS is not set 1408# CONFIG_ROMFS_FS is not set
1244# CONFIG_SYSV_FS is not set 1409# CONFIG_SYSV_FS is not set
1245# CONFIG_UFS_FS is not set 1410# CONFIG_UFS_FS is not set
1411# CONFIG_NILFS2_FS is not set
1246CONFIG_NETWORK_FILESYSTEMS=y 1412CONFIG_NETWORK_FILESYSTEMS=y
1247CONFIG_NFS_FS=y 1413CONFIG_NFS_FS=y
1248CONFIG_NFS_V3=y 1414CONFIG_NFS_V3=y
1249# CONFIG_NFS_V3_ACL is not set 1415# CONFIG_NFS_V3_ACL is not set
1250# CONFIG_NFS_V4 is not set 1416# CONFIG_NFS_V4 is not set
1251# CONFIG_NFSD is not set
1252CONFIG_ROOT_NFS=y 1417CONFIG_ROOT_NFS=y
1418# CONFIG_NFSD is not set
1253CONFIG_LOCKD=y 1419CONFIG_LOCKD=y
1254CONFIG_LOCKD_V4=y 1420CONFIG_LOCKD_V4=y
1255CONFIG_NFS_COMMON=y 1421CONFIG_NFS_COMMON=y
1256CONFIG_SUNRPC=y 1422CONFIG_SUNRPC=y
1257# CONFIG_SUNRPC_BIND34 is not set
1258# CONFIG_RPCSEC_GSS_KRB5 is not set 1423# CONFIG_RPCSEC_GSS_KRB5 is not set
1259# CONFIG_RPCSEC_GSS_SPKM3 is not set 1424# CONFIG_RPCSEC_GSS_SPKM3 is not set
1260# CONFIG_SMB_FS is not set 1425# CONFIG_SMB_FS is not set
@@ -1286,25 +1451,28 @@ CONFIG_MSDOS_PARTITION=y
1286# CONFIG_SYSV68_PARTITION is not set 1451# CONFIG_SYSV68_PARTITION is not set
1287# CONFIG_NLS is not set 1452# CONFIG_NLS is not set
1288# CONFIG_DLM is not set 1453# CONFIG_DLM is not set
1454# CONFIG_BINARY_PRINTF is not set
1289 1455
1290# 1456#
1291# Library routines 1457# Library routines
1292# 1458#
1293CONFIG_BITREVERSE=y 1459CONFIG_BITREVERSE=y
1294# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1460CONFIG_GENERIC_FIND_LAST_BIT=y
1295# CONFIG_CRC_CCITT is not set 1461# CONFIG_CRC_CCITT is not set
1296# CONFIG_CRC16 is not set 1462# CONFIG_CRC16 is not set
1463# CONFIG_CRC_T10DIF is not set
1297# CONFIG_CRC_ITU_T is not set 1464# CONFIG_CRC_ITU_T is not set
1298CONFIG_CRC32=y 1465CONFIG_CRC32=y
1299# CONFIG_CRC7 is not set 1466# CONFIG_CRC7 is not set
1300# CONFIG_LIBCRC32C is not set 1467# CONFIG_LIBCRC32C is not set
1301CONFIG_ZLIB_INFLATE=y 1468CONFIG_ZLIB_INFLATE=y
1302CONFIG_ZLIB_DEFLATE=y 1469CONFIG_ZLIB_DEFLATE=y
1303CONFIG_PLIST=y 1470CONFIG_DECOMPRESS_GZIP=y
1304CONFIG_HAS_IOMEM=y 1471CONFIG_HAS_IOMEM=y
1305CONFIG_HAS_IOPORT=y 1472CONFIG_HAS_IOPORT=y
1306CONFIG_HAS_DMA=y 1473CONFIG_HAS_DMA=y
1307CONFIG_HAVE_LMB=y 1474CONFIG_HAVE_LMB=y
1475CONFIG_NLATTR=y
1308 1476
1309# 1477#
1310# Kernel hacking 1478# Kernel hacking
@@ -1321,7 +1489,32 @@ CONFIG_FRAME_WARN=1024
1321# CONFIG_SLUB_DEBUG_ON is not set 1489# CONFIG_SLUB_DEBUG_ON is not set
1322# CONFIG_SLUB_STATS is not set 1490# CONFIG_SLUB_STATS is not set
1323# CONFIG_DEBUG_BUGVERBOSE is not set 1491# CONFIG_DEBUG_BUGVERBOSE is not set
1492# CONFIG_DEBUG_MEMORY_INIT is not set
1493# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1494# CONFIG_LATENCYTOP is not set
1495CONFIG_SYSCTL_SYSCALL_CHECK=y
1496CONFIG_HAVE_FUNCTION_TRACER=y
1497CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1498CONFIG_HAVE_DYNAMIC_FTRACE=y
1499CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1500CONFIG_TRACING_SUPPORT=y
1501
1502#
1503# Tracers
1504#
1505# CONFIG_FUNCTION_TRACER is not set
1506# CONFIG_SCHED_TRACER is not set
1507# CONFIG_CONTEXT_SWITCH_TRACER is not set
1508# CONFIG_EVENT_TRACER is not set
1509# CONFIG_BOOT_TRACER is not set
1510# CONFIG_TRACE_BRANCH_PROFILING is not set
1511# CONFIG_STACK_TRACER is not set
1512# CONFIG_KMEMTRACE is not set
1513# CONFIG_WORKQUEUE_TRACER is not set
1514# CONFIG_BLK_DEV_IO_TRACE is not set
1324# CONFIG_SAMPLES is not set 1515# CONFIG_SAMPLES is not set
1516CONFIG_HAVE_ARCH_KGDB=y
1517CONFIG_PRINT_STACK_DEPTH=64
1325# CONFIG_IRQSTACKS is not set 1518# CONFIG_IRQSTACKS is not set
1326# CONFIG_PPC_EARLY_DEBUG is not set 1519# CONFIG_PPC_EARLY_DEBUG is not set
1327 1520
@@ -1330,13 +1523,16 @@ CONFIG_FRAME_WARN=1024
1330# 1523#
1331# CONFIG_KEYS is not set 1524# CONFIG_KEYS is not set
1332# CONFIG_SECURITY is not set 1525# CONFIG_SECURITY is not set
1526# CONFIG_SECURITYFS is not set
1333# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1527# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1334CONFIG_CRYPTO=y 1528CONFIG_CRYPTO=y
1335 1529
1336# 1530#
1337# Crypto core or helper 1531# Crypto core or helper
1338# 1532#
1533# CONFIG_CRYPTO_FIPS is not set
1339# CONFIG_CRYPTO_MANAGER is not set 1534# CONFIG_CRYPTO_MANAGER is not set
1535# CONFIG_CRYPTO_MANAGER2 is not set
1340# CONFIG_CRYPTO_GF128MUL is not set 1536# CONFIG_CRYPTO_GF128MUL is not set
1341# CONFIG_CRYPTO_NULL is not set 1537# CONFIG_CRYPTO_NULL is not set
1342# CONFIG_CRYPTO_CRYPTD is not set 1538# CONFIG_CRYPTO_CRYPTD is not set
@@ -1374,6 +1570,10 @@ CONFIG_CRYPTO=y
1374# CONFIG_CRYPTO_MD4 is not set 1570# CONFIG_CRYPTO_MD4 is not set
1375# CONFIG_CRYPTO_MD5 is not set 1571# CONFIG_CRYPTO_MD5 is not set
1376# CONFIG_CRYPTO_MICHAEL_MIC is not set 1572# CONFIG_CRYPTO_MICHAEL_MIC is not set
1573# CONFIG_CRYPTO_RMD128 is not set
1574# CONFIG_CRYPTO_RMD160 is not set
1575# CONFIG_CRYPTO_RMD256 is not set
1576# CONFIG_CRYPTO_RMD320 is not set
1377# CONFIG_CRYPTO_SHA1 is not set 1577# CONFIG_CRYPTO_SHA1 is not set
1378# CONFIG_CRYPTO_SHA256 is not set 1578# CONFIG_CRYPTO_SHA256 is not set
1379# CONFIG_CRYPTO_SHA512 is not set 1579# CONFIG_CRYPTO_SHA512 is not set
@@ -1403,8 +1603,15 @@ CONFIG_CRYPTO=y
1403# Compression 1603# Compression
1404# 1604#
1405# CONFIG_CRYPTO_DEFLATE is not set 1605# CONFIG_CRYPTO_DEFLATE is not set
1606# CONFIG_CRYPTO_ZLIB is not set
1406# CONFIG_CRYPTO_LZO is not set 1607# CONFIG_CRYPTO_LZO is not set
1608
1609#
1610# Random Number Generation
1611#
1612# CONFIG_CRYPTO_ANSI_CPRNG is not set
1407CONFIG_CRYPTO_HW=y 1613CONFIG_CRYPTO_HW=y
1408# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1614# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1615# CONFIG_CRYPTO_DEV_TALITOS is not set
1409# CONFIG_PPC_CLOCK is not set 1616# CONFIG_PPC_CLOCK is not set
1410# CONFIG_VIRTUALIZATION is not set 1617# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index eb4ba7a5f41f..bd1bfcddbd0c 100644
--- a/arch/powerpc/configs/85xx/stx_gp3_defconfig
+++ b/arch/powerpc/configs/85xx/stx_gp3_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:18 2009 4# Wed May 13 17:22:22 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
@@ -90,21 +101,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 103CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 111CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 112CONFIG_KALLSYMS=y
98# CONFIG_KALLSYMS_ALL is not set 113# CONFIG_KALLSYMS_ALL is not set
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 114# CONFIG_KALLSYMS_EXTRA_PASS is not set
115# CONFIG_STRIP_ASM_SYMS is not set
100CONFIG_HOTPLUG=y 116CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 117CONFIG_PRINTK=y
102CONFIG_BUG=y 118CONFIG_BUG=y
103CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 121CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 122CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
@@ -114,10 +128,12 @@ CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 128CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y 129CONFIG_PCI_QUIRKS=y
116CONFIG_SLUB_DEBUG=y 130CONFIG_SLUB_DEBUG=y
131CONFIG_COMPAT_BRK=y
117# CONFIG_SLAB is not set 132# CONFIG_SLAB is not set
118CONFIG_SLUB=y 133CONFIG_SLUB=y
119# CONFIG_SLOB is not set 134# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 135# CONFIG_PROFILING is not set
136# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 137CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 138# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 139CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,6 +142,7 @@ CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 142CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 143CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_CLK=y 144CONFIG_HAVE_CLK=y
145# CONFIG_SLOW_WORK is not set
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 147CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 148CONFIG_RT_MUTEXES=y
@@ -137,7 +154,6 @@ CONFIG_MODVERSIONS=y
137# CONFIG_MODULE_SRCVERSION_ALL is not set 154# CONFIG_MODULE_SRCVERSION_ALL is not set
138CONFIG_BLOCK=y 155CONFIG_BLOCK=y
139# CONFIG_LBD is not set 156# CONFIG_LBD is not set
140# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_BLK_DEV_BSG is not set 157# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set 158# CONFIG_BLK_DEV_INTEGRITY is not set
143 159
@@ -153,11 +169,6 @@ CONFIG_IOSCHED_CFQ=y
153CONFIG_DEFAULT_CFQ=y 169CONFIG_DEFAULT_CFQ=y
154# CONFIG_DEFAULT_NOOP is not set 170# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="cfq" 171CONFIG_DEFAULT_IOSCHED="cfq"
156CONFIG_CLASSIC_RCU=y
157# CONFIG_TREE_RCU is not set
158# CONFIG_PREEMPT_RCU is not set
159# CONFIG_TREE_RCU_TRACE is not set
160# CONFIG_PREEMPT_RCU_TRACE is not set
161# CONFIG_FREEZER is not set 172# CONFIG_FREEZER is not set
162 173
163# 174#
@@ -173,6 +184,7 @@ CONFIG_MPC85xx=y
173# CONFIG_MPC85xx_MDS is not set 184# CONFIG_MPC85xx_MDS is not set
174# CONFIG_MPC8536_DS is not set 185# CONFIG_MPC8536_DS is not set
175# CONFIG_MPC85xx_DS is not set 186# CONFIG_MPC85xx_DS is not set
187# CONFIG_SOCRATES is not set
176# CONFIG_KSI8560 is not set 188# CONFIG_KSI8560 is not set
177CONFIG_STX_GP3=y 189CONFIG_STX_GP3=y
178# CONFIG_TQM8540 is not set 190# CONFIG_TQM8540 is not set
@@ -241,9 +253,12 @@ CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 253CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 254CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 255CONFIG_UNEVICTABLE_LRU=y
256CONFIG_HAVE_MLOCK=y
257CONFIG_HAVE_MLOCKED_PAGE_BIT=y
244CONFIG_PPC_4K_PAGES=y 258CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set 259# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set 260# CONFIG_PPC_64K_PAGES is not set
261# CONFIG_PPC_256K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=11 262CONFIG_FORCE_MAX_ZONEORDER=11
248CONFIG_PROC_DEVICETREE=y 263CONFIG_PROC_DEVICETREE=y
249# CONFIG_CMDLINE_BOOL is not set 264# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +284,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
269# CONFIG_PCI_LEGACY is not set 284# CONFIG_PCI_LEGACY is not set
270# CONFIG_PCI_DEBUG is not set 285# CONFIG_PCI_DEBUG is not set
271# CONFIG_PCI_STUB is not set 286# CONFIG_PCI_STUB is not set
287# CONFIG_PCI_IOV is not set
272# CONFIG_PCCARD is not set 288# CONFIG_PCCARD is not set
273# CONFIG_HOTPLUG_PCI is not set 289# CONFIG_HOTPLUG_PCI is not set
274# CONFIG_HAS_RAPIDIO is not set 290# CONFIG_HAS_RAPIDIO is not set
@@ -282,17 +298,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
282# Default settings for advanced configuration options are used 298# Default settings for advanced configuration options are used
283# 299#
284CONFIG_LOWMEM_SIZE=0x30000000 300CONFIG_LOWMEM_SIZE=0x30000000
301CONFIG_LOWMEM_CAM_NUM=3
285CONFIG_PAGE_OFFSET=0xc0000000 302CONFIG_PAGE_OFFSET=0xc0000000
286CONFIG_KERNEL_START=0xc0000000 303CONFIG_KERNEL_START=0xc0000000
287CONFIG_PHYSICAL_START=0x00000000 304CONFIG_PHYSICAL_START=0x00000000
288CONFIG_PHYSICAL_ALIGN=0x10000000 305CONFIG_PHYSICAL_ALIGN=0x04000000
289CONFIG_TASK_SIZE=0xc0000000 306CONFIG_TASK_SIZE=0xc0000000
290CONFIG_NET=y 307CONFIG_NET=y
291 308
292# 309#
293# Networking options 310# Networking options
294# 311#
295CONFIG_COMPAT_NET_DEV_OPS=y
296CONFIG_PACKET=y 312CONFIG_PACKET=y
297# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
298CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -353,6 +369,7 @@ CONFIG_NETFILTER_XTABLES=m
353# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 369# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
354# CONFIG_NETFILTER_XT_MATCH_ESP is not set 370# CONFIG_NETFILTER_XT_MATCH_ESP is not set
355# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 371# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
372# CONFIG_NETFILTER_XT_MATCH_HL is not set
356# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 373# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
357# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 374# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
358# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 375# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -389,6 +406,7 @@ CONFIG_IP_NF_FILTER=m
389# CONFIG_IP_NF_TARGET_LOG is not set 406# CONFIG_IP_NF_TARGET_LOG is not set
390# CONFIG_IP_NF_TARGET_ULOG is not set 407# CONFIG_IP_NF_TARGET_ULOG is not set
391# CONFIG_IP_NF_MANGLE is not set 408# CONFIG_IP_NF_MANGLE is not set
409# CONFIG_IP_NF_TARGET_TTL is not set
392# CONFIG_IP_NF_RAW is not set 410# CONFIG_IP_NF_RAW is not set
393# CONFIG_IP_NF_ARPTABLES is not set 411# CONFIG_IP_NF_ARPTABLES is not set
394# CONFIG_IP_DCCP is not set 412# CONFIG_IP_DCCP is not set
@@ -406,6 +424,7 @@ CONFIG_IP_NF_FILTER=m
406# CONFIG_LAPB is not set 424# CONFIG_LAPB is not set
407# CONFIG_ECONET is not set 425# CONFIG_ECONET is not set
408# CONFIG_WAN_ROUTER is not set 426# CONFIG_WAN_ROUTER is not set
427# CONFIG_PHONET is not set
409# CONFIG_NET_SCHED is not set 428# CONFIG_NET_SCHED is not set
410# CONFIG_DCB is not set 429# CONFIG_DCB is not set
411 430
@@ -418,7 +437,6 @@ CONFIG_NET_PKTGEN=y
418# CONFIG_IRDA is not set 437# CONFIG_IRDA is not set
419# CONFIG_BT is not set 438# CONFIG_BT is not set
420# CONFIG_AF_RXRPC is not set 439# CONFIG_AF_RXRPC is not set
421# CONFIG_PHONET is not set
422CONFIG_WIRELESS=y 440CONFIG_WIRELESS=y
423# CONFIG_CFG80211 is not set 441# CONFIG_CFG80211 is not set
424CONFIG_WIRELESS_OLD_REGULATORY=y 442CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -476,13 +494,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
476# CONFIG_BLK_DEV_HD is not set 494# CONFIG_BLK_DEV_HD is not set
477CONFIG_MISC_DEVICES=y 495CONFIG_MISC_DEVICES=y
478# CONFIG_PHANTOM is not set 496# CONFIG_PHANTOM is not set
479# CONFIG_EEPROM_93CX6 is not set
480# CONFIG_SGI_IOC4 is not set 497# CONFIG_SGI_IOC4 is not set
481# CONFIG_TIFM_CORE is not set 498# CONFIG_TIFM_CORE is not set
482# CONFIG_ICS932S401 is not set 499# CONFIG_ICS932S401 is not set
483# CONFIG_ENCLOSURE_SERVICES is not set 500# CONFIG_ENCLOSURE_SERVICES is not set
484# CONFIG_HP_ILO is not set 501# CONFIG_HP_ILO is not set
502# CONFIG_ISL29003 is not set
485# CONFIG_C2PORT is not set 503# CONFIG_C2PORT is not set
504
505#
506# EEPROM support
507#
508# CONFIG_EEPROM_AT24 is not set
509# CONFIG_EEPROM_LEGACY is not set
510# CONFIG_EEPROM_93CX6 is not set
486CONFIG_HAVE_IDE=y 511CONFIG_HAVE_IDE=y
487CONFIG_IDE=y 512CONFIG_IDE=y
488 513
@@ -591,9 +616,11 @@ CONFIG_SCSI_LOWLEVEL=y
591# CONFIG_MEGARAID_NEWGEN is not set 616# CONFIG_MEGARAID_NEWGEN is not set
592# CONFIG_MEGARAID_LEGACY is not set 617# CONFIG_MEGARAID_LEGACY is not set
593# CONFIG_MEGARAID_SAS is not set 618# CONFIG_MEGARAID_SAS is not set
619# CONFIG_SCSI_MPT2SAS is not set
594# CONFIG_SCSI_HPTIOP is not set 620# CONFIG_SCSI_HPTIOP is not set
595# CONFIG_SCSI_BUSLOGIC is not set 621# CONFIG_SCSI_BUSLOGIC is not set
596# CONFIG_LIBFC is not set 622# CONFIG_LIBFC is not set
623# CONFIG_LIBFCOE is not set
597# CONFIG_FCOE is not set 624# CONFIG_FCOE is not set
598# CONFIG_SCSI_DMX3191D is not set 625# CONFIG_SCSI_DMX3191D is not set
599# CONFIG_SCSI_EATA is not set 626# CONFIG_SCSI_EATA is not set
@@ -617,6 +644,7 @@ CONFIG_SCSI_LOWLEVEL=y
617# CONFIG_SCSI_DEBUG is not set 644# CONFIG_SCSI_DEBUG is not set
618# CONFIG_SCSI_SRP is not set 645# CONFIG_SCSI_SRP is not set
619# CONFIG_SCSI_DH is not set 646# CONFIG_SCSI_DH is not set
647# CONFIG_SCSI_OSD_INITIATOR is not set
620# CONFIG_ATA is not set 648# CONFIG_ATA is not set
621# CONFIG_MD is not set 649# CONFIG_MD is not set
622# CONFIG_FUSION is not set 650# CONFIG_FUSION is not set
@@ -633,6 +661,7 @@ CONFIG_SCSI_LOWLEVEL=y
633# CONFIG_I2O is not set 661# CONFIG_I2O is not set
634# CONFIG_MACINTOSH_DRIVERS is not set 662# CONFIG_MACINTOSH_DRIVERS is not set
635CONFIG_NETDEVICES=y 663CONFIG_NETDEVICES=y
664CONFIG_COMPAT_NET_DEV_OPS=y
636# CONFIG_DUMMY is not set 665# CONFIG_DUMMY is not set
637# CONFIG_BONDING is not set 666# CONFIG_BONDING is not set
638# CONFIG_MACVLAN is not set 667# CONFIG_MACVLAN is not set
@@ -666,6 +695,8 @@ CONFIG_NET_ETHERNET=y
666# CONFIG_SUNGEM is not set 695# CONFIG_SUNGEM is not set
667# CONFIG_CASSINI is not set 696# CONFIG_CASSINI is not set
668# CONFIG_NET_VENDOR_3COM is not set 697# CONFIG_NET_VENDOR_3COM is not set
698# CONFIG_ETHOC is not set
699# CONFIG_DNET is not set
669# CONFIG_NET_TULIP is not set 700# CONFIG_NET_TULIP is not set
670# CONFIG_HP100 is not set 701# CONFIG_HP100 is not set
671# CONFIG_IBM_NEW_EMAC_ZMII is not set 702# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -687,6 +718,7 @@ CONFIG_NETDEV_1000=y
687# CONFIG_E1000E is not set 718# CONFIG_E1000E is not set
688# CONFIG_IP1000 is not set 719# CONFIG_IP1000 is not set
689# CONFIG_IGB is not set 720# CONFIG_IGB is not set
721# CONFIG_IGBVF is not set
690# CONFIG_NS83820 is not set 722# CONFIG_NS83820 is not set
691# CONFIG_HAMACHI is not set 723# CONFIG_HAMACHI is not set
692# CONFIG_YELLOWFIN is not set 724# CONFIG_YELLOWFIN is not set
@@ -697,10 +729,12 @@ CONFIG_NETDEV_1000=y
697# CONFIG_VIA_VELOCITY is not set 729# CONFIG_VIA_VELOCITY is not set
698# CONFIG_TIGON3 is not set 730# CONFIG_TIGON3 is not set
699# CONFIG_BNX2 is not set 731# CONFIG_BNX2 is not set
732CONFIG_FSL_PQ_MDIO=y
700CONFIG_GIANFAR=y 733CONFIG_GIANFAR=y
701# CONFIG_QLA3XXX is not set 734# CONFIG_QLA3XXX is not set
702# CONFIG_ATL1 is not set 735# CONFIG_ATL1 is not set
703# CONFIG_ATL1E is not set 736# CONFIG_ATL1E is not set
737# CONFIG_ATL1C is not set
704# CONFIG_JME is not set 738# CONFIG_JME is not set
705CONFIG_NETDEV_10000=y 739CONFIG_NETDEV_10000=y
706# CONFIG_CHELSIO_T1 is not set 740# CONFIG_CHELSIO_T1 is not set
@@ -710,6 +744,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
710# CONFIG_IXGBE is not set 744# CONFIG_IXGBE is not set
711# CONFIG_IXGB is not set 745# CONFIG_IXGB is not set
712# CONFIG_S2IO is not set 746# CONFIG_S2IO is not set
747# CONFIG_VXGE is not set
713# CONFIG_MYRI10GE is not set 748# CONFIG_MYRI10GE is not set
714# CONFIG_NETXEN_NIC is not set 749# CONFIG_NETXEN_NIC is not set
715# CONFIG_NIU is not set 750# CONFIG_NIU is not set
@@ -719,6 +754,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
719# CONFIG_BNX2X is not set 754# CONFIG_BNX2X is not set
720# CONFIG_QLGE is not set 755# CONFIG_QLGE is not set
721# CONFIG_SFC is not set 756# CONFIG_SFC is not set
757# CONFIG_BE2NET is not set
722# CONFIG_TR is not set 758# CONFIG_TR is not set
723 759
724# 760#
@@ -726,7 +762,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
726# 762#
727# CONFIG_WLAN_PRE80211 is not set 763# CONFIG_WLAN_PRE80211 is not set
728# CONFIG_WLAN_80211 is not set 764# CONFIG_WLAN_80211 is not set
729# CONFIG_IWLWIFI_LEDS is not set
730 765
731# 766#
732# Enable WiMAX (Networking options) to see the WiMAX drivers 767# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -778,7 +813,6 @@ CONFIG_MOUSE_PS2=y
778CONFIG_MOUSE_PS2_ALPS=y 813CONFIG_MOUSE_PS2_ALPS=y
779CONFIG_MOUSE_PS2_LOGIPS2PP=y 814CONFIG_MOUSE_PS2_LOGIPS2PP=y
780CONFIG_MOUSE_PS2_SYNAPTICS=y 815CONFIG_MOUSE_PS2_SYNAPTICS=y
781CONFIG_MOUSE_PS2_LIFEBOOK=y
782CONFIG_MOUSE_PS2_TRACKPOINT=y 816CONFIG_MOUSE_PS2_TRACKPOINT=y
783# CONFIG_MOUSE_PS2_ELANTECH is not set 817# CONFIG_MOUSE_PS2_ELANTECH is not set
784# CONFIG_MOUSE_PS2_TOUCHKIT is not set 818# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -837,6 +871,7 @@ CONFIG_PRINTER=m
837# CONFIG_HVC_UDBG is not set 871# CONFIG_HVC_UDBG is not set
838# CONFIG_IPMI_HANDLER is not set 872# CONFIG_IPMI_HANDLER is not set
839CONFIG_HW_RANDOM=m 873CONFIG_HW_RANDOM=m
874# CONFIG_HW_RANDOM_TIMERIOMEM is not set
840# CONFIG_NVRAM is not set 875# CONFIG_NVRAM is not set
841# CONFIG_GEN_RTC is not set 876# CONFIG_GEN_RTC is not set
842# CONFIG_R3964 is not set 877# CONFIG_R3964 is not set
@@ -903,12 +938,9 @@ CONFIG_I2C_ALGOBIT=m
903# Miscellaneous I2C Chip support 938# Miscellaneous I2C Chip support
904# 939#
905# CONFIG_DS1682 is not set 940# CONFIG_DS1682 is not set
906# CONFIG_EEPROM_AT24 is not set
907# CONFIG_EEPROM_LEGACY is not set
908# CONFIG_SENSORS_PCF8574 is not set 941# CONFIG_SENSORS_PCF8574 is not set
909# CONFIG_PCF8575 is not set 942# CONFIG_PCF8575 is not set
910# CONFIG_SENSORS_PCA9539 is not set 943# CONFIG_SENSORS_PCA9539 is not set
911# CONFIG_SENSORS_PCF8591 is not set
912# CONFIG_SENSORS_MAX6875 is not set 944# CONFIG_SENSORS_MAX6875 is not set
913# CONFIG_SENSORS_TSL2550 is not set 945# CONFIG_SENSORS_TSL2550 is not set
914# CONFIG_I2C_DEBUG_CORE is not set 946# CONFIG_I2C_DEBUG_CORE is not set
@@ -964,6 +996,7 @@ CONFIG_HWMON=y
964# CONFIG_SENSORS_F71805F is not set 996# CONFIG_SENSORS_F71805F is not set
965# CONFIG_SENSORS_F71882FG is not set 997# CONFIG_SENSORS_F71882FG is not set
966# CONFIG_SENSORS_F75375S is not set 998# CONFIG_SENSORS_F75375S is not set
999# CONFIG_SENSORS_G760A is not set
967# CONFIG_SENSORS_GL518SM is not set 1000# CONFIG_SENSORS_GL518SM is not set
968# CONFIG_SENSORS_GL520SM is not set 1001# CONFIG_SENSORS_GL520SM is not set
969# CONFIG_SENSORS_IT87 is not set 1002# CONFIG_SENSORS_IT87 is not set
@@ -978,11 +1011,15 @@ CONFIG_HWMON=y
978# CONFIG_SENSORS_LM90 is not set 1011# CONFIG_SENSORS_LM90 is not set
979# CONFIG_SENSORS_LM92 is not set 1012# CONFIG_SENSORS_LM92 is not set
980# CONFIG_SENSORS_LM93 is not set 1013# CONFIG_SENSORS_LM93 is not set
1014# CONFIG_SENSORS_LTC4215 is not set
981# CONFIG_SENSORS_LTC4245 is not set 1015# CONFIG_SENSORS_LTC4245 is not set
1016# CONFIG_SENSORS_LM95241 is not set
982# CONFIG_SENSORS_MAX1619 is not set 1017# CONFIG_SENSORS_MAX1619 is not set
983# CONFIG_SENSORS_MAX6650 is not set 1018# CONFIG_SENSORS_MAX6650 is not set
984# CONFIG_SENSORS_PC87360 is not set 1019# CONFIG_SENSORS_PC87360 is not set
985# CONFIG_SENSORS_PC87427 is not set 1020# CONFIG_SENSORS_PC87427 is not set
1021# CONFIG_SENSORS_PCF8591 is not set
1022# CONFIG_SENSORS_SHT15 is not set
986# CONFIG_SENSORS_SIS5595 is not set 1023# CONFIG_SENSORS_SIS5595 is not set
987# CONFIG_SENSORS_DME1737 is not set 1024# CONFIG_SENSORS_DME1737 is not set
988# CONFIG_SENSORS_SMSC47M1 is not set 1025# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1075,7 +1112,6 @@ CONFIG_HID=y
1075# 1112#
1076# Special HID drivers 1113# Special HID drivers
1077# 1114#
1078CONFIG_HID_COMPAT=y
1079CONFIG_USB_SUPPORT=y 1115CONFIG_USB_SUPPORT=y
1080CONFIG_USB_ARCH_HAS_HCD=y 1116CONFIG_USB_ARCH_HAS_HCD=y
1081CONFIG_USB_ARCH_HAS_OHCI=y 1117CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1089,7 +1125,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1089# 1125#
1090 1126
1091# 1127#
1092# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1128# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1093# 1129#
1094# CONFIG_USB_GADGET is not set 1130# CONFIG_USB_GADGET is not set
1095 1131
@@ -1116,6 +1152,7 @@ CONFIG_EXT2_FS=y
1116# CONFIG_EXT2_FS_XATTR is not set 1152# CONFIG_EXT2_FS_XATTR is not set
1117# CONFIG_EXT2_FS_XIP is not set 1153# CONFIG_EXT2_FS_XIP is not set
1118CONFIG_EXT3_FS=y 1154CONFIG_EXT3_FS=y
1155# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1119CONFIG_EXT3_FS_XATTR=y 1156CONFIG_EXT3_FS_XATTR=y
1120# CONFIG_EXT3_FS_POSIX_ACL is not set 1157# CONFIG_EXT3_FS_POSIX_ACL is not set
1121# CONFIG_EXT3_FS_SECURITY is not set 1158# CONFIG_EXT3_FS_SECURITY is not set
@@ -1138,6 +1175,11 @@ CONFIG_AUTOFS4_FS=y
1138# CONFIG_FUSE_FS is not set 1175# CONFIG_FUSE_FS is not set
1139 1176
1140# 1177#
1178# Caches
1179#
1180# CONFIG_FSCACHE is not set
1181
1182#
1141# CD-ROM/DVD Filesystems 1183# CD-ROM/DVD Filesystems
1142# 1184#
1143CONFIG_ISO9660_FS=m 1185CONFIG_ISO9660_FS=m
@@ -1186,6 +1228,7 @@ CONFIG_CRAMFS=m
1186# CONFIG_ROMFS_FS is not set 1228# CONFIG_ROMFS_FS is not set
1187# CONFIG_SYSV_FS is not set 1229# CONFIG_SYSV_FS is not set
1188# CONFIG_UFS_FS is not set 1230# CONFIG_UFS_FS is not set
1231# CONFIG_NILFS2_FS is not set
1189CONFIG_NETWORK_FILESYSTEMS=y 1232CONFIG_NETWORK_FILESYSTEMS=y
1190CONFIG_NFS_FS=y 1233CONFIG_NFS_FS=y
1191CONFIG_NFS_V3=y 1234CONFIG_NFS_V3=y
@@ -1197,7 +1240,6 @@ CONFIG_LOCKD=y
1197CONFIG_LOCKD_V4=y 1240CONFIG_LOCKD_V4=y
1198CONFIG_NFS_COMMON=y 1241CONFIG_NFS_COMMON=y
1199CONFIG_SUNRPC=y 1242CONFIG_SUNRPC=y
1200# CONFIG_SUNRPC_REGISTER_V4 is not set
1201# CONFIG_RPCSEC_GSS_KRB5 is not set 1243# CONFIG_RPCSEC_GSS_KRB5 is not set
1202# CONFIG_RPCSEC_GSS_SPKM3 is not set 1244# CONFIG_RPCSEC_GSS_SPKM3 is not set
1203CONFIG_SMB_FS=m 1245CONFIG_SMB_FS=m
@@ -1253,6 +1295,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1253# CONFIG_NLS_KOI8_U is not set 1295# CONFIG_NLS_KOI8_U is not set
1254# CONFIG_NLS_UTF8 is not set 1296# CONFIG_NLS_UTF8 is not set
1255# CONFIG_DLM is not set 1297# CONFIG_DLM is not set
1298# CONFIG_BINARY_PRINTF is not set
1256 1299
1257# 1300#
1258# Library routines 1301# Library routines
@@ -1266,12 +1309,13 @@ CONFIG_CRC_ITU_T=m
1266CONFIG_CRC32=y 1309CONFIG_CRC32=y
1267# CONFIG_CRC7 is not set 1310# CONFIG_CRC7 is not set
1268# CONFIG_LIBCRC32C is not set 1311# CONFIG_LIBCRC32C is not set
1269CONFIG_ZLIB_INFLATE=m 1312CONFIG_ZLIB_INFLATE=y
1270CONFIG_PLIST=y 1313CONFIG_DECOMPRESS_GZIP=y
1271CONFIG_HAS_IOMEM=y 1314CONFIG_HAS_IOMEM=y
1272CONFIG_HAS_IOPORT=y 1315CONFIG_HAS_IOPORT=y
1273CONFIG_HAS_DMA=y 1316CONFIG_HAS_DMA=y
1274CONFIG_HAVE_LMB=y 1317CONFIG_HAVE_LMB=y
1318CONFIG_NLATTR=y
1275 1319
1276# 1320#
1277# Kernel hacking 1321# Kernel hacking
@@ -1289,6 +1333,9 @@ CONFIG_DEBUG_KERNEL=y
1289CONFIG_DETECT_SOFTLOCKUP=y 1333CONFIG_DETECT_SOFTLOCKUP=y
1290# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1334# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1291CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1335CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1336CONFIG_DETECT_HUNG_TASK=y
1337# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1338CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1292CONFIG_SCHED_DEBUG=y 1339CONFIG_SCHED_DEBUG=y
1293# CONFIG_SCHEDSTATS is not set 1340# CONFIG_SCHEDSTATS is not set
1294# CONFIG_TIMER_STATS is not set 1341# CONFIG_TIMER_STATS is not set
@@ -1319,9 +1366,12 @@ CONFIG_SCHED_DEBUG=y
1319# CONFIG_FAULT_INJECTION is not set 1366# CONFIG_FAULT_INJECTION is not set
1320# CONFIG_LATENCYTOP is not set 1367# CONFIG_LATENCYTOP is not set
1321CONFIG_SYSCTL_SYSCALL_CHECK=y 1368CONFIG_SYSCTL_SYSCALL_CHECK=y
1369# CONFIG_DEBUG_PAGEALLOC is not set
1322CONFIG_HAVE_FUNCTION_TRACER=y 1370CONFIG_HAVE_FUNCTION_TRACER=y
1371CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1323CONFIG_HAVE_DYNAMIC_FTRACE=y 1372CONFIG_HAVE_DYNAMIC_FTRACE=y
1324CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1373CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1374CONFIG_TRACING_SUPPORT=y
1325 1375
1326# 1376#
1327# Tracers 1377# Tracers
@@ -1329,17 +1379,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1329# CONFIG_FUNCTION_TRACER is not set 1379# CONFIG_FUNCTION_TRACER is not set
1330# CONFIG_SCHED_TRACER is not set 1380# CONFIG_SCHED_TRACER is not set
1331# CONFIG_CONTEXT_SWITCH_TRACER is not set 1381# CONFIG_CONTEXT_SWITCH_TRACER is not set
1382# CONFIG_EVENT_TRACER is not set
1332# CONFIG_BOOT_TRACER is not set 1383# CONFIG_BOOT_TRACER is not set
1333# CONFIG_TRACE_BRANCH_PROFILING is not set 1384# CONFIG_TRACE_BRANCH_PROFILING is not set
1334# CONFIG_STACK_TRACER is not set 1385# CONFIG_STACK_TRACER is not set
1335# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1386# CONFIG_KMEMTRACE is not set
1387# CONFIG_WORKQUEUE_TRACER is not set
1388# CONFIG_BLK_DEV_IO_TRACE is not set
1336# CONFIG_SAMPLES is not set 1389# CONFIG_SAMPLES is not set
1337CONFIG_HAVE_ARCH_KGDB=y 1390CONFIG_HAVE_ARCH_KGDB=y
1338# CONFIG_KGDB is not set 1391# CONFIG_KGDB is not set
1339CONFIG_PRINT_STACK_DEPTH=64 1392CONFIG_PRINT_STACK_DEPTH=64
1340# CONFIG_DEBUG_STACKOVERFLOW is not set 1393# CONFIG_DEBUG_STACKOVERFLOW is not set
1341# CONFIG_DEBUG_STACK_USAGE is not set 1394# CONFIG_DEBUG_STACK_USAGE is not set
1342# CONFIG_DEBUG_PAGEALLOC is not set
1343# CONFIG_CODE_PATCHING_SELFTEST is not set 1395# CONFIG_CODE_PATCHING_SELFTEST is not set
1344# CONFIG_FTR_FIXUP_SELFTEST is not set 1396# CONFIG_FTR_FIXUP_SELFTEST is not set
1345# CONFIG_MSI_BITMAP_SELFTEST is not set 1397# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1433,6 +1485,7 @@ CONFIG_CRYPTO=y
1433# Compression 1485# Compression
1434# 1486#
1435# CONFIG_CRYPTO_DEFLATE is not set 1487# CONFIG_CRYPTO_DEFLATE is not set
1488# CONFIG_CRYPTO_ZLIB is not set
1436# CONFIG_CRYPTO_LZO is not set 1489# CONFIG_CRYPTO_LZO is not set
1437 1490
1438# 1491#
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index f4379b1cf841..767600145fb2 100644
--- a/arch/powerpc/configs/85xx/tqm8540_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8540_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:19 2009 4# Wed May 13 17:22:23 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,19 +100,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96# CONFIG_KALLSYMS is not set 111# CONFIG_KALLSYMS is not set
112# CONFIG_STRIP_ASM_SYMS is not set
97# CONFIG_HOTPLUG is not set 113# CONFIG_HOTPLUG is not set
98CONFIG_PRINTK=y 114CONFIG_PRINTK=y
99CONFIG_BUG=y 115CONFIG_BUG=y
100CONFIG_ELF_CORE=y 116CONFIG_ELF_CORE=y
101CONFIG_COMPAT_BRK=y
102CONFIG_BASE_FULL=y 117CONFIG_BASE_FULL=y
103CONFIG_FUTEX=y 118CONFIG_FUTEX=y
104CONFIG_ANON_INODES=y
105# CONFIG_EPOLL is not set 119# CONFIG_EPOLL is not set
106CONFIG_SIGNALFD=y 120CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y 121CONFIG_TIMERFD=y
@@ -111,16 +125,19 @@ CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 125CONFIG_VM_EVENT_COUNTERS=y
112CONFIG_PCI_QUIRKS=y 126CONFIG_PCI_QUIRKS=y
113CONFIG_SLUB_DEBUG=y 127CONFIG_SLUB_DEBUG=y
128CONFIG_COMPAT_BRK=y
114# CONFIG_SLAB is not set 129# CONFIG_SLAB is not set
115CONFIG_SLUB=y 130CONFIG_SLUB=y
116# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
133# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 135CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 136CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 137CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 138CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 139CONFIG_HAVE_ARCH_TRACEHOOK=y
140# CONFIG_SLOW_WORK is not set
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 141# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 142CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 143CONFIG_RT_MUTEXES=y
@@ -128,7 +145,6 @@ CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 145# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 146CONFIG_BLOCK=y
130# CONFIG_LBD is not set 147# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set 149# CONFIG_BLK_DEV_INTEGRITY is not set
134 150
@@ -144,11 +160,6 @@ CONFIG_DEFAULT_AS=y
144# CONFIG_DEFAULT_CFQ is not set 160# CONFIG_DEFAULT_CFQ is not set
145# CONFIG_DEFAULT_NOOP is not set 161# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
147CONFIG_CLASSIC_RCU=y
148# CONFIG_TREE_RCU is not set
149# CONFIG_PREEMPT_RCU is not set
150# CONFIG_TREE_RCU_TRACE is not set
151# CONFIG_PREEMPT_RCU_TRACE is not set
152# CONFIG_FREEZER is not set 163# CONFIG_FREEZER is not set
153 164
154# 165#
@@ -164,6 +175,7 @@ CONFIG_MPC85xx=y
164# CONFIG_MPC85xx_MDS is not set 175# CONFIG_MPC85xx_MDS is not set
165# CONFIG_MPC8536_DS is not set 176# CONFIG_MPC8536_DS is not set
166# CONFIG_MPC85xx_DS is not set 177# CONFIG_MPC85xx_DS is not set
178# CONFIG_SOCRATES is not set
167# CONFIG_KSI8560 is not set 179# CONFIG_KSI8560 is not set
168# CONFIG_STX_GP3 is not set 180# CONFIG_STX_GP3 is not set
169CONFIG_TQM8540=y 181CONFIG_TQM8540=y
@@ -232,9 +244,12 @@ CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_HAVE_MLOCK=y
248CONFIG_HAVE_MLOCKED_PAGE_BIT=y
235CONFIG_PPC_4K_PAGES=y 249CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set 250# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set 251# CONFIG_PPC_64K_PAGES is not set
252# CONFIG_PPC_256K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 253CONFIG_FORCE_MAX_ZONEORDER=11
239# CONFIG_PROC_DEVICETREE is not set 254# CONFIG_PROC_DEVICETREE is not set
240# CONFIG_CMDLINE_BOOL is not set 255# CONFIG_CMDLINE_BOOL is not set
@@ -259,6 +274,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
259# CONFIG_PCI_MSI is not set 274# CONFIG_PCI_MSI is not set
260# CONFIG_PCI_LEGACY is not set 275# CONFIG_PCI_LEGACY is not set
261# CONFIG_PCI_STUB is not set 276# CONFIG_PCI_STUB is not set
277# CONFIG_PCI_IOV is not set
262# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
263 279
264# 280#
@@ -270,17 +286,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
270# Default settings for advanced configuration options are used 286# Default settings for advanced configuration options are used
271# 287#
272CONFIG_LOWMEM_SIZE=0x30000000 288CONFIG_LOWMEM_SIZE=0x30000000
289CONFIG_LOWMEM_CAM_NUM=3
273CONFIG_PAGE_OFFSET=0xc0000000 290CONFIG_PAGE_OFFSET=0xc0000000
274CONFIG_KERNEL_START=0xc0000000 291CONFIG_KERNEL_START=0xc0000000
275CONFIG_PHYSICAL_START=0x00000000 292CONFIG_PHYSICAL_START=0x00000000
276CONFIG_PHYSICAL_ALIGN=0x10000000 293CONFIG_PHYSICAL_ALIGN=0x04000000
277CONFIG_TASK_SIZE=0xc0000000 294CONFIG_TASK_SIZE=0xc0000000
278CONFIG_NET=y 295CONFIG_NET=y
279 296
280# 297#
281# Networking options 298# Networking options
282# 299#
283CONFIG_COMPAT_NET_DEV_OPS=y
284CONFIG_PACKET=y 300CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set 301# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y 302CONFIG_UNIX=y
@@ -336,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_LAPB is not set 352# CONFIG_LAPB is not set
337# CONFIG_ECONET is not set 353# CONFIG_ECONET is not set
338# CONFIG_WAN_ROUTER is not set 354# CONFIG_WAN_ROUTER is not set
355# CONFIG_PHONET is not set
339# CONFIG_NET_SCHED is not set 356# CONFIG_NET_SCHED is not set
340# CONFIG_DCB is not set 357# CONFIG_DCB is not set
341 358
@@ -348,7 +365,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_IRDA is not set 365# CONFIG_IRDA is not set
349# CONFIG_BT is not set 366# CONFIG_BT is not set
350# CONFIG_AF_RXRPC is not set 367# CONFIG_AF_RXRPC is not set
351# CONFIG_PHONET is not set
352CONFIG_WIRELESS=y 368CONFIG_WIRELESS=y
353# CONFIG_CFG80211 is not set 369# CONFIG_CFG80211 is not set
354CONFIG_WIRELESS_OLD_REGULATORY=y 370CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -448,7 +464,6 @@ CONFIG_MTD_CFI_UTIL=y
448# LPDDR flash memory drivers 464# LPDDR flash memory drivers
449# 465#
450# CONFIG_MTD_LPDDR is not set 466# CONFIG_MTD_LPDDR is not set
451# CONFIG_MTD_QINFO_PROBE is not set
452 467
453# 468#
454# UBI - Unsorted block images 469# UBI - Unsorted block images
@@ -477,19 +492,27 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
477# CONFIG_BLK_DEV_HD is not set 492# CONFIG_BLK_DEV_HD is not set
478CONFIG_MISC_DEVICES=y 493CONFIG_MISC_DEVICES=y
479# CONFIG_PHANTOM is not set 494# CONFIG_PHANTOM is not set
480# CONFIG_EEPROM_93CX6 is not set
481# CONFIG_SGI_IOC4 is not set 495# CONFIG_SGI_IOC4 is not set
482# CONFIG_TIFM_CORE is not set 496# CONFIG_TIFM_CORE is not set
483# CONFIG_ICS932S401 is not set 497# CONFIG_ICS932S401 is not set
484# CONFIG_ENCLOSURE_SERVICES is not set 498# CONFIG_ENCLOSURE_SERVICES is not set
485# CONFIG_HP_ILO is not set 499# CONFIG_HP_ILO is not set
500# CONFIG_ISL29003 is not set
486# CONFIG_C2PORT is not set 501# CONFIG_C2PORT is not set
502
503#
504# EEPROM support
505#
506# CONFIG_EEPROM_AT24 is not set
507# CONFIG_EEPROM_LEGACY is not set
508# CONFIG_EEPROM_93CX6 is not set
487CONFIG_HAVE_IDE=y 509CONFIG_HAVE_IDE=y
488CONFIG_IDE=y 510CONFIG_IDE=y
489 511
490# 512#
491# Please see Documentation/ide/ide.txt for help/info on IDE drives 513# Please see Documentation/ide/ide.txt for help/info on IDE drives
492# 514#
515CONFIG_IDE_XFER_MODE=y
493CONFIG_IDE_TIMINGS=y 516CONFIG_IDE_TIMINGS=y
494# CONFIG_BLK_DEV_IDE_SATA is not set 517# CONFIG_BLK_DEV_IDE_SATA is not set
495CONFIG_IDE_GD=y 518CONFIG_IDE_GD=y
@@ -564,6 +587,7 @@ CONFIG_BLK_DEV_IDEDMA=y
564# CONFIG_I2O is not set 587# CONFIG_I2O is not set
565# CONFIG_MACINTOSH_DRIVERS is not set 588# CONFIG_MACINTOSH_DRIVERS is not set
566CONFIG_NETDEVICES=y 589CONFIG_NETDEVICES=y
590CONFIG_COMPAT_NET_DEV_OPS=y
567# CONFIG_DUMMY is not set 591# CONFIG_DUMMY is not set
568# CONFIG_BONDING is not set 592# CONFIG_BONDING is not set
569# CONFIG_MACVLAN is not set 593# CONFIG_MACVLAN is not set
@@ -597,6 +621,8 @@ CONFIG_MII=y
597# CONFIG_SUNGEM is not set 621# CONFIG_SUNGEM is not set
598# CONFIG_CASSINI is not set 622# CONFIG_CASSINI is not set
599# CONFIG_NET_VENDOR_3COM is not set 623# CONFIG_NET_VENDOR_3COM is not set
624# CONFIG_ETHOC is not set
625# CONFIG_DNET is not set
600# CONFIG_NET_TULIP is not set 626# CONFIG_NET_TULIP is not set
601# CONFIG_HP100 is not set 627# CONFIG_HP100 is not set
602# CONFIG_IBM_NEW_EMAC_ZMII is not set 628# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -634,6 +660,7 @@ CONFIG_NETDEV_1000=y
634# CONFIG_E1000E is not set 660# CONFIG_E1000E is not set
635# CONFIG_IP1000 is not set 661# CONFIG_IP1000 is not set
636# CONFIG_IGB is not set 662# CONFIG_IGB is not set
663# CONFIG_IGBVF is not set
637# CONFIG_NS83820 is not set 664# CONFIG_NS83820 is not set
638# CONFIG_HAMACHI is not set 665# CONFIG_HAMACHI is not set
639# CONFIG_YELLOWFIN is not set 666# CONFIG_YELLOWFIN is not set
@@ -644,10 +671,12 @@ CONFIG_NETDEV_1000=y
644# CONFIG_VIA_VELOCITY is not set 671# CONFIG_VIA_VELOCITY is not set
645# CONFIG_TIGON3 is not set 672# CONFIG_TIGON3 is not set
646# CONFIG_BNX2 is not set 673# CONFIG_BNX2 is not set
674CONFIG_FSL_PQ_MDIO=y
647CONFIG_GIANFAR=y 675CONFIG_GIANFAR=y
648# CONFIG_QLA3XXX is not set 676# CONFIG_QLA3XXX is not set
649# CONFIG_ATL1 is not set 677# CONFIG_ATL1 is not set
650# CONFIG_ATL1E is not set 678# CONFIG_ATL1E is not set
679# CONFIG_ATL1C is not set
651# CONFIG_JME is not set 680# CONFIG_JME is not set
652CONFIG_NETDEV_10000=y 681CONFIG_NETDEV_10000=y
653# CONFIG_CHELSIO_T1 is not set 682# CONFIG_CHELSIO_T1 is not set
@@ -657,6 +686,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
657# CONFIG_IXGBE is not set 686# CONFIG_IXGBE is not set
658# CONFIG_IXGB is not set 687# CONFIG_IXGB is not set
659# CONFIG_S2IO is not set 688# CONFIG_S2IO is not set
689# CONFIG_VXGE is not set
660# CONFIG_MYRI10GE is not set 690# CONFIG_MYRI10GE is not set
661# CONFIG_NETXEN_NIC is not set 691# CONFIG_NETXEN_NIC is not set
662# CONFIG_NIU is not set 692# CONFIG_NIU is not set
@@ -666,6 +696,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
666# CONFIG_BNX2X is not set 696# CONFIG_BNX2X is not set
667# CONFIG_QLGE is not set 697# CONFIG_QLGE is not set
668# CONFIG_SFC is not set 698# CONFIG_SFC is not set
699# CONFIG_BE2NET is not set
669# CONFIG_TR is not set 700# CONFIG_TR is not set
670 701
671# 702#
@@ -673,7 +704,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
673# 704#
674# CONFIG_WLAN_PRE80211 is not set 705# CONFIG_WLAN_PRE80211 is not set
675# CONFIG_WLAN_80211 is not set 706# CONFIG_WLAN_80211 is not set
676# CONFIG_IWLWIFI_LEDS is not set
677 707
678# 708#
679# Enable WiMAX (Networking options) to see the WiMAX drivers 709# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -754,6 +784,7 @@ CONFIG_LEGACY_PTY_COUNT=256
754# CONFIG_HVC_UDBG is not set 784# CONFIG_HVC_UDBG is not set
755# CONFIG_IPMI_HANDLER is not set 785# CONFIG_IPMI_HANDLER is not set
756CONFIG_HW_RANDOM=y 786CONFIG_HW_RANDOM=y
787# CONFIG_HW_RANDOM_TIMERIOMEM is not set
757# CONFIG_NVRAM is not set 788# CONFIG_NVRAM is not set
758CONFIG_GEN_RTC=y 789CONFIG_GEN_RTC=y
759# CONFIG_GEN_RTC_X is not set 790# CONFIG_GEN_RTC_X is not set
@@ -816,12 +847,9 @@ CONFIG_I2C_MPC=y
816# Miscellaneous I2C Chip support 847# Miscellaneous I2C Chip support
817# 848#
818# CONFIG_DS1682 is not set 849# CONFIG_DS1682 is not set
819# CONFIG_EEPROM_AT24 is not set
820# CONFIG_EEPROM_LEGACY is not set
821# CONFIG_SENSORS_PCF8574 is not set 850# CONFIG_SENSORS_PCF8574 is not set
822# CONFIG_PCF8575 is not set 851# CONFIG_PCF8575 is not set
823# CONFIG_SENSORS_PCA9539 is not set 852# CONFIG_SENSORS_PCA9539 is not set
824# CONFIG_SENSORS_PCF8591 is not set
825# CONFIG_SENSORS_MAX6875 is not set 853# CONFIG_SENSORS_MAX6875 is not set
826# CONFIG_SENSORS_TSL2550 is not set 854# CONFIG_SENSORS_TSL2550 is not set
827# CONFIG_I2C_DEBUG_CORE is not set 855# CONFIG_I2C_DEBUG_CORE is not set
@@ -853,6 +881,7 @@ CONFIG_HWMON=y
853# CONFIG_SENSORS_F71805F is not set 881# CONFIG_SENSORS_F71805F is not set
854# CONFIG_SENSORS_F71882FG is not set 882# CONFIG_SENSORS_F71882FG is not set
855# CONFIG_SENSORS_F75375S is not set 883# CONFIG_SENSORS_F75375S is not set
884# CONFIG_SENSORS_G760A is not set
856# CONFIG_SENSORS_GL518SM is not set 885# CONFIG_SENSORS_GL518SM is not set
857# CONFIG_SENSORS_GL520SM is not set 886# CONFIG_SENSORS_GL520SM is not set
858# CONFIG_SENSORS_IT87 is not set 887# CONFIG_SENSORS_IT87 is not set
@@ -867,11 +896,14 @@ CONFIG_SENSORS_LM75=y
867# CONFIG_SENSORS_LM90 is not set 896# CONFIG_SENSORS_LM90 is not set
868# CONFIG_SENSORS_LM92 is not set 897# CONFIG_SENSORS_LM92 is not set
869# CONFIG_SENSORS_LM93 is not set 898# CONFIG_SENSORS_LM93 is not set
899# CONFIG_SENSORS_LTC4215 is not set
870# CONFIG_SENSORS_LTC4245 is not set 900# CONFIG_SENSORS_LTC4245 is not set
901# CONFIG_SENSORS_LM95241 is not set
871# CONFIG_SENSORS_MAX1619 is not set 902# CONFIG_SENSORS_MAX1619 is not set
872# CONFIG_SENSORS_MAX6650 is not set 903# CONFIG_SENSORS_MAX6650 is not set
873# CONFIG_SENSORS_PC87360 is not set 904# CONFIG_SENSORS_PC87360 is not set
874# CONFIG_SENSORS_PC87427 is not set 905# CONFIG_SENSORS_PC87427 is not set
906# CONFIG_SENSORS_PCF8591 is not set
875# CONFIG_SENSORS_SIS5595 is not set 907# CONFIG_SENSORS_SIS5595 is not set
876# CONFIG_SENSORS_DME1737 is not set 908# CONFIG_SENSORS_DME1737 is not set
877# CONFIG_SENSORS_SMSC47M1 is not set 909# CONFIG_SENSORS_SMSC47M1 is not set
@@ -955,7 +987,6 @@ CONFIG_HID=y
955# 987#
956# Special HID drivers 988# Special HID drivers
957# 989#
958CONFIG_HID_COMPAT=y
959CONFIG_USB_SUPPORT=y 990CONFIG_USB_SUPPORT=y
960CONFIG_USB_ARCH_HAS_HCD=y 991CONFIG_USB_ARCH_HAS_HCD=y
961CONFIG_USB_ARCH_HAS_OHCI=y 992CONFIG_USB_ARCH_HAS_OHCI=y
@@ -969,7 +1000,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
969# 1000#
970 1001
971# 1002#
972# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1003# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
973# 1004#
974# CONFIG_USB_GADGET is not set 1005# CONFIG_USB_GADGET is not set
975 1006
@@ -985,6 +1016,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
985# CONFIG_EDAC is not set 1016# CONFIG_EDAC is not set
986# CONFIG_RTC_CLASS is not set 1017# CONFIG_RTC_CLASS is not set
987# CONFIG_DMADEVICES is not set 1018# CONFIG_DMADEVICES is not set
1019# CONFIG_AUXDISPLAY is not set
988# CONFIG_UIO is not set 1020# CONFIG_UIO is not set
989# CONFIG_STAGING is not set 1021# CONFIG_STAGING is not set
990 1022
@@ -995,6 +1027,7 @@ CONFIG_EXT2_FS=y
995# CONFIG_EXT2_FS_XATTR is not set 1027# CONFIG_EXT2_FS_XATTR is not set
996# CONFIG_EXT2_FS_XIP is not set 1028# CONFIG_EXT2_FS_XIP is not set
997CONFIG_EXT3_FS=y 1029CONFIG_EXT3_FS=y
1030# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
998CONFIG_EXT3_FS_XATTR=y 1031CONFIG_EXT3_FS_XATTR=y
999# CONFIG_EXT3_FS_POSIX_ACL is not set 1032# CONFIG_EXT3_FS_POSIX_ACL is not set
1000# CONFIG_EXT3_FS_SECURITY is not set 1033# CONFIG_EXT3_FS_SECURITY is not set
@@ -1017,6 +1050,11 @@ CONFIG_INOTIFY_USER=y
1017# CONFIG_FUSE_FS is not set 1050# CONFIG_FUSE_FS is not set
1018 1051
1019# 1052#
1053# Caches
1054#
1055# CONFIG_FSCACHE is not set
1056
1057#
1020# CD-ROM/DVD Filesystems 1058# CD-ROM/DVD Filesystems
1021# 1059#
1022# CONFIG_ISO9660_FS is not set 1060# CONFIG_ISO9660_FS is not set
@@ -1070,6 +1108,7 @@ CONFIG_CRAMFS=y
1070# CONFIG_ROMFS_FS is not set 1108# CONFIG_ROMFS_FS is not set
1071# CONFIG_SYSV_FS is not set 1109# CONFIG_SYSV_FS is not set
1072# CONFIG_UFS_FS is not set 1110# CONFIG_UFS_FS is not set
1111# CONFIG_NILFS2_FS is not set
1073CONFIG_NETWORK_FILESYSTEMS=y 1112CONFIG_NETWORK_FILESYSTEMS=y
1074CONFIG_NFS_FS=y 1113CONFIG_NFS_FS=y
1075# CONFIG_NFS_V3 is not set 1114# CONFIG_NFS_V3 is not set
@@ -1079,7 +1118,6 @@ CONFIG_ROOT_NFS=y
1079CONFIG_LOCKD=y 1118CONFIG_LOCKD=y
1080CONFIG_NFS_COMMON=y 1119CONFIG_NFS_COMMON=y
1081CONFIG_SUNRPC=y 1120CONFIG_SUNRPC=y
1082# CONFIG_SUNRPC_REGISTER_V4 is not set
1083# CONFIG_RPCSEC_GSS_KRB5 is not set 1121# CONFIG_RPCSEC_GSS_KRB5 is not set
1084# CONFIG_RPCSEC_GSS_SPKM3 is not set 1122# CONFIG_RPCSEC_GSS_SPKM3 is not set
1085# CONFIG_SMB_FS is not set 1123# CONFIG_SMB_FS is not set
@@ -1107,6 +1145,7 @@ CONFIG_PARTITION_ADVANCED=y
1107# CONFIG_SYSV68_PARTITION is not set 1145# CONFIG_SYSV68_PARTITION is not set
1108# CONFIG_NLS is not set 1146# CONFIG_NLS is not set
1109# CONFIG_DLM is not set 1147# CONFIG_DLM is not set
1148# CONFIG_BINARY_PRINTF is not set
1110 1149
1111# 1150#
1112# Library routines 1151# Library routines
@@ -1122,11 +1161,12 @@ CONFIG_CRC32=y
1122# CONFIG_LIBCRC32C is not set 1161# CONFIG_LIBCRC32C is not set
1123CONFIG_ZLIB_INFLATE=y 1162CONFIG_ZLIB_INFLATE=y
1124CONFIG_ZLIB_DEFLATE=y 1163CONFIG_ZLIB_DEFLATE=y
1125CONFIG_PLIST=y 1164CONFIG_DECOMPRESS_GZIP=y
1126CONFIG_HAS_IOMEM=y 1165CONFIG_HAS_IOMEM=y
1127CONFIG_HAS_IOPORT=y 1166CONFIG_HAS_IOPORT=y
1128CONFIG_HAS_DMA=y 1167CONFIG_HAS_DMA=y
1129CONFIG_HAVE_LMB=y 1168CONFIG_HAVE_LMB=y
1169CONFIG_NLATTR=y
1130 1170
1131# 1171#
1132# Kernel hacking 1172# Kernel hacking
@@ -1148,13 +1188,24 @@ CONFIG_FRAME_WARN=1024
1148# CONFIG_LATENCYTOP is not set 1188# CONFIG_LATENCYTOP is not set
1149CONFIG_SYSCTL_SYSCALL_CHECK=y 1189CONFIG_SYSCTL_SYSCALL_CHECK=y
1150CONFIG_HAVE_FUNCTION_TRACER=y 1190CONFIG_HAVE_FUNCTION_TRACER=y
1191CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1151CONFIG_HAVE_DYNAMIC_FTRACE=y 1192CONFIG_HAVE_DYNAMIC_FTRACE=y
1152CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1193CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1194CONFIG_TRACING_SUPPORT=y
1153 1195
1154# 1196#
1155# Tracers 1197# Tracers
1156# 1198#
1157# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1199# CONFIG_FUNCTION_TRACER is not set
1200# CONFIG_SCHED_TRACER is not set
1201# CONFIG_CONTEXT_SWITCH_TRACER is not set
1202# CONFIG_EVENT_TRACER is not set
1203# CONFIG_BOOT_TRACER is not set
1204# CONFIG_TRACE_BRANCH_PROFILING is not set
1205# CONFIG_STACK_TRACER is not set
1206# CONFIG_KMEMTRACE is not set
1207# CONFIG_WORKQUEUE_TRACER is not set
1208# CONFIG_BLK_DEV_IO_TRACE is not set
1158# CONFIG_SAMPLES is not set 1209# CONFIG_SAMPLES is not set
1159CONFIG_HAVE_ARCH_KGDB=y 1210CONFIG_HAVE_ARCH_KGDB=y
1160CONFIG_PRINT_STACK_DEPTH=64 1211CONFIG_PRINT_STACK_DEPTH=64
@@ -1245,6 +1296,7 @@ CONFIG_CRYPTO=y
1245# Compression 1296# Compression
1246# 1297#
1247# CONFIG_CRYPTO_DEFLATE is not set 1298# CONFIG_CRYPTO_DEFLATE is not set
1299# CONFIG_CRYPTO_ZLIB is not set
1248# CONFIG_CRYPTO_LZO is not set 1300# CONFIG_CRYPTO_LZO is not set
1249 1301
1250# 1302#
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index b8669231c1fe..52fafc006dd0 100644
--- a/arch/powerpc/configs/85xx/tqm8541_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8541_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:20 2009 4# Wed May 13 17:22:23 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
@@ -90,19 +101,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 103CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 111CONFIG_SYSCTL_SYSCALL=y
97# CONFIG_KALLSYMS is not set 112# CONFIG_KALLSYMS is not set
113# CONFIG_STRIP_ASM_SYMS is not set
98# CONFIG_HOTPLUG is not set 114# CONFIG_HOTPLUG is not set
99CONFIG_PRINTK=y 115CONFIG_PRINTK=y
100CONFIG_BUG=y 116CONFIG_BUG=y
101CONFIG_ELF_CORE=y 117CONFIG_ELF_CORE=y
102CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 118CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 119CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106# CONFIG_EPOLL is not set 120# CONFIG_EPOLL is not set
107CONFIG_SIGNALFD=y 121CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 122CONFIG_TIMERFD=y
@@ -112,10 +126,12 @@ CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 126CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 127CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 128CONFIG_SLUB_DEBUG=y
129CONFIG_COMPAT_BRK=y
115# CONFIG_SLAB is not set 130# CONFIG_SLAB is not set
116CONFIG_SLUB=y 131CONFIG_SLUB=y
117# CONFIG_SLOB is not set 132# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 133# CONFIG_PROFILING is not set
134# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y 137CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,6 +139,7 @@ CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
125CONFIG_HAVE_CLK=y 141CONFIG_HAVE_CLK=y
142# CONFIG_SLOW_WORK is not set
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 143# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 144CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 145CONFIG_RT_MUTEXES=y
@@ -130,7 +147,6 @@ CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 147# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 148CONFIG_BLOCK=y
132# CONFIG_LBD is not set 149# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
136 152
@@ -146,11 +162,6 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_CFQ is not set 162# CONFIG_DEFAULT_CFQ is not set
147# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 165# CONFIG_FREEZER is not set
155 166
156# 167#
@@ -166,6 +177,7 @@ CONFIG_MPC85xx=y
166# CONFIG_MPC85xx_MDS is not set 177# CONFIG_MPC85xx_MDS is not set
167# CONFIG_MPC8536_DS is not set 178# CONFIG_MPC8536_DS is not set
168# CONFIG_MPC85xx_DS is not set 179# CONFIG_MPC85xx_DS is not set
180# CONFIG_SOCRATES is not set
169# CONFIG_KSI8560 is not set 181# CONFIG_KSI8560 is not set
170# CONFIG_STX_GP3 is not set 182# CONFIG_STX_GP3 is not set
171# CONFIG_TQM8540 is not set 183# CONFIG_TQM8540 is not set
@@ -235,9 +247,12 @@ CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
237CONFIG_UNEVICTABLE_LRU=y 249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_HAVE_MLOCK=y
251CONFIG_HAVE_MLOCKED_PAGE_BIT=y
238CONFIG_PPC_4K_PAGES=y 252CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set 253# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set 254# CONFIG_PPC_64K_PAGES is not set
255# CONFIG_PPC_256K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=11 256CONFIG_FORCE_MAX_ZONEORDER=11
242# CONFIG_PROC_DEVICETREE is not set 257# CONFIG_PROC_DEVICETREE is not set
243# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
@@ -262,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 277# CONFIG_PCI_MSI is not set
263# CONFIG_PCI_LEGACY is not set 278# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set 279# CONFIG_PCI_STUB is not set
280# CONFIG_PCI_IOV is not set
265# CONFIG_HAS_RAPIDIO is not set 281# CONFIG_HAS_RAPIDIO is not set
266 282
267# 283#
@@ -273,17 +289,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# Default settings for advanced configuration options are used 289# Default settings for advanced configuration options are used
274# 290#
275CONFIG_LOWMEM_SIZE=0x30000000 291CONFIG_LOWMEM_SIZE=0x30000000
292CONFIG_LOWMEM_CAM_NUM=3
276CONFIG_PAGE_OFFSET=0xc0000000 293CONFIG_PAGE_OFFSET=0xc0000000
277CONFIG_KERNEL_START=0xc0000000 294CONFIG_KERNEL_START=0xc0000000
278CONFIG_PHYSICAL_START=0x00000000 295CONFIG_PHYSICAL_START=0x00000000
279CONFIG_PHYSICAL_ALIGN=0x10000000 296CONFIG_PHYSICAL_ALIGN=0x04000000
280CONFIG_TASK_SIZE=0xc0000000 297CONFIG_TASK_SIZE=0xc0000000
281CONFIG_NET=y 298CONFIG_NET=y
282 299
283# 300#
284# Networking options 301# Networking options
285# 302#
286CONFIG_COMPAT_NET_DEV_OPS=y
287CONFIG_PACKET=y 303CONFIG_PACKET=y
288# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
289CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -339,6 +355,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_LAPB is not set 355# CONFIG_LAPB is not set
340# CONFIG_ECONET is not set 356# CONFIG_ECONET is not set
341# CONFIG_WAN_ROUTER is not set 357# CONFIG_WAN_ROUTER is not set
358# CONFIG_PHONET is not set
342# CONFIG_NET_SCHED is not set 359# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set 360# CONFIG_DCB is not set
344 361
@@ -351,7 +368,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_IRDA is not set 368# CONFIG_IRDA is not set
352# CONFIG_BT is not set 369# CONFIG_BT is not set
353# CONFIG_AF_RXRPC is not set 370# CONFIG_AF_RXRPC is not set
354# CONFIG_PHONET is not set
355CONFIG_WIRELESS=y 371CONFIG_WIRELESS=y
356# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
357CONFIG_WIRELESS_OLD_REGULATORY=y 373CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -451,7 +467,6 @@ CONFIG_MTD_CFI_UTIL=y
451# LPDDR flash memory drivers 467# LPDDR flash memory drivers
452# 468#
453# CONFIG_MTD_LPDDR is not set 469# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455 470
456# 471#
457# UBI - Unsorted block images 472# UBI - Unsorted block images
@@ -481,19 +496,27 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
481# CONFIG_BLK_DEV_HD is not set 496# CONFIG_BLK_DEV_HD is not set
482CONFIG_MISC_DEVICES=y 497CONFIG_MISC_DEVICES=y
483# CONFIG_PHANTOM is not set 498# CONFIG_PHANTOM is not set
484# CONFIG_EEPROM_93CX6 is not set
485# CONFIG_SGI_IOC4 is not set 499# CONFIG_SGI_IOC4 is not set
486# CONFIG_TIFM_CORE is not set 500# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set 501# CONFIG_ICS932S401 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 502# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 503# CONFIG_HP_ILO is not set
504# CONFIG_ISL29003 is not set
490# CONFIG_C2PORT is not set 505# CONFIG_C2PORT is not set
506
507#
508# EEPROM support
509#
510# CONFIG_EEPROM_AT24 is not set
511# CONFIG_EEPROM_LEGACY is not set
512# CONFIG_EEPROM_93CX6 is not set
491CONFIG_HAVE_IDE=y 513CONFIG_HAVE_IDE=y
492CONFIG_IDE=y 514CONFIG_IDE=y
493 515
494# 516#
495# Please see Documentation/ide/ide.txt for help/info on IDE drives 517# Please see Documentation/ide/ide.txt for help/info on IDE drives
496# 518#
519CONFIG_IDE_XFER_MODE=y
497CONFIG_IDE_TIMINGS=y 520CONFIG_IDE_TIMINGS=y
498# CONFIG_BLK_DEV_IDE_SATA is not set 521# CONFIG_BLK_DEV_IDE_SATA is not set
499CONFIG_IDE_GD=y 522CONFIG_IDE_GD=y
@@ -568,6 +591,7 @@ CONFIG_BLK_DEV_IDEDMA=y
568# CONFIG_I2O is not set 591# CONFIG_I2O is not set
569# CONFIG_MACINTOSH_DRIVERS is not set 592# CONFIG_MACINTOSH_DRIVERS is not set
570CONFIG_NETDEVICES=y 593CONFIG_NETDEVICES=y
594CONFIG_COMPAT_NET_DEV_OPS=y
571# CONFIG_DUMMY is not set 595# CONFIG_DUMMY is not set
572# CONFIG_BONDING is not set 596# CONFIG_BONDING is not set
573# CONFIG_MACVLAN is not set 597# CONFIG_MACVLAN is not set
@@ -601,6 +625,8 @@ CONFIG_MII=y
601# CONFIG_SUNGEM is not set 625# CONFIG_SUNGEM is not set
602# CONFIG_CASSINI is not set 626# CONFIG_CASSINI is not set
603# CONFIG_NET_VENDOR_3COM is not set 627# CONFIG_NET_VENDOR_3COM is not set
628# CONFIG_ETHOC is not set
629# CONFIG_DNET is not set
604# CONFIG_NET_TULIP is not set 630# CONFIG_NET_TULIP is not set
605# CONFIG_HP100 is not set 631# CONFIG_HP100 is not set
606# CONFIG_IBM_NEW_EMAC_ZMII is not set 632# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -639,6 +665,7 @@ CONFIG_NETDEV_1000=y
639# CONFIG_E1000E is not set 665# CONFIG_E1000E is not set
640# CONFIG_IP1000 is not set 666# CONFIG_IP1000 is not set
641# CONFIG_IGB is not set 667# CONFIG_IGB is not set
668# CONFIG_IGBVF is not set
642# CONFIG_NS83820 is not set 669# CONFIG_NS83820 is not set
643# CONFIG_HAMACHI is not set 670# CONFIG_HAMACHI is not set
644# CONFIG_YELLOWFIN is not set 671# CONFIG_YELLOWFIN is not set
@@ -649,10 +676,12 @@ CONFIG_NETDEV_1000=y
649# CONFIG_VIA_VELOCITY is not set 676# CONFIG_VIA_VELOCITY is not set
650# CONFIG_TIGON3 is not set 677# CONFIG_TIGON3 is not set
651# CONFIG_BNX2 is not set 678# CONFIG_BNX2 is not set
679CONFIG_FSL_PQ_MDIO=y
652CONFIG_GIANFAR=y 680CONFIG_GIANFAR=y
653# CONFIG_QLA3XXX is not set 681# CONFIG_QLA3XXX is not set
654# CONFIG_ATL1 is not set 682# CONFIG_ATL1 is not set
655# CONFIG_ATL1E is not set 683# CONFIG_ATL1E is not set
684# CONFIG_ATL1C is not set
656# CONFIG_JME is not set 685# CONFIG_JME is not set
657CONFIG_NETDEV_10000=y 686CONFIG_NETDEV_10000=y
658# CONFIG_CHELSIO_T1 is not set 687# CONFIG_CHELSIO_T1 is not set
@@ -662,6 +691,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
662# CONFIG_IXGBE is not set 691# CONFIG_IXGBE is not set
663# CONFIG_IXGB is not set 692# CONFIG_IXGB is not set
664# CONFIG_S2IO is not set 693# CONFIG_S2IO is not set
694# CONFIG_VXGE is not set
665# CONFIG_MYRI10GE is not set 695# CONFIG_MYRI10GE is not set
666# CONFIG_NETXEN_NIC is not set 696# CONFIG_NETXEN_NIC is not set
667# CONFIG_NIU is not set 697# CONFIG_NIU is not set
@@ -671,6 +701,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
671# CONFIG_BNX2X is not set 701# CONFIG_BNX2X is not set
672# CONFIG_QLGE is not set 702# CONFIG_QLGE is not set
673# CONFIG_SFC is not set 703# CONFIG_SFC is not set
704# CONFIG_BE2NET is not set
674# CONFIG_TR is not set 705# CONFIG_TR is not set
675 706
676# 707#
@@ -678,7 +709,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
678# 709#
679# CONFIG_WLAN_PRE80211 is not set 710# CONFIG_WLAN_PRE80211 is not set
680# CONFIG_WLAN_80211 is not set 711# CONFIG_WLAN_80211 is not set
681# CONFIG_IWLWIFI_LEDS is not set
682 712
683# 713#
684# Enable WiMAX (Networking options) to see the WiMAX drivers 714# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -761,6 +791,7 @@ CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set 791# CONFIG_HVC_UDBG is not set
762# CONFIG_IPMI_HANDLER is not set 792# CONFIG_IPMI_HANDLER is not set
763CONFIG_HW_RANDOM=y 793CONFIG_HW_RANDOM=y
794# CONFIG_HW_RANDOM_TIMERIOMEM is not set
764# CONFIG_NVRAM is not set 795# CONFIG_NVRAM is not set
765CONFIG_GEN_RTC=y 796CONFIG_GEN_RTC=y
766# CONFIG_GEN_RTC_X is not set 797# CONFIG_GEN_RTC_X is not set
@@ -825,12 +856,9 @@ CONFIG_I2C_MPC=y
825# Miscellaneous I2C Chip support 856# Miscellaneous I2C Chip support
826# 857#
827# CONFIG_DS1682 is not set 858# CONFIG_DS1682 is not set
828# CONFIG_EEPROM_AT24 is not set
829# CONFIG_EEPROM_LEGACY is not set
830# CONFIG_SENSORS_PCF8574 is not set 859# CONFIG_SENSORS_PCF8574 is not set
831# CONFIG_PCF8575 is not set 860# CONFIG_PCF8575 is not set
832# CONFIG_SENSORS_PCA9539 is not set 861# CONFIG_SENSORS_PCA9539 is not set
833# CONFIG_SENSORS_PCF8591 is not set
834# CONFIG_SENSORS_MAX6875 is not set 862# CONFIG_SENSORS_MAX6875 is not set
835# CONFIG_SENSORS_TSL2550 is not set 863# CONFIG_SENSORS_TSL2550 is not set
836# CONFIG_I2C_DEBUG_CORE is not set 864# CONFIG_I2C_DEBUG_CORE is not set
@@ -885,6 +913,7 @@ CONFIG_HWMON=y
885# CONFIG_SENSORS_F71805F is not set 913# CONFIG_SENSORS_F71805F is not set
886# CONFIG_SENSORS_F71882FG is not set 914# CONFIG_SENSORS_F71882FG is not set
887# CONFIG_SENSORS_F75375S is not set 915# CONFIG_SENSORS_F75375S is not set
916# CONFIG_SENSORS_G760A is not set
888# CONFIG_SENSORS_GL518SM is not set 917# CONFIG_SENSORS_GL518SM is not set
889# CONFIG_SENSORS_GL520SM is not set 918# CONFIG_SENSORS_GL520SM is not set
890# CONFIG_SENSORS_IT87 is not set 919# CONFIG_SENSORS_IT87 is not set
@@ -899,11 +928,15 @@ CONFIG_SENSORS_LM75=y
899# CONFIG_SENSORS_LM90 is not set 928# CONFIG_SENSORS_LM90 is not set
900# CONFIG_SENSORS_LM92 is not set 929# CONFIG_SENSORS_LM92 is not set
901# CONFIG_SENSORS_LM93 is not set 930# CONFIG_SENSORS_LM93 is not set
931# CONFIG_SENSORS_LTC4215 is not set
902# CONFIG_SENSORS_LTC4245 is not set 932# CONFIG_SENSORS_LTC4245 is not set
933# CONFIG_SENSORS_LM95241 is not set
903# CONFIG_SENSORS_MAX1619 is not set 934# CONFIG_SENSORS_MAX1619 is not set
904# CONFIG_SENSORS_MAX6650 is not set 935# CONFIG_SENSORS_MAX6650 is not set
905# CONFIG_SENSORS_PC87360 is not set 936# CONFIG_SENSORS_PC87360 is not set
906# CONFIG_SENSORS_PC87427 is not set 937# CONFIG_SENSORS_PC87427 is not set
938# CONFIG_SENSORS_PCF8591 is not set
939# CONFIG_SENSORS_SHT15 is not set
907# CONFIG_SENSORS_SIS5595 is not set 940# CONFIG_SENSORS_SIS5595 is not set
908# CONFIG_SENSORS_DME1737 is not set 941# CONFIG_SENSORS_DME1737 is not set
909# CONFIG_SENSORS_SMSC47M1 is not set 942# CONFIG_SENSORS_SMSC47M1 is not set
@@ -988,7 +1021,6 @@ CONFIG_HID=y
988# 1021#
989# Special HID drivers 1022# Special HID drivers
990# 1023#
991CONFIG_HID_COMPAT=y
992CONFIG_USB_SUPPORT=y 1024CONFIG_USB_SUPPORT=y
993CONFIG_USB_ARCH_HAS_HCD=y 1025CONFIG_USB_ARCH_HAS_HCD=y
994CONFIG_USB_ARCH_HAS_OHCI=y 1026CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1002,7 +1034,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1002# 1034#
1003 1035
1004# 1036#
1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1037# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1006# 1038#
1007# CONFIG_USB_GADGET is not set 1039# CONFIG_USB_GADGET is not set
1008 1040
@@ -1018,6 +1050,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1018# CONFIG_EDAC is not set 1050# CONFIG_EDAC is not set
1019# CONFIG_RTC_CLASS is not set 1051# CONFIG_RTC_CLASS is not set
1020# CONFIG_DMADEVICES is not set 1052# CONFIG_DMADEVICES is not set
1053# CONFIG_AUXDISPLAY is not set
1021# CONFIG_UIO is not set 1054# CONFIG_UIO is not set
1022# CONFIG_STAGING is not set 1055# CONFIG_STAGING is not set
1023 1056
@@ -1028,6 +1061,7 @@ CONFIG_EXT2_FS=y
1028# CONFIG_EXT2_FS_XATTR is not set 1061# CONFIG_EXT2_FS_XATTR is not set
1029# CONFIG_EXT2_FS_XIP is not set 1062# CONFIG_EXT2_FS_XIP is not set
1030CONFIG_EXT3_FS=y 1063CONFIG_EXT3_FS=y
1064# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1031CONFIG_EXT3_FS_XATTR=y 1065CONFIG_EXT3_FS_XATTR=y
1032# CONFIG_EXT3_FS_POSIX_ACL is not set 1066# CONFIG_EXT3_FS_POSIX_ACL is not set
1033# CONFIG_EXT3_FS_SECURITY is not set 1067# CONFIG_EXT3_FS_SECURITY is not set
@@ -1050,6 +1084,11 @@ CONFIG_INOTIFY_USER=y
1050# CONFIG_FUSE_FS is not set 1084# CONFIG_FUSE_FS is not set
1051 1085
1052# 1086#
1087# Caches
1088#
1089# CONFIG_FSCACHE is not set
1090
1091#
1053# CD-ROM/DVD Filesystems 1092# CD-ROM/DVD Filesystems
1054# 1093#
1055# CONFIG_ISO9660_FS is not set 1094# CONFIG_ISO9660_FS is not set
@@ -1103,6 +1142,7 @@ CONFIG_CRAMFS=y
1103# CONFIG_ROMFS_FS is not set 1142# CONFIG_ROMFS_FS is not set
1104# CONFIG_SYSV_FS is not set 1143# CONFIG_SYSV_FS is not set
1105# CONFIG_UFS_FS is not set 1144# CONFIG_UFS_FS is not set
1145# CONFIG_NILFS2_FS is not set
1106CONFIG_NETWORK_FILESYSTEMS=y 1146CONFIG_NETWORK_FILESYSTEMS=y
1107CONFIG_NFS_FS=y 1147CONFIG_NFS_FS=y
1108# CONFIG_NFS_V3 is not set 1148# CONFIG_NFS_V3 is not set
@@ -1112,7 +1152,6 @@ CONFIG_ROOT_NFS=y
1112CONFIG_LOCKD=y 1152CONFIG_LOCKD=y
1113CONFIG_NFS_COMMON=y 1153CONFIG_NFS_COMMON=y
1114CONFIG_SUNRPC=y 1154CONFIG_SUNRPC=y
1115# CONFIG_SUNRPC_REGISTER_V4 is not set
1116# CONFIG_RPCSEC_GSS_KRB5 is not set 1155# CONFIG_RPCSEC_GSS_KRB5 is not set
1117# CONFIG_RPCSEC_GSS_SPKM3 is not set 1156# CONFIG_RPCSEC_GSS_SPKM3 is not set
1118# CONFIG_SMB_FS is not set 1157# CONFIG_SMB_FS is not set
@@ -1140,6 +1179,7 @@ CONFIG_PARTITION_ADVANCED=y
1140# CONFIG_SYSV68_PARTITION is not set 1179# CONFIG_SYSV68_PARTITION is not set
1141# CONFIG_NLS is not set 1180# CONFIG_NLS is not set
1142# CONFIG_DLM is not set 1181# CONFIG_DLM is not set
1182# CONFIG_BINARY_PRINTF is not set
1143 1183
1144# 1184#
1145# Library routines 1185# Library routines
@@ -1155,11 +1195,12 @@ CONFIG_CRC32=y
1155# CONFIG_LIBCRC32C is not set 1195# CONFIG_LIBCRC32C is not set
1156CONFIG_ZLIB_INFLATE=y 1196CONFIG_ZLIB_INFLATE=y
1157CONFIG_ZLIB_DEFLATE=y 1197CONFIG_ZLIB_DEFLATE=y
1158CONFIG_PLIST=y 1198CONFIG_DECOMPRESS_GZIP=y
1159CONFIG_HAS_IOMEM=y 1199CONFIG_HAS_IOMEM=y
1160CONFIG_HAS_IOPORT=y 1200CONFIG_HAS_IOPORT=y
1161CONFIG_HAS_DMA=y 1201CONFIG_HAS_DMA=y
1162CONFIG_HAVE_LMB=y 1202CONFIG_HAVE_LMB=y
1203CONFIG_NLATTR=y
1163 1204
1164# 1205#
1165# Kernel hacking 1206# Kernel hacking
@@ -1181,13 +1222,24 @@ CONFIG_FRAME_WARN=1024
1181# CONFIG_LATENCYTOP is not set 1222# CONFIG_LATENCYTOP is not set
1182CONFIG_SYSCTL_SYSCALL_CHECK=y 1223CONFIG_SYSCTL_SYSCALL_CHECK=y
1183CONFIG_HAVE_FUNCTION_TRACER=y 1224CONFIG_HAVE_FUNCTION_TRACER=y
1225CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y 1226CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1227CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1228CONFIG_TRACING_SUPPORT=y
1186 1229
1187# 1230#
1188# Tracers 1231# Tracers
1189# 1232#
1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1233# CONFIG_FUNCTION_TRACER is not set
1234# CONFIG_SCHED_TRACER is not set
1235# CONFIG_CONTEXT_SWITCH_TRACER is not set
1236# CONFIG_EVENT_TRACER is not set
1237# CONFIG_BOOT_TRACER is not set
1238# CONFIG_TRACE_BRANCH_PROFILING is not set
1239# CONFIG_STACK_TRACER is not set
1240# CONFIG_KMEMTRACE is not set
1241# CONFIG_WORKQUEUE_TRACER is not set
1242# CONFIG_BLK_DEV_IO_TRACE is not set
1191# CONFIG_SAMPLES is not set 1243# CONFIG_SAMPLES is not set
1192CONFIG_HAVE_ARCH_KGDB=y 1244CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64 1245CONFIG_PRINT_STACK_DEPTH=64
@@ -1278,6 +1330,7 @@ CONFIG_CRYPTO=y
1278# Compression 1330# Compression
1279# 1331#
1280# CONFIG_CRYPTO_DEFLATE is not set 1332# CONFIG_CRYPTO_DEFLATE is not set
1333# CONFIG_CRYPTO_ZLIB is not set
1281# CONFIG_CRYPTO_LZO is not set 1334# CONFIG_CRYPTO_LZO is not set
1282 1335
1283# 1336#
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index 43030fea2eee..8b4faae7a9a1 100644
--- a/arch/powerpc/configs/85xx/tqm8548_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8548_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc7 3# Linux kernel version: 2.6.30-rc3
4# Mon Mar 16 09:03:28 2009 4# Wed May 13 17:22:24 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -59,6 +59,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 64
64# 65#
@@ -99,21 +100,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
99# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
100CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
101CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
102# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
103CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
104CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
105CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
106CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
107# CONFIG_KALLSYMS_ALL is not set 112# CONFIG_KALLSYMS_ALL is not set
108# CONFIG_KALLSYMS_EXTRA_PASS is not set 113# CONFIG_KALLSYMS_EXTRA_PASS is not set
114# CONFIG_STRIP_ASM_SYMS is not set
109CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
110CONFIG_PRINTK=y 116CONFIG_PRINTK=y
111CONFIG_BUG=y 117CONFIG_BUG=y
112CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
113CONFIG_COMPAT_BRK=y
114CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
115CONFIG_FUTEX=y 120CONFIG_FUTEX=y
116CONFIG_ANON_INODES=y
117CONFIG_EPOLL=y 121CONFIG_EPOLL=y
118CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
119CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
@@ -123,10 +127,12 @@ CONFIG_AIO=y
123CONFIG_VM_EVENT_COUNTERS=y 127CONFIG_VM_EVENT_COUNTERS=y
124CONFIG_PCI_QUIRKS=y 128CONFIG_PCI_QUIRKS=y
125CONFIG_SLUB_DEBUG=y 129CONFIG_SLUB_DEBUG=y
130CONFIG_COMPAT_BRK=y
126# CONFIG_SLAB is not set 131# CONFIG_SLAB is not set
127CONFIG_SLUB=y 132CONFIG_SLUB=y
128# CONFIG_SLOB is not set 133# CONFIG_SLOB is not set
129# CONFIG_PROFILING is not set 134# CONFIG_PROFILING is not set
135# CONFIG_MARKERS is not set
130CONFIG_HAVE_OPROFILE=y 136CONFIG_HAVE_OPROFILE=y
131# CONFIG_KPROBES is not set 137# CONFIG_KPROBES is not set
132CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 138CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -134,6 +140,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
134CONFIG_HAVE_KPROBES=y 140CONFIG_HAVE_KPROBES=y
135CONFIG_HAVE_KRETPROBES=y 141CONFIG_HAVE_KRETPROBES=y
136CONFIG_HAVE_ARCH_TRACEHOOK=y 142CONFIG_HAVE_ARCH_TRACEHOOK=y
143# CONFIG_SLOW_WORK is not set
137# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 144# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
138CONFIG_SLABINFO=y 145CONFIG_SLABINFO=y
139CONFIG_RT_MUTEXES=y 146CONFIG_RT_MUTEXES=y
@@ -146,7 +153,6 @@ CONFIG_MODULE_UNLOAD=y
146# CONFIG_MODULE_SRCVERSION_ALL is not set 153# CONFIG_MODULE_SRCVERSION_ALL is not set
147CONFIG_BLOCK=y 154CONFIG_BLOCK=y
148# CONFIG_LBD is not set 155# CONFIG_LBD is not set
149# CONFIG_BLK_DEV_IO_TRACE is not set
150# CONFIG_BLK_DEV_BSG is not set 156# CONFIG_BLK_DEV_BSG is not set
151# CONFIG_BLK_DEV_INTEGRITY is not set 157# CONFIG_BLK_DEV_INTEGRITY is not set
152 158
@@ -177,6 +183,7 @@ CONFIG_MPC85xx=y
177# CONFIG_MPC85xx_MDS is not set 183# CONFIG_MPC85xx_MDS is not set
178# CONFIG_MPC8536_DS is not set 184# CONFIG_MPC8536_DS is not set
179# CONFIG_MPC85xx_DS is not set 185# CONFIG_MPC85xx_DS is not set
186# CONFIG_SOCRATES is not set
180# CONFIG_KSI8560 is not set 187# CONFIG_KSI8560 is not set
181# CONFIG_STX_GP3 is not set 188# CONFIG_STX_GP3 is not set
182# CONFIG_TQM8540 is not set 189# CONFIG_TQM8540 is not set
@@ -246,6 +253,8 @@ CONFIG_ZONE_DMA_FLAG=1
246CONFIG_BOUNCE=y 253CONFIG_BOUNCE=y
247CONFIG_VIRT_TO_BUS=y 254CONFIG_VIRT_TO_BUS=y
248CONFIG_UNEVICTABLE_LRU=y 255CONFIG_UNEVICTABLE_LRU=y
256CONFIG_HAVE_MLOCK=y
257CONFIG_HAVE_MLOCKED_PAGE_BIT=y
249CONFIG_PPC_4K_PAGES=y 258CONFIG_PPC_4K_PAGES=y
250# CONFIG_PPC_16K_PAGES is not set 259# CONFIG_PPC_16K_PAGES is not set
251# CONFIG_PPC_64K_PAGES is not set 260# CONFIG_PPC_64K_PAGES is not set
@@ -278,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
278# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
279# CONFIG_PCI_DEBUG is not set 288# CONFIG_PCI_DEBUG is not set
280# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
281# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
282# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
283# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -302,7 +312,6 @@ CONFIG_NET=y
302# 312#
303# Networking options 313# Networking options
304# 314#
305CONFIG_COMPAT_NET_DEV_OPS=y
306CONFIG_PACKET=y 315CONFIG_PACKET=y
307# CONFIG_PACKET_MMAP is not set 316# CONFIG_PACKET_MMAP is not set
308CONFIG_UNIX=y 317CONFIG_UNIX=y
@@ -358,6 +367,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
358# CONFIG_LAPB is not set 367# CONFIG_LAPB is not set
359# CONFIG_ECONET is not set 368# CONFIG_ECONET is not set
360# CONFIG_WAN_ROUTER is not set 369# CONFIG_WAN_ROUTER is not set
370# CONFIG_PHONET is not set
361# CONFIG_NET_SCHED is not set 371# CONFIG_NET_SCHED is not set
362# CONFIG_DCB is not set 372# CONFIG_DCB is not set
363 373
@@ -370,7 +380,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
370# CONFIG_IRDA is not set 380# CONFIG_IRDA is not set
371# CONFIG_BT is not set 381# CONFIG_BT is not set
372# CONFIG_AF_RXRPC is not set 382# CONFIG_AF_RXRPC is not set
373# CONFIG_PHONET is not set
374# CONFIG_WIRELESS is not set 383# CONFIG_WIRELESS is not set
375# CONFIG_WIMAX is not set 384# CONFIG_WIMAX is not set
376# CONFIG_RFKILL is not set 385# CONFIG_RFKILL is not set
@@ -514,6 +523,7 @@ CONFIG_MISC_DEVICES=y
514# CONFIG_ICS932S401 is not set 523# CONFIG_ICS932S401 is not set
515# CONFIG_ENCLOSURE_SERVICES is not set 524# CONFIG_ENCLOSURE_SERVICES is not set
516# CONFIG_HP_ILO is not set 525# CONFIG_HP_ILO is not set
526# CONFIG_ISL29003 is not set
517# CONFIG_C2PORT is not set 527# CONFIG_C2PORT is not set
518 528
519# 529#
@@ -548,6 +558,7 @@ CONFIG_HAVE_IDE=y
548# CONFIG_I2O is not set 558# CONFIG_I2O is not set
549# CONFIG_MACINTOSH_DRIVERS is not set 559# CONFIG_MACINTOSH_DRIVERS is not set
550CONFIG_NETDEVICES=y 560CONFIG_NETDEVICES=y
561CONFIG_COMPAT_NET_DEV_OPS=y
551# CONFIG_DUMMY is not set 562# CONFIG_DUMMY is not set
552# CONFIG_BONDING is not set 563# CONFIG_BONDING is not set
553# CONFIG_MACVLAN is not set 564# CONFIG_MACVLAN is not set
@@ -581,6 +592,8 @@ CONFIG_MII=y
581# CONFIG_SUNGEM is not set 592# CONFIG_SUNGEM is not set
582# CONFIG_CASSINI is not set 593# CONFIG_CASSINI is not set
583# CONFIG_NET_VENDOR_3COM is not set 594# CONFIG_NET_VENDOR_3COM is not set
595# CONFIG_ETHOC is not set
596# CONFIG_DNET is not set
584# CONFIG_NET_TULIP is not set 597# CONFIG_NET_TULIP is not set
585# CONFIG_HP100 is not set 598# CONFIG_HP100 is not set
586# CONFIG_IBM_NEW_EMAC_ZMII is not set 599# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -600,6 +613,7 @@ CONFIG_NETDEV_1000=y
600# CONFIG_E1000E is not set 613# CONFIG_E1000E is not set
601# CONFIG_IP1000 is not set 614# CONFIG_IP1000 is not set
602# CONFIG_IGB is not set 615# CONFIG_IGB is not set
616# CONFIG_IGBVF is not set
603# CONFIG_NS83820 is not set 617# CONFIG_NS83820 is not set
604# CONFIG_HAMACHI is not set 618# CONFIG_HAMACHI is not set
605# CONFIG_YELLOWFIN is not set 619# CONFIG_YELLOWFIN is not set
@@ -610,6 +624,7 @@ CONFIG_NETDEV_1000=y
610# CONFIG_VIA_VELOCITY is not set 624# CONFIG_VIA_VELOCITY is not set
611# CONFIG_TIGON3 is not set 625# CONFIG_TIGON3 is not set
612# CONFIG_BNX2 is not set 626# CONFIG_BNX2 is not set
627CONFIG_FSL_PQ_MDIO=y
613CONFIG_GIANFAR=y 628CONFIG_GIANFAR=y
614# CONFIG_QLA3XXX is not set 629# CONFIG_QLA3XXX is not set
615# CONFIG_ATL1 is not set 630# CONFIG_ATL1 is not set
@@ -624,6 +639,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
624# CONFIG_IXGBE is not set 639# CONFIG_IXGBE is not set
625# CONFIG_IXGB is not set 640# CONFIG_IXGB is not set
626# CONFIG_S2IO is not set 641# CONFIG_S2IO is not set
642# CONFIG_VXGE is not set
627# CONFIG_MYRI10GE is not set 643# CONFIG_MYRI10GE is not set
628# CONFIG_NETXEN_NIC is not set 644# CONFIG_NETXEN_NIC is not set
629# CONFIG_NIU is not set 645# CONFIG_NIU is not set
@@ -633,6 +649,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
633# CONFIG_BNX2X is not set 649# CONFIG_BNX2X is not set
634# CONFIG_QLGE is not set 650# CONFIG_QLGE is not set
635# CONFIG_SFC is not set 651# CONFIG_SFC is not set
652# CONFIG_BE2NET is not set
636# CONFIG_TR is not set 653# CONFIG_TR is not set
637 654
638# 655#
@@ -640,7 +657,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
640# 657#
641# CONFIG_WLAN_PRE80211 is not set 658# CONFIG_WLAN_PRE80211 is not set
642# CONFIG_WLAN_80211 is not set 659# CONFIG_WLAN_80211 is not set
643# CONFIG_IWLWIFI_LEDS is not set
644 660
645# 661#
646# Enable WiMAX (Networking options) to see the WiMAX drivers 662# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -785,7 +801,6 @@ CONFIG_I2C_MPC=y
785# CONFIG_SENSORS_PCF8574 is not set 801# CONFIG_SENSORS_PCF8574 is not set
786# CONFIG_PCF8575 is not set 802# CONFIG_PCF8575 is not set
787# CONFIG_SENSORS_PCA9539 is not set 803# CONFIG_SENSORS_PCA9539 is not set
788# CONFIG_SENSORS_PCF8591 is not set
789# CONFIG_SENSORS_MAX6875 is not set 804# CONFIG_SENSORS_MAX6875 is not set
790# CONFIG_SENSORS_TSL2550 is not set 805# CONFIG_SENSORS_TSL2550 is not set
791# CONFIG_I2C_DEBUG_CORE is not set 806# CONFIG_I2C_DEBUG_CORE is not set
@@ -817,6 +832,7 @@ CONFIG_HWMON=y
817# CONFIG_SENSORS_F71805F is not set 832# CONFIG_SENSORS_F71805F is not set
818# CONFIG_SENSORS_F71882FG is not set 833# CONFIG_SENSORS_F71882FG is not set
819# CONFIG_SENSORS_F75375S is not set 834# CONFIG_SENSORS_F75375S is not set
835# CONFIG_SENSORS_G760A is not set
820# CONFIG_SENSORS_GL518SM is not set 836# CONFIG_SENSORS_GL518SM is not set
821# CONFIG_SENSORS_GL520SM is not set 837# CONFIG_SENSORS_GL520SM is not set
822# CONFIG_SENSORS_IT87 is not set 838# CONFIG_SENSORS_IT87 is not set
@@ -831,11 +847,14 @@ CONFIG_SENSORS_LM75=y
831# CONFIG_SENSORS_LM90 is not set 847# CONFIG_SENSORS_LM90 is not set
832# CONFIG_SENSORS_LM92 is not set 848# CONFIG_SENSORS_LM92 is not set
833# CONFIG_SENSORS_LM93 is not set 849# CONFIG_SENSORS_LM93 is not set
850# CONFIG_SENSORS_LTC4215 is not set
834# CONFIG_SENSORS_LTC4245 is not set 851# CONFIG_SENSORS_LTC4245 is not set
852# CONFIG_SENSORS_LM95241 is not set
835# CONFIG_SENSORS_MAX1619 is not set 853# CONFIG_SENSORS_MAX1619 is not set
836# CONFIG_SENSORS_MAX6650 is not set 854# CONFIG_SENSORS_MAX6650 is not set
837# CONFIG_SENSORS_PC87360 is not set 855# CONFIG_SENSORS_PC87360 is not set
838# CONFIG_SENSORS_PC87427 is not set 856# CONFIG_SENSORS_PC87427 is not set
857# CONFIG_SENSORS_PCF8591 is not set
839# CONFIG_SENSORS_SIS5595 is not set 858# CONFIG_SENSORS_SIS5595 is not set
840# CONFIG_SENSORS_DME1737 is not set 859# CONFIG_SENSORS_DME1737 is not set
841# CONFIG_SENSORS_SMSC47M1 is not set 860# CONFIG_SENSORS_SMSC47M1 is not set
@@ -919,7 +938,6 @@ CONFIG_HID=y
919# 938#
920# Special HID drivers 939# Special HID drivers
921# 940#
922CONFIG_HID_COMPAT=y
923# CONFIG_USB_SUPPORT is not set 941# CONFIG_USB_SUPPORT is not set
924# CONFIG_UWB is not set 942# CONFIG_UWB is not set
925# CONFIG_MMC is not set 943# CONFIG_MMC is not set
@@ -982,8 +1000,9 @@ CONFIG_RTC_DRV_DS1307=y
982# 1000#
983# on-CPU RTC drivers 1001# on-CPU RTC drivers
984# 1002#
985# CONFIG_RTC_DRV_PPC is not set 1003# CONFIG_RTC_DRV_GENERIC is not set
986# CONFIG_DMADEVICES is not set 1004# CONFIG_DMADEVICES is not set
1005# CONFIG_AUXDISPLAY is not set
987# CONFIG_UIO is not set 1006# CONFIG_UIO is not set
988# CONFIG_STAGING is not set 1007# CONFIG_STAGING is not set
989 1008
@@ -1009,6 +1028,11 @@ CONFIG_INOTIFY_USER=y
1009# CONFIG_FUSE_FS is not set 1028# CONFIG_FUSE_FS is not set
1010 1029
1011# 1030#
1031# Caches
1032#
1033# CONFIG_FSCACHE is not set
1034
1035#
1012# CD-ROM/DVD Filesystems 1036# CD-ROM/DVD Filesystems
1013# 1037#
1014# CONFIG_ISO9660_FS is not set 1038# CONFIG_ISO9660_FS is not set
@@ -1062,6 +1086,7 @@ CONFIG_JFFS2_RTIME=y
1062# CONFIG_ROMFS_FS is not set 1086# CONFIG_ROMFS_FS is not set
1063# CONFIG_SYSV_FS is not set 1087# CONFIG_SYSV_FS is not set
1064# CONFIG_UFS_FS is not set 1088# CONFIG_UFS_FS is not set
1089# CONFIG_NILFS2_FS is not set
1065CONFIG_NETWORK_FILESYSTEMS=y 1090CONFIG_NETWORK_FILESYSTEMS=y
1066CONFIG_NFS_FS=y 1091CONFIG_NFS_FS=y
1067# CONFIG_NFS_V3 is not set 1092# CONFIG_NFS_V3 is not set
@@ -1071,7 +1096,6 @@ CONFIG_ROOT_NFS=y
1071CONFIG_LOCKD=y 1096CONFIG_LOCKD=y
1072CONFIG_NFS_COMMON=y 1097CONFIG_NFS_COMMON=y
1073CONFIG_SUNRPC=y 1098CONFIG_SUNRPC=y
1074# CONFIG_SUNRPC_REGISTER_V4 is not set
1075# CONFIG_RPCSEC_GSS_KRB5 is not set 1099# CONFIG_RPCSEC_GSS_KRB5 is not set
1076# CONFIG_RPCSEC_GSS_SPKM3 is not set 1100# CONFIG_RPCSEC_GSS_SPKM3 is not set
1077# CONFIG_SMB_FS is not set 1101# CONFIG_SMB_FS is not set
@@ -1099,6 +1123,7 @@ CONFIG_PARTITION_ADVANCED=y
1099# CONFIG_SYSV68_PARTITION is not set 1123# CONFIG_SYSV68_PARTITION is not set
1100# CONFIG_NLS is not set 1124# CONFIG_NLS is not set
1101# CONFIG_DLM is not set 1125# CONFIG_DLM is not set
1126# CONFIG_BINARY_PRINTF is not set
1102 1127
1103# 1128#
1104# Library routines 1129# Library routines
@@ -1114,11 +1139,12 @@ CONFIG_CRC32=y
1114# CONFIG_LIBCRC32C is not set 1139# CONFIG_LIBCRC32C is not set
1115CONFIG_ZLIB_INFLATE=y 1140CONFIG_ZLIB_INFLATE=y
1116CONFIG_ZLIB_DEFLATE=y 1141CONFIG_ZLIB_DEFLATE=y
1117CONFIG_PLIST=y 1142CONFIG_DECOMPRESS_GZIP=y
1118CONFIG_HAS_IOMEM=y 1143CONFIG_HAS_IOMEM=y
1119CONFIG_HAS_IOPORT=y 1144CONFIG_HAS_IOPORT=y
1120CONFIG_HAS_DMA=y 1145CONFIG_HAS_DMA=y
1121CONFIG_HAVE_LMB=y 1146CONFIG_HAVE_LMB=y
1147CONFIG_NLATTR=y
1122 1148
1123# 1149#
1124# Kernel hacking 1150# Kernel hacking
@@ -1136,6 +1162,9 @@ CONFIG_DEBUG_KERNEL=y
1136CONFIG_DETECT_SOFTLOCKUP=y 1162CONFIG_DETECT_SOFTLOCKUP=y
1137# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1163# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1138CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1164CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1165CONFIG_DETECT_HUNG_TASK=y
1166# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1167CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1139CONFIG_SCHED_DEBUG=y 1168CONFIG_SCHED_DEBUG=y
1140# CONFIG_SCHEDSTATS is not set 1169# CONFIG_SCHEDSTATS is not set
1141# CONFIG_TIMER_STATS is not set 1170# CONFIG_TIMER_STATS is not set
@@ -1166,10 +1195,12 @@ CONFIG_DEBUG_MUTEXES=y
1166# CONFIG_FAULT_INJECTION is not set 1195# CONFIG_FAULT_INJECTION is not set
1167# CONFIG_LATENCYTOP is not set 1196# CONFIG_LATENCYTOP is not set
1168CONFIG_SYSCTL_SYSCALL_CHECK=y 1197CONFIG_SYSCTL_SYSCALL_CHECK=y
1198# CONFIG_DEBUG_PAGEALLOC is not set
1169CONFIG_HAVE_FUNCTION_TRACER=y 1199CONFIG_HAVE_FUNCTION_TRACER=y
1170CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1200CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1171CONFIG_HAVE_DYNAMIC_FTRACE=y 1201CONFIG_HAVE_DYNAMIC_FTRACE=y
1172CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1202CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1203CONFIG_TRACING_SUPPORT=y
1173 1204
1174# 1205#
1175# Tracers 1206# Tracers
@@ -1177,17 +1208,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1177# CONFIG_FUNCTION_TRACER is not set 1208# CONFIG_FUNCTION_TRACER is not set
1178# CONFIG_SCHED_TRACER is not set 1209# CONFIG_SCHED_TRACER is not set
1179# CONFIG_CONTEXT_SWITCH_TRACER is not set 1210# CONFIG_CONTEXT_SWITCH_TRACER is not set
1211# CONFIG_EVENT_TRACER is not set
1180# CONFIG_BOOT_TRACER is not set 1212# CONFIG_BOOT_TRACER is not set
1181# CONFIG_TRACE_BRANCH_PROFILING is not set 1213# CONFIG_TRACE_BRANCH_PROFILING is not set
1182# CONFIG_STACK_TRACER is not set 1214# CONFIG_STACK_TRACER is not set
1183# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1215# CONFIG_KMEMTRACE is not set
1216# CONFIG_WORKQUEUE_TRACER is not set
1217# CONFIG_BLK_DEV_IO_TRACE is not set
1184# CONFIG_SAMPLES is not set 1218# CONFIG_SAMPLES is not set
1185CONFIG_HAVE_ARCH_KGDB=y 1219CONFIG_HAVE_ARCH_KGDB=y
1186# CONFIG_KGDB is not set 1220# CONFIG_KGDB is not set
1187CONFIG_PRINT_STACK_DEPTH=64 1221CONFIG_PRINT_STACK_DEPTH=64
1188# CONFIG_DEBUG_STACKOVERFLOW is not set 1222# CONFIG_DEBUG_STACKOVERFLOW is not set
1189# CONFIG_DEBUG_STACK_USAGE is not set 1223# CONFIG_DEBUG_STACK_USAGE is not set
1190# CONFIG_DEBUG_PAGEALLOC is not set
1191# CONFIG_CODE_PATCHING_SELFTEST is not set 1224# CONFIG_CODE_PATCHING_SELFTEST is not set
1192# CONFIG_FTR_FIXUP_SELFTEST is not set 1225# CONFIG_FTR_FIXUP_SELFTEST is not set
1193# CONFIG_MSI_BITMAP_SELFTEST is not set 1226# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1281,6 +1314,7 @@ CONFIG_CRYPTO=y
1281# Compression 1314# Compression
1282# 1315#
1283# CONFIG_CRYPTO_DEFLATE is not set 1316# CONFIG_CRYPTO_DEFLATE is not set
1317# CONFIG_CRYPTO_ZLIB is not set
1284# CONFIG_CRYPTO_LZO is not set 1318# CONFIG_CRYPTO_LZO is not set
1285 1319
1286# 1320#
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index d5a864d74461..170360934cec 100644
--- a/arch/powerpc/configs/85xx/tqm8555_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8555_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:21 2009 4# Wed May 13 17:22:25 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
@@ -90,19 +101,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 103CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 111CONFIG_SYSCTL_SYSCALL=y
97# CONFIG_KALLSYMS is not set 112# CONFIG_KALLSYMS is not set
113# CONFIG_STRIP_ASM_SYMS is not set
98# CONFIG_HOTPLUG is not set 114# CONFIG_HOTPLUG is not set
99CONFIG_PRINTK=y 115CONFIG_PRINTK=y
100CONFIG_BUG=y 116CONFIG_BUG=y
101CONFIG_ELF_CORE=y 117CONFIG_ELF_CORE=y
102CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 118CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 119CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106# CONFIG_EPOLL is not set 120# CONFIG_EPOLL is not set
107CONFIG_SIGNALFD=y 121CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 122CONFIG_TIMERFD=y
@@ -112,10 +126,12 @@ CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 126CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 127CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 128CONFIG_SLUB_DEBUG=y
129CONFIG_COMPAT_BRK=y
115# CONFIG_SLAB is not set 130# CONFIG_SLAB is not set
116CONFIG_SLUB=y 131CONFIG_SLUB=y
117# CONFIG_SLOB is not set 132# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 133# CONFIG_PROFILING is not set
134# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y 137CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,6 +139,7 @@ CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
125CONFIG_HAVE_CLK=y 141CONFIG_HAVE_CLK=y
142# CONFIG_SLOW_WORK is not set
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 143# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 144CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 145CONFIG_RT_MUTEXES=y
@@ -130,7 +147,6 @@ CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 147# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 148CONFIG_BLOCK=y
132# CONFIG_LBD is not set 149# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
136 152
@@ -146,11 +162,6 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_CFQ is not set 162# CONFIG_DEFAULT_CFQ is not set
147# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 165# CONFIG_FREEZER is not set
155 166
156# 167#
@@ -166,6 +177,7 @@ CONFIG_MPC85xx=y
166# CONFIG_MPC85xx_MDS is not set 177# CONFIG_MPC85xx_MDS is not set
167# CONFIG_MPC8536_DS is not set 178# CONFIG_MPC8536_DS is not set
168# CONFIG_MPC85xx_DS is not set 179# CONFIG_MPC85xx_DS is not set
180# CONFIG_SOCRATES is not set
169# CONFIG_KSI8560 is not set 181# CONFIG_KSI8560 is not set
170# CONFIG_STX_GP3 is not set 182# CONFIG_STX_GP3 is not set
171# CONFIG_TQM8540 is not set 183# CONFIG_TQM8540 is not set
@@ -235,9 +247,12 @@ CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
237CONFIG_UNEVICTABLE_LRU=y 249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_HAVE_MLOCK=y
251CONFIG_HAVE_MLOCKED_PAGE_BIT=y
238CONFIG_PPC_4K_PAGES=y 252CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set 253# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set 254# CONFIG_PPC_64K_PAGES is not set
255# CONFIG_PPC_256K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=11 256CONFIG_FORCE_MAX_ZONEORDER=11
242# CONFIG_PROC_DEVICETREE is not set 257# CONFIG_PROC_DEVICETREE is not set
243# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
@@ -262,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 277# CONFIG_PCI_MSI is not set
263# CONFIG_PCI_LEGACY is not set 278# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set 279# CONFIG_PCI_STUB is not set
280# CONFIG_PCI_IOV is not set
265# CONFIG_HAS_RAPIDIO is not set 281# CONFIG_HAS_RAPIDIO is not set
266 282
267# 283#
@@ -273,17 +289,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# Default settings for advanced configuration options are used 289# Default settings for advanced configuration options are used
274# 290#
275CONFIG_LOWMEM_SIZE=0x30000000 291CONFIG_LOWMEM_SIZE=0x30000000
292CONFIG_LOWMEM_CAM_NUM=3
276CONFIG_PAGE_OFFSET=0xc0000000 293CONFIG_PAGE_OFFSET=0xc0000000
277CONFIG_KERNEL_START=0xc0000000 294CONFIG_KERNEL_START=0xc0000000
278CONFIG_PHYSICAL_START=0x00000000 295CONFIG_PHYSICAL_START=0x00000000
279CONFIG_PHYSICAL_ALIGN=0x10000000 296CONFIG_PHYSICAL_ALIGN=0x04000000
280CONFIG_TASK_SIZE=0xc0000000 297CONFIG_TASK_SIZE=0xc0000000
281CONFIG_NET=y 298CONFIG_NET=y
282 299
283# 300#
284# Networking options 301# Networking options
285# 302#
286CONFIG_COMPAT_NET_DEV_OPS=y
287CONFIG_PACKET=y 303CONFIG_PACKET=y
288# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
289CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -339,6 +355,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_LAPB is not set 355# CONFIG_LAPB is not set
340# CONFIG_ECONET is not set 356# CONFIG_ECONET is not set
341# CONFIG_WAN_ROUTER is not set 357# CONFIG_WAN_ROUTER is not set
358# CONFIG_PHONET is not set
342# CONFIG_NET_SCHED is not set 359# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set 360# CONFIG_DCB is not set
344 361
@@ -351,7 +368,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_IRDA is not set 368# CONFIG_IRDA is not set
352# CONFIG_BT is not set 369# CONFIG_BT is not set
353# CONFIG_AF_RXRPC is not set 370# CONFIG_AF_RXRPC is not set
354# CONFIG_PHONET is not set
355CONFIG_WIRELESS=y 371CONFIG_WIRELESS=y
356# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
357CONFIG_WIRELESS_OLD_REGULATORY=y 373CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -451,7 +467,6 @@ CONFIG_MTD_CFI_UTIL=y
451# LPDDR flash memory drivers 467# LPDDR flash memory drivers
452# 468#
453# CONFIG_MTD_LPDDR is not set 469# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455 470
456# 471#
457# UBI - Unsorted block images 472# UBI - Unsorted block images
@@ -481,19 +496,27 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
481# CONFIG_BLK_DEV_HD is not set 496# CONFIG_BLK_DEV_HD is not set
482CONFIG_MISC_DEVICES=y 497CONFIG_MISC_DEVICES=y
483# CONFIG_PHANTOM is not set 498# CONFIG_PHANTOM is not set
484# CONFIG_EEPROM_93CX6 is not set
485# CONFIG_SGI_IOC4 is not set 499# CONFIG_SGI_IOC4 is not set
486# CONFIG_TIFM_CORE is not set 500# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set 501# CONFIG_ICS932S401 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 502# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 503# CONFIG_HP_ILO is not set
504# CONFIG_ISL29003 is not set
490# CONFIG_C2PORT is not set 505# CONFIG_C2PORT is not set
506
507#
508# EEPROM support
509#
510# CONFIG_EEPROM_AT24 is not set
511# CONFIG_EEPROM_LEGACY is not set
512# CONFIG_EEPROM_93CX6 is not set
491CONFIG_HAVE_IDE=y 513CONFIG_HAVE_IDE=y
492CONFIG_IDE=y 514CONFIG_IDE=y
493 515
494# 516#
495# Please see Documentation/ide/ide.txt for help/info on IDE drives 517# Please see Documentation/ide/ide.txt for help/info on IDE drives
496# 518#
519CONFIG_IDE_XFER_MODE=y
497CONFIG_IDE_TIMINGS=y 520CONFIG_IDE_TIMINGS=y
498# CONFIG_BLK_DEV_IDE_SATA is not set 521# CONFIG_BLK_DEV_IDE_SATA is not set
499CONFIG_IDE_GD=y 522CONFIG_IDE_GD=y
@@ -568,6 +591,7 @@ CONFIG_BLK_DEV_IDEDMA=y
568# CONFIG_I2O is not set 591# CONFIG_I2O is not set
569# CONFIG_MACINTOSH_DRIVERS is not set 592# CONFIG_MACINTOSH_DRIVERS is not set
570CONFIG_NETDEVICES=y 593CONFIG_NETDEVICES=y
594CONFIG_COMPAT_NET_DEV_OPS=y
571# CONFIG_DUMMY is not set 595# CONFIG_DUMMY is not set
572# CONFIG_BONDING is not set 596# CONFIG_BONDING is not set
573# CONFIG_MACVLAN is not set 597# CONFIG_MACVLAN is not set
@@ -601,6 +625,8 @@ CONFIG_MII=y
601# CONFIG_SUNGEM is not set 625# CONFIG_SUNGEM is not set
602# CONFIG_CASSINI is not set 626# CONFIG_CASSINI is not set
603# CONFIG_NET_VENDOR_3COM is not set 627# CONFIG_NET_VENDOR_3COM is not set
628# CONFIG_ETHOC is not set
629# CONFIG_DNET is not set
604# CONFIG_NET_TULIP is not set 630# CONFIG_NET_TULIP is not set
605# CONFIG_HP100 is not set 631# CONFIG_HP100 is not set
606# CONFIG_IBM_NEW_EMAC_ZMII is not set 632# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -639,6 +665,7 @@ CONFIG_NETDEV_1000=y
639# CONFIG_E1000E is not set 665# CONFIG_E1000E is not set
640# CONFIG_IP1000 is not set 666# CONFIG_IP1000 is not set
641# CONFIG_IGB is not set 667# CONFIG_IGB is not set
668# CONFIG_IGBVF is not set
642# CONFIG_NS83820 is not set 669# CONFIG_NS83820 is not set
643# CONFIG_HAMACHI is not set 670# CONFIG_HAMACHI is not set
644# CONFIG_YELLOWFIN is not set 671# CONFIG_YELLOWFIN is not set
@@ -649,10 +676,12 @@ CONFIG_NETDEV_1000=y
649# CONFIG_VIA_VELOCITY is not set 676# CONFIG_VIA_VELOCITY is not set
650# CONFIG_TIGON3 is not set 677# CONFIG_TIGON3 is not set
651# CONFIG_BNX2 is not set 678# CONFIG_BNX2 is not set
679CONFIG_FSL_PQ_MDIO=y
652CONFIG_GIANFAR=y 680CONFIG_GIANFAR=y
653# CONFIG_QLA3XXX is not set 681# CONFIG_QLA3XXX is not set
654# CONFIG_ATL1 is not set 682# CONFIG_ATL1 is not set
655# CONFIG_ATL1E is not set 683# CONFIG_ATL1E is not set
684# CONFIG_ATL1C is not set
656# CONFIG_JME is not set 685# CONFIG_JME is not set
657CONFIG_NETDEV_10000=y 686CONFIG_NETDEV_10000=y
658# CONFIG_CHELSIO_T1 is not set 687# CONFIG_CHELSIO_T1 is not set
@@ -662,6 +691,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
662# CONFIG_IXGBE is not set 691# CONFIG_IXGBE is not set
663# CONFIG_IXGB is not set 692# CONFIG_IXGB is not set
664# CONFIG_S2IO is not set 693# CONFIG_S2IO is not set
694# CONFIG_VXGE is not set
665# CONFIG_MYRI10GE is not set 695# CONFIG_MYRI10GE is not set
666# CONFIG_NETXEN_NIC is not set 696# CONFIG_NETXEN_NIC is not set
667# CONFIG_NIU is not set 697# CONFIG_NIU is not set
@@ -671,6 +701,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
671# CONFIG_BNX2X is not set 701# CONFIG_BNX2X is not set
672# CONFIG_QLGE is not set 702# CONFIG_QLGE is not set
673# CONFIG_SFC is not set 703# CONFIG_SFC is not set
704# CONFIG_BE2NET is not set
674# CONFIG_TR is not set 705# CONFIG_TR is not set
675 706
676# 707#
@@ -678,7 +709,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
678# 709#
679# CONFIG_WLAN_PRE80211 is not set 710# CONFIG_WLAN_PRE80211 is not set
680# CONFIG_WLAN_80211 is not set 711# CONFIG_WLAN_80211 is not set
681# CONFIG_IWLWIFI_LEDS is not set
682 712
683# 713#
684# Enable WiMAX (Networking options) to see the WiMAX drivers 714# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -761,6 +791,7 @@ CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set 791# CONFIG_HVC_UDBG is not set
762# CONFIG_IPMI_HANDLER is not set 792# CONFIG_IPMI_HANDLER is not set
763CONFIG_HW_RANDOM=y 793CONFIG_HW_RANDOM=y
794# CONFIG_HW_RANDOM_TIMERIOMEM is not set
764# CONFIG_NVRAM is not set 795# CONFIG_NVRAM is not set
765CONFIG_GEN_RTC=y 796CONFIG_GEN_RTC=y
766# CONFIG_GEN_RTC_X is not set 797# CONFIG_GEN_RTC_X is not set
@@ -825,12 +856,9 @@ CONFIG_I2C_MPC=y
825# Miscellaneous I2C Chip support 856# Miscellaneous I2C Chip support
826# 857#
827# CONFIG_DS1682 is not set 858# CONFIG_DS1682 is not set
828# CONFIG_EEPROM_AT24 is not set
829# CONFIG_EEPROM_LEGACY is not set
830# CONFIG_SENSORS_PCF8574 is not set 859# CONFIG_SENSORS_PCF8574 is not set
831# CONFIG_PCF8575 is not set 860# CONFIG_PCF8575 is not set
832# CONFIG_SENSORS_PCA9539 is not set 861# CONFIG_SENSORS_PCA9539 is not set
833# CONFIG_SENSORS_PCF8591 is not set
834# CONFIG_SENSORS_MAX6875 is not set 862# CONFIG_SENSORS_MAX6875 is not set
835# CONFIG_SENSORS_TSL2550 is not set 863# CONFIG_SENSORS_TSL2550 is not set
836# CONFIG_I2C_DEBUG_CORE is not set 864# CONFIG_I2C_DEBUG_CORE is not set
@@ -885,6 +913,7 @@ CONFIG_HWMON=y
885# CONFIG_SENSORS_F71805F is not set 913# CONFIG_SENSORS_F71805F is not set
886# CONFIG_SENSORS_F71882FG is not set 914# CONFIG_SENSORS_F71882FG is not set
887# CONFIG_SENSORS_F75375S is not set 915# CONFIG_SENSORS_F75375S is not set
916# CONFIG_SENSORS_G760A is not set
888# CONFIG_SENSORS_GL518SM is not set 917# CONFIG_SENSORS_GL518SM is not set
889# CONFIG_SENSORS_GL520SM is not set 918# CONFIG_SENSORS_GL520SM is not set
890# CONFIG_SENSORS_IT87 is not set 919# CONFIG_SENSORS_IT87 is not set
@@ -899,11 +928,15 @@ CONFIG_SENSORS_LM75=y
899# CONFIG_SENSORS_LM90 is not set 928# CONFIG_SENSORS_LM90 is not set
900# CONFIG_SENSORS_LM92 is not set 929# CONFIG_SENSORS_LM92 is not set
901# CONFIG_SENSORS_LM93 is not set 930# CONFIG_SENSORS_LM93 is not set
931# CONFIG_SENSORS_LTC4215 is not set
902# CONFIG_SENSORS_LTC4245 is not set 932# CONFIG_SENSORS_LTC4245 is not set
933# CONFIG_SENSORS_LM95241 is not set
903# CONFIG_SENSORS_MAX1619 is not set 934# CONFIG_SENSORS_MAX1619 is not set
904# CONFIG_SENSORS_MAX6650 is not set 935# CONFIG_SENSORS_MAX6650 is not set
905# CONFIG_SENSORS_PC87360 is not set 936# CONFIG_SENSORS_PC87360 is not set
906# CONFIG_SENSORS_PC87427 is not set 937# CONFIG_SENSORS_PC87427 is not set
938# CONFIG_SENSORS_PCF8591 is not set
939# CONFIG_SENSORS_SHT15 is not set
907# CONFIG_SENSORS_SIS5595 is not set 940# CONFIG_SENSORS_SIS5595 is not set
908# CONFIG_SENSORS_DME1737 is not set 941# CONFIG_SENSORS_DME1737 is not set
909# CONFIG_SENSORS_SMSC47M1 is not set 942# CONFIG_SENSORS_SMSC47M1 is not set
@@ -988,7 +1021,6 @@ CONFIG_HID=y
988# 1021#
989# Special HID drivers 1022# Special HID drivers
990# 1023#
991CONFIG_HID_COMPAT=y
992CONFIG_USB_SUPPORT=y 1024CONFIG_USB_SUPPORT=y
993CONFIG_USB_ARCH_HAS_HCD=y 1025CONFIG_USB_ARCH_HAS_HCD=y
994CONFIG_USB_ARCH_HAS_OHCI=y 1026CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1002,7 +1034,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1002# 1034#
1003 1035
1004# 1036#
1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1037# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1006# 1038#
1007# CONFIG_USB_GADGET is not set 1039# CONFIG_USB_GADGET is not set
1008 1040
@@ -1018,6 +1050,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1018# CONFIG_EDAC is not set 1050# CONFIG_EDAC is not set
1019# CONFIG_RTC_CLASS is not set 1051# CONFIG_RTC_CLASS is not set
1020# CONFIG_DMADEVICES is not set 1052# CONFIG_DMADEVICES is not set
1053# CONFIG_AUXDISPLAY is not set
1021# CONFIG_UIO is not set 1054# CONFIG_UIO is not set
1022# CONFIG_STAGING is not set 1055# CONFIG_STAGING is not set
1023 1056
@@ -1028,6 +1061,7 @@ CONFIG_EXT2_FS=y
1028# CONFIG_EXT2_FS_XATTR is not set 1061# CONFIG_EXT2_FS_XATTR is not set
1029# CONFIG_EXT2_FS_XIP is not set 1062# CONFIG_EXT2_FS_XIP is not set
1030CONFIG_EXT3_FS=y 1063CONFIG_EXT3_FS=y
1064# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1031CONFIG_EXT3_FS_XATTR=y 1065CONFIG_EXT3_FS_XATTR=y
1032# CONFIG_EXT3_FS_POSIX_ACL is not set 1066# CONFIG_EXT3_FS_POSIX_ACL is not set
1033# CONFIG_EXT3_FS_SECURITY is not set 1067# CONFIG_EXT3_FS_SECURITY is not set
@@ -1050,6 +1084,11 @@ CONFIG_INOTIFY_USER=y
1050# CONFIG_FUSE_FS is not set 1084# CONFIG_FUSE_FS is not set
1051 1085
1052# 1086#
1087# Caches
1088#
1089# CONFIG_FSCACHE is not set
1090
1091#
1053# CD-ROM/DVD Filesystems 1092# CD-ROM/DVD Filesystems
1054# 1093#
1055# CONFIG_ISO9660_FS is not set 1094# CONFIG_ISO9660_FS is not set
@@ -1103,6 +1142,7 @@ CONFIG_CRAMFS=y
1103# CONFIG_ROMFS_FS is not set 1142# CONFIG_ROMFS_FS is not set
1104# CONFIG_SYSV_FS is not set 1143# CONFIG_SYSV_FS is not set
1105# CONFIG_UFS_FS is not set 1144# CONFIG_UFS_FS is not set
1145# CONFIG_NILFS2_FS is not set
1106CONFIG_NETWORK_FILESYSTEMS=y 1146CONFIG_NETWORK_FILESYSTEMS=y
1107CONFIG_NFS_FS=y 1147CONFIG_NFS_FS=y
1108# CONFIG_NFS_V3 is not set 1148# CONFIG_NFS_V3 is not set
@@ -1112,7 +1152,6 @@ CONFIG_ROOT_NFS=y
1112CONFIG_LOCKD=y 1152CONFIG_LOCKD=y
1113CONFIG_NFS_COMMON=y 1153CONFIG_NFS_COMMON=y
1114CONFIG_SUNRPC=y 1154CONFIG_SUNRPC=y
1115# CONFIG_SUNRPC_REGISTER_V4 is not set
1116# CONFIG_RPCSEC_GSS_KRB5 is not set 1155# CONFIG_RPCSEC_GSS_KRB5 is not set
1117# CONFIG_RPCSEC_GSS_SPKM3 is not set 1156# CONFIG_RPCSEC_GSS_SPKM3 is not set
1118# CONFIG_SMB_FS is not set 1157# CONFIG_SMB_FS is not set
@@ -1140,6 +1179,7 @@ CONFIG_PARTITION_ADVANCED=y
1140# CONFIG_SYSV68_PARTITION is not set 1179# CONFIG_SYSV68_PARTITION is not set
1141# CONFIG_NLS is not set 1180# CONFIG_NLS is not set
1142# CONFIG_DLM is not set 1181# CONFIG_DLM is not set
1182# CONFIG_BINARY_PRINTF is not set
1143 1183
1144# 1184#
1145# Library routines 1185# Library routines
@@ -1155,11 +1195,12 @@ CONFIG_CRC32=y
1155# CONFIG_LIBCRC32C is not set 1195# CONFIG_LIBCRC32C is not set
1156CONFIG_ZLIB_INFLATE=y 1196CONFIG_ZLIB_INFLATE=y
1157CONFIG_ZLIB_DEFLATE=y 1197CONFIG_ZLIB_DEFLATE=y
1158CONFIG_PLIST=y 1198CONFIG_DECOMPRESS_GZIP=y
1159CONFIG_HAS_IOMEM=y 1199CONFIG_HAS_IOMEM=y
1160CONFIG_HAS_IOPORT=y 1200CONFIG_HAS_IOPORT=y
1161CONFIG_HAS_DMA=y 1201CONFIG_HAS_DMA=y
1162CONFIG_HAVE_LMB=y 1202CONFIG_HAVE_LMB=y
1203CONFIG_NLATTR=y
1163 1204
1164# 1205#
1165# Kernel hacking 1206# Kernel hacking
@@ -1181,13 +1222,24 @@ CONFIG_FRAME_WARN=1024
1181# CONFIG_LATENCYTOP is not set 1222# CONFIG_LATENCYTOP is not set
1182CONFIG_SYSCTL_SYSCALL_CHECK=y 1223CONFIG_SYSCTL_SYSCALL_CHECK=y
1183CONFIG_HAVE_FUNCTION_TRACER=y 1224CONFIG_HAVE_FUNCTION_TRACER=y
1225CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y 1226CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1227CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1228CONFIG_TRACING_SUPPORT=y
1186 1229
1187# 1230#
1188# Tracers 1231# Tracers
1189# 1232#
1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1233# CONFIG_FUNCTION_TRACER is not set
1234# CONFIG_SCHED_TRACER is not set
1235# CONFIG_CONTEXT_SWITCH_TRACER is not set
1236# CONFIG_EVENT_TRACER is not set
1237# CONFIG_BOOT_TRACER is not set
1238# CONFIG_TRACE_BRANCH_PROFILING is not set
1239# CONFIG_STACK_TRACER is not set
1240# CONFIG_KMEMTRACE is not set
1241# CONFIG_WORKQUEUE_TRACER is not set
1242# CONFIG_BLK_DEV_IO_TRACE is not set
1191# CONFIG_SAMPLES is not set 1243# CONFIG_SAMPLES is not set
1192CONFIG_HAVE_ARCH_KGDB=y 1244CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64 1245CONFIG_PRINT_STACK_DEPTH=64
@@ -1278,6 +1330,7 @@ CONFIG_CRYPTO=y
1278# Compression 1330# Compression
1279# 1331#
1280# CONFIG_CRYPTO_DEFLATE is not set 1332# CONFIG_CRYPTO_DEFLATE is not set
1333# CONFIG_CRYPTO_ZLIB is not set
1281# CONFIG_CRYPTO_LZO is not set 1334# CONFIG_CRYPTO_LZO is not set
1282 1335
1283# 1336#
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index a25009174f37..f41cc2444d48 100644
--- a/arch/powerpc/configs/85xx/tqm8560_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8560_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:22 2009 4# Wed May 13 17:22:26 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
@@ -90,19 +101,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 103CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 111CONFIG_SYSCTL_SYSCALL=y
97# CONFIG_KALLSYMS is not set 112# CONFIG_KALLSYMS is not set
113# CONFIG_STRIP_ASM_SYMS is not set
98# CONFIG_HOTPLUG is not set 114# CONFIG_HOTPLUG is not set
99CONFIG_PRINTK=y 115CONFIG_PRINTK=y
100CONFIG_BUG=y 116CONFIG_BUG=y
101CONFIG_ELF_CORE=y 117CONFIG_ELF_CORE=y
102CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 118CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 119CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106# CONFIG_EPOLL is not set 120# CONFIG_EPOLL is not set
107CONFIG_SIGNALFD=y 121CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 122CONFIG_TIMERFD=y
@@ -112,10 +126,12 @@ CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 126CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 127CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 128CONFIG_SLUB_DEBUG=y
129CONFIG_COMPAT_BRK=y
115# CONFIG_SLAB is not set 130# CONFIG_SLAB is not set
116CONFIG_SLUB=y 131CONFIG_SLUB=y
117# CONFIG_SLOB is not set 132# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 133# CONFIG_PROFILING is not set
134# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y 137CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,6 +139,7 @@ CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
125CONFIG_HAVE_CLK=y 141CONFIG_HAVE_CLK=y
142# CONFIG_SLOW_WORK is not set
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 143# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 144CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 145CONFIG_RT_MUTEXES=y
@@ -130,7 +147,6 @@ CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 147# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 148CONFIG_BLOCK=y
132# CONFIG_LBD is not set 149# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
136 152
@@ -146,11 +162,6 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_CFQ is not set 162# CONFIG_DEFAULT_CFQ is not set
147# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
149CONFIG_CLASSIC_RCU=y
150# CONFIG_TREE_RCU is not set
151# CONFIG_PREEMPT_RCU is not set
152# CONFIG_TREE_RCU_TRACE is not set
153# CONFIG_PREEMPT_RCU_TRACE is not set
154# CONFIG_FREEZER is not set 165# CONFIG_FREEZER is not set
155 166
156# 167#
@@ -166,6 +177,7 @@ CONFIG_MPC85xx=y
166# CONFIG_MPC85xx_MDS is not set 177# CONFIG_MPC85xx_MDS is not set
167# CONFIG_MPC8536_DS is not set 178# CONFIG_MPC8536_DS is not set
168# CONFIG_MPC85xx_DS is not set 179# CONFIG_MPC85xx_DS is not set
180# CONFIG_SOCRATES is not set
169# CONFIG_KSI8560 is not set 181# CONFIG_KSI8560 is not set
170# CONFIG_STX_GP3 is not set 182# CONFIG_STX_GP3 is not set
171# CONFIG_TQM8540 is not set 183# CONFIG_TQM8540 is not set
@@ -235,9 +247,12 @@ CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
237CONFIG_UNEVICTABLE_LRU=y 249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_HAVE_MLOCK=y
251CONFIG_HAVE_MLOCKED_PAGE_BIT=y
238CONFIG_PPC_4K_PAGES=y 252CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set 253# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set 254# CONFIG_PPC_64K_PAGES is not set
255# CONFIG_PPC_256K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=11 256CONFIG_FORCE_MAX_ZONEORDER=11
242# CONFIG_PROC_DEVICETREE is not set 257# CONFIG_PROC_DEVICETREE is not set
243# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
@@ -262,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 277# CONFIG_PCI_MSI is not set
263# CONFIG_PCI_LEGACY is not set 278# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set 279# CONFIG_PCI_STUB is not set
280# CONFIG_PCI_IOV is not set
265# CONFIG_HAS_RAPIDIO is not set 281# CONFIG_HAS_RAPIDIO is not set
266 282
267# 283#
@@ -273,17 +289,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# Default settings for advanced configuration options are used 289# Default settings for advanced configuration options are used
274# 290#
275CONFIG_LOWMEM_SIZE=0x30000000 291CONFIG_LOWMEM_SIZE=0x30000000
292CONFIG_LOWMEM_CAM_NUM=3
276CONFIG_PAGE_OFFSET=0xc0000000 293CONFIG_PAGE_OFFSET=0xc0000000
277CONFIG_KERNEL_START=0xc0000000 294CONFIG_KERNEL_START=0xc0000000
278CONFIG_PHYSICAL_START=0x00000000 295CONFIG_PHYSICAL_START=0x00000000
279CONFIG_PHYSICAL_ALIGN=0x10000000 296CONFIG_PHYSICAL_ALIGN=0x04000000
280CONFIG_TASK_SIZE=0xc0000000 297CONFIG_TASK_SIZE=0xc0000000
281CONFIG_NET=y 298CONFIG_NET=y
282 299
283# 300#
284# Networking options 301# Networking options
285# 302#
286CONFIG_COMPAT_NET_DEV_OPS=y
287CONFIG_PACKET=y 303CONFIG_PACKET=y
288# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
289CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -339,6 +355,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_LAPB is not set 355# CONFIG_LAPB is not set
340# CONFIG_ECONET is not set 356# CONFIG_ECONET is not set
341# CONFIG_WAN_ROUTER is not set 357# CONFIG_WAN_ROUTER is not set
358# CONFIG_PHONET is not set
342# CONFIG_NET_SCHED is not set 359# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set 360# CONFIG_DCB is not set
344 361
@@ -351,7 +368,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_IRDA is not set 368# CONFIG_IRDA is not set
352# CONFIG_BT is not set 369# CONFIG_BT is not set
353# CONFIG_AF_RXRPC is not set 370# CONFIG_AF_RXRPC is not set
354# CONFIG_PHONET is not set
355CONFIG_WIRELESS=y 371CONFIG_WIRELESS=y
356# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
357CONFIG_WIRELESS_OLD_REGULATORY=y 373CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -451,7 +467,6 @@ CONFIG_MTD_CFI_UTIL=y
451# LPDDR flash memory drivers 467# LPDDR flash memory drivers
452# 468#
453# CONFIG_MTD_LPDDR is not set 469# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455 470
456# 471#
457# UBI - Unsorted block images 472# UBI - Unsorted block images
@@ -481,19 +496,27 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
481# CONFIG_BLK_DEV_HD is not set 496# CONFIG_BLK_DEV_HD is not set
482CONFIG_MISC_DEVICES=y 497CONFIG_MISC_DEVICES=y
483# CONFIG_PHANTOM is not set 498# CONFIG_PHANTOM is not set
484# CONFIG_EEPROM_93CX6 is not set
485# CONFIG_SGI_IOC4 is not set 499# CONFIG_SGI_IOC4 is not set
486# CONFIG_TIFM_CORE is not set 500# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set 501# CONFIG_ICS932S401 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 502# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 503# CONFIG_HP_ILO is not set
504# CONFIG_ISL29003 is not set
490# CONFIG_C2PORT is not set 505# CONFIG_C2PORT is not set
506
507#
508# EEPROM support
509#
510# CONFIG_EEPROM_AT24 is not set
511# CONFIG_EEPROM_LEGACY is not set
512# CONFIG_EEPROM_93CX6 is not set
491CONFIG_HAVE_IDE=y 513CONFIG_HAVE_IDE=y
492CONFIG_IDE=y 514CONFIG_IDE=y
493 515
494# 516#
495# Please see Documentation/ide/ide.txt for help/info on IDE drives 517# Please see Documentation/ide/ide.txt for help/info on IDE drives
496# 518#
519CONFIG_IDE_XFER_MODE=y
497CONFIG_IDE_TIMINGS=y 520CONFIG_IDE_TIMINGS=y
498# CONFIG_BLK_DEV_IDE_SATA is not set 521# CONFIG_BLK_DEV_IDE_SATA is not set
499CONFIG_IDE_GD=y 522CONFIG_IDE_GD=y
@@ -568,6 +591,7 @@ CONFIG_BLK_DEV_IDEDMA=y
568# CONFIG_I2O is not set 591# CONFIG_I2O is not set
569# CONFIG_MACINTOSH_DRIVERS is not set 592# CONFIG_MACINTOSH_DRIVERS is not set
570CONFIG_NETDEVICES=y 593CONFIG_NETDEVICES=y
594CONFIG_COMPAT_NET_DEV_OPS=y
571# CONFIG_DUMMY is not set 595# CONFIG_DUMMY is not set
572# CONFIG_BONDING is not set 596# CONFIG_BONDING is not set
573# CONFIG_MACVLAN is not set 597# CONFIG_MACVLAN is not set
@@ -601,6 +625,8 @@ CONFIG_MII=y
601# CONFIG_SUNGEM is not set 625# CONFIG_SUNGEM is not set
602# CONFIG_CASSINI is not set 626# CONFIG_CASSINI is not set
603# CONFIG_NET_VENDOR_3COM is not set 627# CONFIG_NET_VENDOR_3COM is not set
628# CONFIG_ETHOC is not set
629# CONFIG_DNET is not set
604# CONFIG_NET_TULIP is not set 630# CONFIG_NET_TULIP is not set
605# CONFIG_HP100 is not set 631# CONFIG_HP100 is not set
606# CONFIG_IBM_NEW_EMAC_ZMII is not set 632# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -639,6 +665,7 @@ CONFIG_NETDEV_1000=y
639# CONFIG_E1000E is not set 665# CONFIG_E1000E is not set
640# CONFIG_IP1000 is not set 666# CONFIG_IP1000 is not set
641# CONFIG_IGB is not set 667# CONFIG_IGB is not set
668# CONFIG_IGBVF is not set
642# CONFIG_NS83820 is not set 669# CONFIG_NS83820 is not set
643# CONFIG_HAMACHI is not set 670# CONFIG_HAMACHI is not set
644# CONFIG_YELLOWFIN is not set 671# CONFIG_YELLOWFIN is not set
@@ -649,10 +676,12 @@ CONFIG_NETDEV_1000=y
649# CONFIG_VIA_VELOCITY is not set 676# CONFIG_VIA_VELOCITY is not set
650# CONFIG_TIGON3 is not set 677# CONFIG_TIGON3 is not set
651# CONFIG_BNX2 is not set 678# CONFIG_BNX2 is not set
679CONFIG_FSL_PQ_MDIO=y
652CONFIG_GIANFAR=y 680CONFIG_GIANFAR=y
653# CONFIG_QLA3XXX is not set 681# CONFIG_QLA3XXX is not set
654# CONFIG_ATL1 is not set 682# CONFIG_ATL1 is not set
655# CONFIG_ATL1E is not set 683# CONFIG_ATL1E is not set
684# CONFIG_ATL1C is not set
656# CONFIG_JME is not set 685# CONFIG_JME is not set
657CONFIG_NETDEV_10000=y 686CONFIG_NETDEV_10000=y
658# CONFIG_CHELSIO_T1 is not set 687# CONFIG_CHELSIO_T1 is not set
@@ -662,6 +691,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
662# CONFIG_IXGBE is not set 691# CONFIG_IXGBE is not set
663# CONFIG_IXGB is not set 692# CONFIG_IXGB is not set
664# CONFIG_S2IO is not set 693# CONFIG_S2IO is not set
694# CONFIG_VXGE is not set
665# CONFIG_MYRI10GE is not set 695# CONFIG_MYRI10GE is not set
666# CONFIG_NETXEN_NIC is not set 696# CONFIG_NETXEN_NIC is not set
667# CONFIG_NIU is not set 697# CONFIG_NIU is not set
@@ -671,6 +701,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
671# CONFIG_BNX2X is not set 701# CONFIG_BNX2X is not set
672# CONFIG_QLGE is not set 702# CONFIG_QLGE is not set
673# CONFIG_SFC is not set 703# CONFIG_SFC is not set
704# CONFIG_BE2NET is not set
674# CONFIG_TR is not set 705# CONFIG_TR is not set
675 706
676# 707#
@@ -678,7 +709,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
678# 709#
679# CONFIG_WLAN_PRE80211 is not set 710# CONFIG_WLAN_PRE80211 is not set
680# CONFIG_WLAN_80211 is not set 711# CONFIG_WLAN_80211 is not set
681# CONFIG_IWLWIFI_LEDS is not set
682 712
683# 713#
684# Enable WiMAX (Networking options) to see the WiMAX drivers 714# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -761,6 +791,7 @@ CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set 791# CONFIG_HVC_UDBG is not set
762# CONFIG_IPMI_HANDLER is not set 792# CONFIG_IPMI_HANDLER is not set
763CONFIG_HW_RANDOM=y 793CONFIG_HW_RANDOM=y
794# CONFIG_HW_RANDOM_TIMERIOMEM is not set
764# CONFIG_NVRAM is not set 795# CONFIG_NVRAM is not set
765CONFIG_GEN_RTC=y 796CONFIG_GEN_RTC=y
766# CONFIG_GEN_RTC_X is not set 797# CONFIG_GEN_RTC_X is not set
@@ -825,12 +856,9 @@ CONFIG_I2C_MPC=y
825# Miscellaneous I2C Chip support 856# Miscellaneous I2C Chip support
826# 857#
827# CONFIG_DS1682 is not set 858# CONFIG_DS1682 is not set
828# CONFIG_EEPROM_AT24 is not set
829# CONFIG_EEPROM_LEGACY is not set
830# CONFIG_SENSORS_PCF8574 is not set 859# CONFIG_SENSORS_PCF8574 is not set
831# CONFIG_PCF8575 is not set 860# CONFIG_PCF8575 is not set
832# CONFIG_SENSORS_PCA9539 is not set 861# CONFIG_SENSORS_PCA9539 is not set
833# CONFIG_SENSORS_PCF8591 is not set
834# CONFIG_SENSORS_MAX6875 is not set 862# CONFIG_SENSORS_MAX6875 is not set
835# CONFIG_SENSORS_TSL2550 is not set 863# CONFIG_SENSORS_TSL2550 is not set
836# CONFIG_I2C_DEBUG_CORE is not set 864# CONFIG_I2C_DEBUG_CORE is not set
@@ -885,6 +913,7 @@ CONFIG_HWMON=y
885# CONFIG_SENSORS_F71805F is not set 913# CONFIG_SENSORS_F71805F is not set
886# CONFIG_SENSORS_F71882FG is not set 914# CONFIG_SENSORS_F71882FG is not set
887# CONFIG_SENSORS_F75375S is not set 915# CONFIG_SENSORS_F75375S is not set
916# CONFIG_SENSORS_G760A is not set
888# CONFIG_SENSORS_GL518SM is not set 917# CONFIG_SENSORS_GL518SM is not set
889# CONFIG_SENSORS_GL520SM is not set 918# CONFIG_SENSORS_GL520SM is not set
890# CONFIG_SENSORS_IT87 is not set 919# CONFIG_SENSORS_IT87 is not set
@@ -899,11 +928,15 @@ CONFIG_SENSORS_LM75=y
899# CONFIG_SENSORS_LM90 is not set 928# CONFIG_SENSORS_LM90 is not set
900# CONFIG_SENSORS_LM92 is not set 929# CONFIG_SENSORS_LM92 is not set
901# CONFIG_SENSORS_LM93 is not set 930# CONFIG_SENSORS_LM93 is not set
931# CONFIG_SENSORS_LTC4215 is not set
902# CONFIG_SENSORS_LTC4245 is not set 932# CONFIG_SENSORS_LTC4245 is not set
933# CONFIG_SENSORS_LM95241 is not set
903# CONFIG_SENSORS_MAX1619 is not set 934# CONFIG_SENSORS_MAX1619 is not set
904# CONFIG_SENSORS_MAX6650 is not set 935# CONFIG_SENSORS_MAX6650 is not set
905# CONFIG_SENSORS_PC87360 is not set 936# CONFIG_SENSORS_PC87360 is not set
906# CONFIG_SENSORS_PC87427 is not set 937# CONFIG_SENSORS_PC87427 is not set
938# CONFIG_SENSORS_PCF8591 is not set
939# CONFIG_SENSORS_SHT15 is not set
907# CONFIG_SENSORS_SIS5595 is not set 940# CONFIG_SENSORS_SIS5595 is not set
908# CONFIG_SENSORS_DME1737 is not set 941# CONFIG_SENSORS_DME1737 is not set
909# CONFIG_SENSORS_SMSC47M1 is not set 942# CONFIG_SENSORS_SMSC47M1 is not set
@@ -988,7 +1021,6 @@ CONFIG_HID=y
988# 1021#
989# Special HID drivers 1022# Special HID drivers
990# 1023#
991CONFIG_HID_COMPAT=y
992CONFIG_USB_SUPPORT=y 1024CONFIG_USB_SUPPORT=y
993CONFIG_USB_ARCH_HAS_HCD=y 1025CONFIG_USB_ARCH_HAS_HCD=y
994CONFIG_USB_ARCH_HAS_OHCI=y 1026CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1002,7 +1034,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1002# 1034#
1003 1035
1004# 1036#
1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1037# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1006# 1038#
1007# CONFIG_USB_GADGET is not set 1039# CONFIG_USB_GADGET is not set
1008 1040
@@ -1018,6 +1050,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1018# CONFIG_EDAC is not set 1050# CONFIG_EDAC is not set
1019# CONFIG_RTC_CLASS is not set 1051# CONFIG_RTC_CLASS is not set
1020# CONFIG_DMADEVICES is not set 1052# CONFIG_DMADEVICES is not set
1053# CONFIG_AUXDISPLAY is not set
1021# CONFIG_UIO is not set 1054# CONFIG_UIO is not set
1022# CONFIG_STAGING is not set 1055# CONFIG_STAGING is not set
1023 1056
@@ -1028,6 +1061,7 @@ CONFIG_EXT2_FS=y
1028# CONFIG_EXT2_FS_XATTR is not set 1061# CONFIG_EXT2_FS_XATTR is not set
1029# CONFIG_EXT2_FS_XIP is not set 1062# CONFIG_EXT2_FS_XIP is not set
1030CONFIG_EXT3_FS=y 1063CONFIG_EXT3_FS=y
1064# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1031CONFIG_EXT3_FS_XATTR=y 1065CONFIG_EXT3_FS_XATTR=y
1032# CONFIG_EXT3_FS_POSIX_ACL is not set 1066# CONFIG_EXT3_FS_POSIX_ACL is not set
1033# CONFIG_EXT3_FS_SECURITY is not set 1067# CONFIG_EXT3_FS_SECURITY is not set
@@ -1050,6 +1084,11 @@ CONFIG_INOTIFY_USER=y
1050# CONFIG_FUSE_FS is not set 1084# CONFIG_FUSE_FS is not set
1051 1085
1052# 1086#
1087# Caches
1088#
1089# CONFIG_FSCACHE is not set
1090
1091#
1053# CD-ROM/DVD Filesystems 1092# CD-ROM/DVD Filesystems
1054# 1093#
1055# CONFIG_ISO9660_FS is not set 1094# CONFIG_ISO9660_FS is not set
@@ -1103,6 +1142,7 @@ CONFIG_CRAMFS=y
1103# CONFIG_ROMFS_FS is not set 1142# CONFIG_ROMFS_FS is not set
1104# CONFIG_SYSV_FS is not set 1143# CONFIG_SYSV_FS is not set
1105# CONFIG_UFS_FS is not set 1144# CONFIG_UFS_FS is not set
1145# CONFIG_NILFS2_FS is not set
1106CONFIG_NETWORK_FILESYSTEMS=y 1146CONFIG_NETWORK_FILESYSTEMS=y
1107CONFIG_NFS_FS=y 1147CONFIG_NFS_FS=y
1108# CONFIG_NFS_V3 is not set 1148# CONFIG_NFS_V3 is not set
@@ -1112,7 +1152,6 @@ CONFIG_ROOT_NFS=y
1112CONFIG_LOCKD=y 1152CONFIG_LOCKD=y
1113CONFIG_NFS_COMMON=y 1153CONFIG_NFS_COMMON=y
1114CONFIG_SUNRPC=y 1154CONFIG_SUNRPC=y
1115# CONFIG_SUNRPC_REGISTER_V4 is not set
1116# CONFIG_RPCSEC_GSS_KRB5 is not set 1155# CONFIG_RPCSEC_GSS_KRB5 is not set
1117# CONFIG_RPCSEC_GSS_SPKM3 is not set 1156# CONFIG_RPCSEC_GSS_SPKM3 is not set
1118# CONFIG_SMB_FS is not set 1157# CONFIG_SMB_FS is not set
@@ -1140,6 +1179,7 @@ CONFIG_PARTITION_ADVANCED=y
1140# CONFIG_SYSV68_PARTITION is not set 1179# CONFIG_SYSV68_PARTITION is not set
1141# CONFIG_NLS is not set 1180# CONFIG_NLS is not set
1142# CONFIG_DLM is not set 1181# CONFIG_DLM is not set
1182# CONFIG_BINARY_PRINTF is not set
1143 1183
1144# 1184#
1145# Library routines 1185# Library routines
@@ -1155,11 +1195,12 @@ CONFIG_CRC32=y
1155# CONFIG_LIBCRC32C is not set 1195# CONFIG_LIBCRC32C is not set
1156CONFIG_ZLIB_INFLATE=y 1196CONFIG_ZLIB_INFLATE=y
1157CONFIG_ZLIB_DEFLATE=y 1197CONFIG_ZLIB_DEFLATE=y
1158CONFIG_PLIST=y 1198CONFIG_DECOMPRESS_GZIP=y
1159CONFIG_HAS_IOMEM=y 1199CONFIG_HAS_IOMEM=y
1160CONFIG_HAS_IOPORT=y 1200CONFIG_HAS_IOPORT=y
1161CONFIG_HAS_DMA=y 1201CONFIG_HAS_DMA=y
1162CONFIG_HAVE_LMB=y 1202CONFIG_HAVE_LMB=y
1203CONFIG_NLATTR=y
1163 1204
1164# 1205#
1165# Kernel hacking 1206# Kernel hacking
@@ -1181,13 +1222,24 @@ CONFIG_FRAME_WARN=1024
1181# CONFIG_LATENCYTOP is not set 1222# CONFIG_LATENCYTOP is not set
1182CONFIG_SYSCTL_SYSCALL_CHECK=y 1223CONFIG_SYSCTL_SYSCALL_CHECK=y
1183CONFIG_HAVE_FUNCTION_TRACER=y 1224CONFIG_HAVE_FUNCTION_TRACER=y
1225CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y 1226CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1227CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1228CONFIG_TRACING_SUPPORT=y
1186 1229
1187# 1230#
1188# Tracers 1231# Tracers
1189# 1232#
1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1233# CONFIG_FUNCTION_TRACER is not set
1234# CONFIG_SCHED_TRACER is not set
1235# CONFIG_CONTEXT_SWITCH_TRACER is not set
1236# CONFIG_EVENT_TRACER is not set
1237# CONFIG_BOOT_TRACER is not set
1238# CONFIG_TRACE_BRANCH_PROFILING is not set
1239# CONFIG_STACK_TRACER is not set
1240# CONFIG_KMEMTRACE is not set
1241# CONFIG_WORKQUEUE_TRACER is not set
1242# CONFIG_BLK_DEV_IO_TRACE is not set
1191# CONFIG_SAMPLES is not set 1243# CONFIG_SAMPLES is not set
1192CONFIG_HAVE_ARCH_KGDB=y 1244CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64 1245CONFIG_PRINT_STACK_DEPTH=64
@@ -1278,6 +1330,7 @@ CONFIG_CRYPTO=y
1278# Compression 1330# Compression
1279# 1331#
1280# CONFIG_CRYPTO_DEFLATE is not set 1332# CONFIG_CRYPTO_DEFLATE is not set
1333# CONFIG_CRYPTO_ZLIB is not set
1281# CONFIG_CRYPTO_LZO is not set 1334# CONFIG_CRYPTO_LZO is not set
1282 1335
1283# 1336#
diff --git a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig
index df2c16337794..b6a23af57f46 100644
--- a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig
+++ b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc7 3# Linux kernel version: 2.6.30-rc3
4# Fri Mar 13 15:36:11 2009 4# Wed May 13 17:22:31 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -72,6 +74,7 @@ CONFIG_SWAP=y
72CONFIG_SYSVIPC=y 74CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y 75CONFIG_SYSVIPC_SYSCTL=y
74CONFIG_POSIX_MQUEUE=y 76CONFIG_POSIX_MQUEUE=y
77CONFIG_POSIX_MQUEUE_SYSCTL=y
75CONFIG_BSD_PROCESS_ACCT=y 78CONFIG_BSD_PROCESS_ACCT=y
76CONFIG_BSD_PROCESS_ACCT_V3=y 79CONFIG_BSD_PROCESS_ACCT_V3=y
77# CONFIG_TASKSTATS is not set 80# CONFIG_TASKSTATS is not set
@@ -100,21 +103,24 @@ CONFIG_RELAY=y
100# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
101CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
102CONFIG_INITRAMFS_SOURCE="" 105CONFIG_INITRAMFS_SOURCE=""
106CONFIG_RD_GZIP=y
107# CONFIG_RD_BZIP2 is not set
108# CONFIG_RD_LZMA is not set
103# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
104CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
111CONFIG_ANON_INODES=y
105CONFIG_EMBEDDED=y 112CONFIG_EMBEDDED=y
106CONFIG_SYSCTL_SYSCALL=y 113CONFIG_SYSCTL_SYSCALL=y
107CONFIG_KALLSYMS=y 114CONFIG_KALLSYMS=y
108# CONFIG_KALLSYMS_ALL is not set 115# CONFIG_KALLSYMS_ALL is not set
109# CONFIG_KALLSYMS_EXTRA_PASS is not set 116# CONFIG_KALLSYMS_EXTRA_PASS is not set
117# CONFIG_STRIP_ASM_SYMS is not set
110CONFIG_HOTPLUG=y 118CONFIG_HOTPLUG=y
111CONFIG_PRINTK=y 119CONFIG_PRINTK=y
112CONFIG_BUG=y 120CONFIG_BUG=y
113CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
114CONFIG_COMPAT_BRK=y
115CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
116CONFIG_FUTEX=y 123CONFIG_FUTEX=y
117CONFIG_ANON_INODES=y
118CONFIG_EPOLL=y 124CONFIG_EPOLL=y
119CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
120CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
@@ -123,10 +129,12 @@ CONFIG_SHMEM=y
123CONFIG_AIO=y 129CONFIG_AIO=y
124CONFIG_VM_EVENT_COUNTERS=y 130CONFIG_VM_EVENT_COUNTERS=y
125CONFIG_PCI_QUIRKS=y 131CONFIG_PCI_QUIRKS=y
132CONFIG_COMPAT_BRK=y
126CONFIG_SLAB=y 133CONFIG_SLAB=y
127# CONFIG_SLUB is not set 134# CONFIG_SLUB is not set
128# CONFIG_SLOB is not set 135# CONFIG_SLOB is not set
129# CONFIG_PROFILING is not set 136# CONFIG_PROFILING is not set
137# CONFIG_MARKERS is not set
130CONFIG_HAVE_OPROFILE=y 138CONFIG_HAVE_OPROFILE=y
131# CONFIG_KPROBES is not set 139# CONFIG_KPROBES is not set
132CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 140CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -135,6 +143,7 @@ CONFIG_HAVE_KPROBES=y
135CONFIG_HAVE_KRETPROBES=y 143CONFIG_HAVE_KRETPROBES=y
136CONFIG_HAVE_ARCH_TRACEHOOK=y 144CONFIG_HAVE_ARCH_TRACEHOOK=y
137CONFIG_USE_GENERIC_SMP_HELPERS=y 145CONFIG_USE_GENERIC_SMP_HELPERS=y
146# CONFIG_SLOW_WORK is not set
138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
139CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
140CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
@@ -148,7 +157,6 @@ CONFIG_MODULE_UNLOAD=y
148CONFIG_STOP_MACHINE=y 157CONFIG_STOP_MACHINE=y
149CONFIG_BLOCK=y 158CONFIG_BLOCK=y
150# CONFIG_LBD is not set 159# CONFIG_LBD is not set
151# CONFIG_BLK_DEV_IO_TRACE is not set
152# CONFIG_BLK_DEV_BSG is not set 160# CONFIG_BLK_DEV_BSG is not set
153# CONFIG_BLK_DEV_INTEGRITY is not set 161# CONFIG_BLK_DEV_INTEGRITY is not set
154 162
@@ -169,8 +177,6 @@ CONFIG_DEFAULT_IOSCHED="cfq"
169# 177#
170# Platform support 178# Platform support
171# 179#
172CONFIG_PPC_MULTIPLATFORM=y
173CONFIG_CLASSIC32=y
174# CONFIG_PPC_CHRP is not set 180# CONFIG_PPC_CHRP is not set
175# CONFIG_MPC5121_ADS is not set 181# CONFIG_MPC5121_ADS is not set
176# CONFIG_MPC5121_GENERIC is not set 182# CONFIG_MPC5121_GENERIC is not set
@@ -189,6 +195,7 @@ CONFIG_GEF_PPC9A=y
189# CONFIG_GEF_SBC310 is not set 195# CONFIG_GEF_SBC310 is not set
190# CONFIG_GEF_SBC610 is not set 196# CONFIG_GEF_SBC610 is not set
191CONFIG_MPC8641=y 197CONFIG_MPC8641=y
198CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
192# CONFIG_IPIC is not set 199# CONFIG_IPIC is not set
193CONFIG_MPIC=y 200CONFIG_MPIC=y
194# CONFIG_MPIC_WEIRD is not set 201# CONFIG_MPIC_WEIRD is not set
@@ -250,9 +257,12 @@ CONFIG_ZONE_DMA_FLAG=1
250CONFIG_BOUNCE=y 257CONFIG_BOUNCE=y
251CONFIG_VIRT_TO_BUS=y 258CONFIG_VIRT_TO_BUS=y
252CONFIG_UNEVICTABLE_LRU=y 259CONFIG_UNEVICTABLE_LRU=y
260CONFIG_HAVE_MLOCK=y
261CONFIG_HAVE_MLOCKED_PAGE_BIT=y
253CONFIG_PPC_4K_PAGES=y 262CONFIG_PPC_4K_PAGES=y
254# CONFIG_PPC_16K_PAGES is not set 263# CONFIG_PPC_16K_PAGES is not set
255# CONFIG_PPC_64K_PAGES is not set 264# CONFIG_PPC_64K_PAGES is not set
265# CONFIG_PPC_256K_PAGES is not set
256CONFIG_FORCE_MAX_ZONEORDER=11 266CONFIG_FORCE_MAX_ZONEORDER=11
257# CONFIG_PROC_DEVICETREE is not set 267# CONFIG_PROC_DEVICETREE is not set
258# CONFIG_CMDLINE_BOOL is not set 268# CONFIG_CMDLINE_BOOL is not set
@@ -281,6 +291,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
281# CONFIG_PCI_LEGACY is not set 291# CONFIG_PCI_LEGACY is not set
282CONFIG_PCI_DEBUG=y 292CONFIG_PCI_DEBUG=y
283# CONFIG_PCI_STUB is not set 293# CONFIG_PCI_STUB is not set
294# CONFIG_PCI_IOV is not set
284# CONFIG_PCCARD is not set 295# CONFIG_PCCARD is not set
285# CONFIG_HOTPLUG_PCI is not set 296# CONFIG_HOTPLUG_PCI is not set
286# CONFIG_HAS_RAPIDIO is not set 297# CONFIG_HAS_RAPIDIO is not set
@@ -303,7 +314,6 @@ CONFIG_NET=y
303# 314#
304# Networking options 315# Networking options
305# 316#
306CONFIG_COMPAT_NET_DEV_OPS=y
307CONFIG_PACKET=y 317CONFIG_PACKET=y
308CONFIG_PACKET_MMAP=y 318CONFIG_PACKET_MMAP=y
309CONFIG_UNIX=y 319CONFIG_UNIX=y
@@ -383,9 +393,11 @@ CONFIG_BRIDGE_NETFILTER=y
383# CONFIG_NETFILTER_NETLINK_QUEUE is not set 393# CONFIG_NETFILTER_NETLINK_QUEUE is not set
384# CONFIG_NETFILTER_NETLINK_LOG is not set 394# CONFIG_NETFILTER_NETLINK_LOG is not set
385# CONFIG_NF_CONNTRACK is not set 395# CONFIG_NF_CONNTRACK is not set
396# CONFIG_NETFILTER_TPROXY is not set
386CONFIG_NETFILTER_XTABLES=m 397CONFIG_NETFILTER_XTABLES=m
387# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 398# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
388# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 399# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
400# CONFIG_NETFILTER_XT_TARGET_HL is not set
389# CONFIG_NETFILTER_XT_TARGET_MARK is not set 401# CONFIG_NETFILTER_XT_TARGET_MARK is not set
390# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 402# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
391# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 403# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
@@ -398,6 +410,7 @@ CONFIG_NETFILTER_XTABLES=m
398# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 410# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
399# CONFIG_NETFILTER_XT_MATCH_ESP is not set 411# CONFIG_NETFILTER_XT_MATCH_ESP is not set
400# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 412# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
413CONFIG_NETFILTER_XT_MATCH_HL=m
401# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 414# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
402# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 415# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
403# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 416# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -456,11 +469,11 @@ CONFIG_IP6_NF_MATCH_HL=m
456CONFIG_IP6_NF_MATCH_IPV6HEADER=m 469CONFIG_IP6_NF_MATCH_IPV6HEADER=m
457# CONFIG_IP6_NF_MATCH_MH is not set 470# CONFIG_IP6_NF_MATCH_MH is not set
458CONFIG_IP6_NF_MATCH_RT=m 471CONFIG_IP6_NF_MATCH_RT=m
472# CONFIG_IP6_NF_TARGET_HL is not set
459CONFIG_IP6_NF_TARGET_LOG=m 473CONFIG_IP6_NF_TARGET_LOG=m
460CONFIG_IP6_NF_FILTER=m 474CONFIG_IP6_NF_FILTER=m
461# CONFIG_IP6_NF_TARGET_REJECT is not set 475# CONFIG_IP6_NF_TARGET_REJECT is not set
462CONFIG_IP6_NF_MANGLE=m 476CONFIG_IP6_NF_MANGLE=m
463# CONFIG_IP6_NF_TARGET_HL is not set
464CONFIG_IP6_NF_RAW=m 477CONFIG_IP6_NF_RAW=m
465# CONFIG_IP6_NF_SECURITY is not set 478# CONFIG_IP6_NF_SECURITY is not set
466# CONFIG_BRIDGE_NF_EBTABLES is not set 479# CONFIG_BRIDGE_NF_EBTABLES is not set
@@ -495,6 +508,7 @@ CONFIG_LLC=m
495# CONFIG_LAPB is not set 508# CONFIG_LAPB is not set
496# CONFIG_ECONET is not set 509# CONFIG_ECONET is not set
497CONFIG_WAN_ROUTER=m 510CONFIG_WAN_ROUTER=m
511# CONFIG_PHONET is not set
498CONFIG_NET_SCHED=y 512CONFIG_NET_SCHED=y
499 513
500# 514#
@@ -545,7 +559,6 @@ CONFIG_NET_PKTGEN=m
545# CONFIG_IRDA is not set 559# CONFIG_IRDA is not set
546# CONFIG_BT is not set 560# CONFIG_BT is not set
547# CONFIG_AF_RXRPC is not set 561# CONFIG_AF_RXRPC is not set
548# CONFIG_PHONET is not set
549CONFIG_FIB_RULES=y 562CONFIG_FIB_RULES=y
550CONFIG_WIRELESS=y 563CONFIG_WIRELESS=y
551# CONFIG_CFG80211 is not set 564# CONFIG_CFG80211 is not set
@@ -686,6 +699,7 @@ CONFIG_MISC_DEVICES=y
686# CONFIG_ICS932S401 is not set 699# CONFIG_ICS932S401 is not set
687# CONFIG_ENCLOSURE_SERVICES is not set 700# CONFIG_ENCLOSURE_SERVICES is not set
688# CONFIG_HP_ILO is not set 701# CONFIG_HP_ILO is not set
702# CONFIG_ISL29003 is not set
689# CONFIG_C2PORT is not set 703# CONFIG_C2PORT is not set
690 704
691# 705#
@@ -751,9 +765,11 @@ CONFIG_SCSI_LOWLEVEL=y
751# CONFIG_MEGARAID_NEWGEN is not set 765# CONFIG_MEGARAID_NEWGEN is not set
752# CONFIG_MEGARAID_LEGACY is not set 766# CONFIG_MEGARAID_LEGACY is not set
753# CONFIG_MEGARAID_SAS is not set 767# CONFIG_MEGARAID_SAS is not set
768# CONFIG_SCSI_MPT2SAS is not set
754# CONFIG_SCSI_HPTIOP is not set 769# CONFIG_SCSI_HPTIOP is not set
755# CONFIG_SCSI_BUSLOGIC is not set 770# CONFIG_SCSI_BUSLOGIC is not set
756# CONFIG_LIBFC is not set 771# CONFIG_LIBFC is not set
772# CONFIG_LIBFCOE is not set
757# CONFIG_FCOE is not set 773# CONFIG_FCOE is not set
758# CONFIG_SCSI_DMX3191D is not set 774# CONFIG_SCSI_DMX3191D is not set
759# CONFIG_SCSI_EATA is not set 775# CONFIG_SCSI_EATA is not set
@@ -776,6 +792,7 @@ CONFIG_SCSI_LOWLEVEL=y
776# CONFIG_SCSI_DEBUG is not set 792# CONFIG_SCSI_DEBUG is not set
777# CONFIG_SCSI_SRP is not set 793# CONFIG_SCSI_SRP is not set
778# CONFIG_SCSI_DH is not set 794# CONFIG_SCSI_DH is not set
795# CONFIG_SCSI_OSD_INITIATOR is not set
779CONFIG_ATA=y 796CONFIG_ATA=y
780# CONFIG_ATA_NONSTANDARD is not set 797# CONFIG_ATA_NONSTANDARD is not set
781CONFIG_SATA_PMP=y 798CONFIG_SATA_PMP=y
@@ -852,6 +869,7 @@ CONFIG_SATA_SIL=y
852# CONFIG_I2O is not set 869# CONFIG_I2O is not set
853# CONFIG_MACINTOSH_DRIVERS is not set 870# CONFIG_MACINTOSH_DRIVERS is not set
854CONFIG_NETDEVICES=y 871CONFIG_NETDEVICES=y
872CONFIG_COMPAT_NET_DEV_OPS=y
855CONFIG_DUMMY=m 873CONFIG_DUMMY=m
856CONFIG_BONDING=m 874CONFIG_BONDING=m
857# CONFIG_MACVLAN is not set 875# CONFIG_MACVLAN is not set
@@ -885,6 +903,8 @@ CONFIG_MII=y
885# CONFIG_SUNGEM is not set 903# CONFIG_SUNGEM is not set
886# CONFIG_CASSINI is not set 904# CONFIG_CASSINI is not set
887# CONFIG_NET_VENDOR_3COM is not set 905# CONFIG_NET_VENDOR_3COM is not set
906# CONFIG_ETHOC is not set
907# CONFIG_DNET is not set
888# CONFIG_NET_TULIP is not set 908# CONFIG_NET_TULIP is not set
889# CONFIG_HP100 is not set 909# CONFIG_HP100 is not set
890# CONFIG_IBM_NEW_EMAC_ZMII is not set 910# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -904,6 +924,7 @@ CONFIG_NETDEV_1000=y
904# CONFIG_E1000E is not set 924# CONFIG_E1000E is not set
905# CONFIG_IP1000 is not set 925# CONFIG_IP1000 is not set
906# CONFIG_IGB is not set 926# CONFIG_IGB is not set
927# CONFIG_IGBVF is not set
907# CONFIG_NS83820 is not set 928# CONFIG_NS83820 is not set
908# CONFIG_HAMACHI is not set 929# CONFIG_HAMACHI is not set
909# CONFIG_YELLOWFIN is not set 930# CONFIG_YELLOWFIN is not set
@@ -914,8 +935,8 @@ CONFIG_NETDEV_1000=y
914# CONFIG_VIA_VELOCITY is not set 935# CONFIG_VIA_VELOCITY is not set
915# CONFIG_TIGON3 is not set 936# CONFIG_TIGON3 is not set
916# CONFIG_BNX2 is not set 937# CONFIG_BNX2 is not set
938CONFIG_FSL_PQ_MDIO=y
917CONFIG_GIANFAR=y 939CONFIG_GIANFAR=y
918# CONFIG_MV643XX_ETH is not set
919# CONFIG_QLA3XXX is not set 940# CONFIG_QLA3XXX is not set
920# CONFIG_ATL1 is not set 941# CONFIG_ATL1 is not set
921# CONFIG_ATL1E is not set 942# CONFIG_ATL1E is not set
@@ -929,7 +950,6 @@ CONFIG_GIANFAR=y
929# 950#
930# CONFIG_WLAN_PRE80211 is not set 951# CONFIG_WLAN_PRE80211 is not set
931# CONFIG_WLAN_80211 is not set 952# CONFIG_WLAN_80211 is not set
932# CONFIG_IWLWIFI_LEDS is not set
933 953
934# 954#
935# Enable WiMAX (Networking options) to see the WiMAX drivers 955# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -1056,6 +1076,7 @@ CONFIG_UNIX98_PTYS=y
1056# CONFIG_HVC_UDBG is not set 1076# CONFIG_HVC_UDBG is not set
1057# CONFIG_IPMI_HANDLER is not set 1077# CONFIG_IPMI_HANDLER is not set
1058CONFIG_HW_RANDOM=y 1078CONFIG_HW_RANDOM=y
1079# CONFIG_HW_RANDOM_TIMERIOMEM is not set
1059CONFIG_NVRAM=y 1080CONFIG_NVRAM=y
1060# CONFIG_R3964 is not set 1081# CONFIG_R3964 is not set
1061# CONFIG_APPLICOM is not set 1082# CONFIG_APPLICOM is not set
@@ -1122,7 +1143,6 @@ CONFIG_DS1682=y
1122# CONFIG_SENSORS_PCF8574 is not set 1143# CONFIG_SENSORS_PCF8574 is not set
1123# CONFIG_PCF8575 is not set 1144# CONFIG_PCF8575 is not set
1124# CONFIG_SENSORS_PCA9539 is not set 1145# CONFIG_SENSORS_PCA9539 is not set
1125# CONFIG_SENSORS_PCF8591 is not set
1126# CONFIG_SENSORS_MAX6875 is not set 1146# CONFIG_SENSORS_MAX6875 is not set
1127# CONFIG_SENSORS_TSL2550 is not set 1147# CONFIG_SENSORS_TSL2550 is not set
1128# CONFIG_I2C_DEBUG_CORE is not set 1148# CONFIG_I2C_DEBUG_CORE is not set
@@ -1178,6 +1198,7 @@ CONFIG_HWMON=y
1178# CONFIG_SENSORS_F71805F is not set 1198# CONFIG_SENSORS_F71805F is not set
1179# CONFIG_SENSORS_F71882FG is not set 1199# CONFIG_SENSORS_F71882FG is not set
1180# CONFIG_SENSORS_F75375S is not set 1200# CONFIG_SENSORS_F75375S is not set
1201# CONFIG_SENSORS_G760A is not set
1181# CONFIG_SENSORS_GL518SM is not set 1202# CONFIG_SENSORS_GL518SM is not set
1182# CONFIG_SENSORS_GL520SM is not set 1203# CONFIG_SENSORS_GL520SM is not set
1183# CONFIG_SENSORS_IT87 is not set 1204# CONFIG_SENSORS_IT87 is not set
@@ -1192,11 +1213,15 @@ CONFIG_HWMON=y
1192CONFIG_SENSORS_LM90=y 1213CONFIG_SENSORS_LM90=y
1193CONFIG_SENSORS_LM92=y 1214CONFIG_SENSORS_LM92=y
1194# CONFIG_SENSORS_LM93 is not set 1215# CONFIG_SENSORS_LM93 is not set
1216# CONFIG_SENSORS_LTC4215 is not set
1195# CONFIG_SENSORS_LTC4245 is not set 1217# CONFIG_SENSORS_LTC4245 is not set
1218# CONFIG_SENSORS_LM95241 is not set
1196# CONFIG_SENSORS_MAX1619 is not set 1219# CONFIG_SENSORS_MAX1619 is not set
1197# CONFIG_SENSORS_MAX6650 is not set 1220# CONFIG_SENSORS_MAX6650 is not set
1198# CONFIG_SENSORS_PC87360 is not set 1221# CONFIG_SENSORS_PC87360 is not set
1199# CONFIG_SENSORS_PC87427 is not set 1222# CONFIG_SENSORS_PC87427 is not set
1223# CONFIG_SENSORS_PCF8591 is not set
1224# CONFIG_SENSORS_SHT15 is not set
1200# CONFIG_SENSORS_SIS5595 is not set 1225# CONFIG_SENSORS_SIS5595 is not set
1201# CONFIG_SENSORS_DME1737 is not set 1226# CONFIG_SENSORS_DME1737 is not set
1202# CONFIG_SENSORS_SMSC47M1 is not set 1227# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1315,15 +1340,17 @@ CONFIG_USB_HID=y
1315# 1340#
1316# Special HID drivers 1341# Special HID drivers
1317# 1342#
1318CONFIG_HID_COMPAT=y
1319CONFIG_HID_A4TECH=y 1343CONFIG_HID_A4TECH=y
1320CONFIG_HID_APPLE=y 1344CONFIG_HID_APPLE=y
1321CONFIG_HID_BELKIN=y 1345CONFIG_HID_BELKIN=y
1322CONFIG_HID_CHERRY=y 1346CONFIG_HID_CHERRY=y
1323CONFIG_HID_CHICONY=y 1347CONFIG_HID_CHICONY=y
1324CONFIG_HID_CYPRESS=y 1348CONFIG_HID_CYPRESS=y
1349# CONFIG_DRAGONRISE_FF is not set
1325CONFIG_HID_EZKEY=y 1350CONFIG_HID_EZKEY=y
1351# CONFIG_HID_KYE is not set
1326CONFIG_HID_GYRATION=y 1352CONFIG_HID_GYRATION=y
1353# CONFIG_HID_KENSINGTON is not set
1327CONFIG_HID_LOGITECH=y 1354CONFIG_HID_LOGITECH=y
1328# CONFIG_LOGITECH_FF is not set 1355# CONFIG_LOGITECH_FF is not set
1329# CONFIG_LOGIRUMBLEPAD2_FF is not set 1356# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1393,11 +1420,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1393# CONFIG_USB_TMC is not set 1420# CONFIG_USB_TMC is not set
1394 1421
1395# 1422#
1396# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1423# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1397# 1424#
1398 1425
1399# 1426#
1400# see USB_STORAGE Help for more information 1427# also be needed; see USB_STORAGE Help for more info
1401# 1428#
1402CONFIG_USB_STORAGE=y 1429CONFIG_USB_STORAGE=y
1403# CONFIG_USB_STORAGE_DEBUG is not set 1430# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1439,7 +1466,6 @@ CONFIG_USB_STORAGE=y
1439# CONFIG_USB_LED is not set 1466# CONFIG_USB_LED is not set
1440# CONFIG_USB_CYPRESS_CY7C63 is not set 1467# CONFIG_USB_CYPRESS_CY7C63 is not set
1441# CONFIG_USB_CYTHERM is not set 1468# CONFIG_USB_CYTHERM is not set
1442# CONFIG_USB_PHIDGET is not set
1443# CONFIG_USB_IDMOUSE is not set 1469# CONFIG_USB_IDMOUSE is not set
1444# CONFIG_USB_FTDI_ELAN is not set 1470# CONFIG_USB_FTDI_ELAN is not set
1445# CONFIG_USB_APPLEDISPLAY is not set 1471# CONFIG_USB_APPLEDISPLAY is not set
@@ -1456,6 +1482,7 @@ CONFIG_USB_STORAGE=y
1456# OTG and related infrastructure 1482# OTG and related infrastructure
1457# 1483#
1458# CONFIG_USB_GPIO_VBUS is not set 1484# CONFIG_USB_GPIO_VBUS is not set
1485# CONFIG_NOP_USB_XCEIV is not set
1459# CONFIG_UWB is not set 1486# CONFIG_UWB is not set
1460# CONFIG_MMC is not set 1487# CONFIG_MMC is not set
1461# CONFIG_MEMSTICK is not set 1488# CONFIG_MEMSTICK is not set
@@ -1517,8 +1544,9 @@ CONFIG_RTC_DRV_RX8581=y
1517# 1544#
1518# on-CPU RTC drivers 1545# on-CPU RTC drivers
1519# 1546#
1520# CONFIG_RTC_DRV_PPC is not set 1547# CONFIG_RTC_DRV_GENERIC is not set
1521# CONFIG_DMADEVICES is not set 1548# CONFIG_DMADEVICES is not set
1549# CONFIG_AUXDISPLAY is not set
1522# CONFIG_UIO is not set 1550# CONFIG_UIO is not set
1523# CONFIG_STAGING is not set 1551# CONFIG_STAGING is not set
1524 1552
@@ -1531,6 +1559,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y
1531# CONFIG_EXT2_FS_SECURITY is not set 1559# CONFIG_EXT2_FS_SECURITY is not set
1532# CONFIG_EXT2_FS_XIP is not set 1560# CONFIG_EXT2_FS_XIP is not set
1533CONFIG_EXT3_FS=y 1561CONFIG_EXT3_FS=y
1562# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1534CONFIG_EXT3_FS_XATTR=y 1563CONFIG_EXT3_FS_XATTR=y
1535CONFIG_EXT3_FS_POSIX_ACL=y 1564CONFIG_EXT3_FS_POSIX_ACL=y
1536# CONFIG_EXT3_FS_SECURITY is not set 1565# CONFIG_EXT3_FS_SECURITY is not set
@@ -1553,6 +1582,11 @@ CONFIG_INOTIFY_USER=y
1553# CONFIG_FUSE_FS is not set 1582# CONFIG_FUSE_FS is not set
1554 1583
1555# 1584#
1585# Caches
1586#
1587# CONFIG_FSCACHE is not set
1588
1589#
1556# CD-ROM/DVD Filesystems 1590# CD-ROM/DVD Filesystems
1557# 1591#
1558# CONFIG_ISO9660_FS is not set 1592# CONFIG_ISO9660_FS is not set
@@ -1609,6 +1643,7 @@ CONFIG_JFFS2_RTIME=y
1609# CONFIG_ROMFS_FS is not set 1643# CONFIG_ROMFS_FS is not set
1610# CONFIG_SYSV_FS is not set 1644# CONFIG_SYSV_FS is not set
1611# CONFIG_UFS_FS is not set 1645# CONFIG_UFS_FS is not set
1646# CONFIG_NILFS2_FS is not set
1612CONFIG_NETWORK_FILESYSTEMS=y 1647CONFIG_NETWORK_FILESYSTEMS=y
1613CONFIG_NFS_FS=y 1648CONFIG_NFS_FS=y
1614CONFIG_NFS_V3=y 1649CONFIG_NFS_V3=y
@@ -1621,7 +1656,6 @@ CONFIG_LOCKD_V4=y
1621CONFIG_NFS_COMMON=y 1656CONFIG_NFS_COMMON=y
1622CONFIG_SUNRPC=y 1657CONFIG_SUNRPC=y
1623CONFIG_SUNRPC_GSS=y 1658CONFIG_SUNRPC_GSS=y
1624# CONFIG_SUNRPC_REGISTER_V4 is not set
1625CONFIG_RPCSEC_GSS_KRB5=y 1659CONFIG_RPCSEC_GSS_KRB5=y
1626# CONFIG_RPCSEC_GSS_SPKM3 is not set 1660# CONFIG_RPCSEC_GSS_SPKM3 is not set
1627# CONFIG_SMB_FS is not set 1661# CONFIG_SMB_FS is not set
@@ -1682,6 +1716,7 @@ CONFIG_NLS_KOI8_R=m
1682CONFIG_NLS_KOI8_U=m 1716CONFIG_NLS_KOI8_U=m
1683CONFIG_NLS_UTF8=m 1717CONFIG_NLS_UTF8=m
1684# CONFIG_DLM is not set 1718# CONFIG_DLM is not set
1719# CONFIG_BINARY_PRINTF is not set
1685 1720
1686# 1721#
1687# Library routines 1722# Library routines
@@ -1697,11 +1732,12 @@ CONFIG_CRC32=y
1697CONFIG_LIBCRC32C=m 1732CONFIG_LIBCRC32C=m
1698CONFIG_ZLIB_INFLATE=y 1733CONFIG_ZLIB_INFLATE=y
1699CONFIG_ZLIB_DEFLATE=y 1734CONFIG_ZLIB_DEFLATE=y
1700CONFIG_PLIST=y 1735CONFIG_DECOMPRESS_GZIP=y
1701CONFIG_HAS_IOMEM=y 1736CONFIG_HAS_IOMEM=y
1702CONFIG_HAS_IOPORT=y 1737CONFIG_HAS_IOPORT=y
1703CONFIG_HAS_DMA=y 1738CONFIG_HAS_DMA=y
1704CONFIG_HAVE_LMB=y 1739CONFIG_HAVE_LMB=y
1740CONFIG_NLATTR=y
1705 1741
1706# 1742#
1707# Kernel hacking 1743# Kernel hacking
@@ -1719,6 +1755,9 @@ CONFIG_DEBUG_KERNEL=y
1719CONFIG_DETECT_SOFTLOCKUP=y 1755CONFIG_DETECT_SOFTLOCKUP=y
1720# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1756# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1721CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1757CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1758CONFIG_DETECT_HUNG_TASK=y
1759# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1760CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1722CONFIG_SCHED_DEBUG=y 1761CONFIG_SCHED_DEBUG=y
1723# CONFIG_SCHEDSTATS is not set 1762# CONFIG_SCHEDSTATS is not set
1724# CONFIG_TIMER_STATS is not set 1763# CONFIG_TIMER_STATS is not set
@@ -1747,9 +1786,12 @@ CONFIG_DEBUG_INFO=y
1747# CONFIG_FAULT_INJECTION is not set 1786# CONFIG_FAULT_INJECTION is not set
1748# CONFIG_LATENCYTOP is not set 1787# CONFIG_LATENCYTOP is not set
1749CONFIG_SYSCTL_SYSCALL_CHECK=y 1788CONFIG_SYSCTL_SYSCALL_CHECK=y
1789# CONFIG_DEBUG_PAGEALLOC is not set
1750CONFIG_HAVE_FUNCTION_TRACER=y 1790CONFIG_HAVE_FUNCTION_TRACER=y
1791CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1751CONFIG_HAVE_DYNAMIC_FTRACE=y 1792CONFIG_HAVE_DYNAMIC_FTRACE=y
1752CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1793CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1794CONFIG_TRACING_SUPPORT=y
1753 1795
1754# 1796#
1755# Tracers 1797# Tracers
@@ -1758,17 +1800,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1758# CONFIG_PREEMPT_TRACER is not set 1800# CONFIG_PREEMPT_TRACER is not set
1759# CONFIG_SCHED_TRACER is not set 1801# CONFIG_SCHED_TRACER is not set
1760# CONFIG_CONTEXT_SWITCH_TRACER is not set 1802# CONFIG_CONTEXT_SWITCH_TRACER is not set
1803# CONFIG_EVENT_TRACER is not set
1761# CONFIG_BOOT_TRACER is not set 1804# CONFIG_BOOT_TRACER is not set
1762# CONFIG_TRACE_BRANCH_PROFILING is not set 1805# CONFIG_TRACE_BRANCH_PROFILING is not set
1763# CONFIG_STACK_TRACER is not set 1806# CONFIG_STACK_TRACER is not set
1764# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1807# CONFIG_KMEMTRACE is not set
1808# CONFIG_WORKQUEUE_TRACER is not set
1809# CONFIG_BLK_DEV_IO_TRACE is not set
1765# CONFIG_SAMPLES is not set 1810# CONFIG_SAMPLES is not set
1766CONFIG_HAVE_ARCH_KGDB=y 1811CONFIG_HAVE_ARCH_KGDB=y
1767# CONFIG_KGDB is not set 1812# CONFIG_KGDB is not set
1768CONFIG_PRINT_STACK_DEPTH=64 1813CONFIG_PRINT_STACK_DEPTH=64
1769# CONFIG_DEBUG_STACKOVERFLOW is not set 1814# CONFIG_DEBUG_STACKOVERFLOW is not set
1770# CONFIG_DEBUG_STACK_USAGE is not set 1815# CONFIG_DEBUG_STACK_USAGE is not set
1771# CONFIG_DEBUG_PAGEALLOC is not set
1772# CONFIG_CODE_PATCHING_SELFTEST is not set 1816# CONFIG_CODE_PATCHING_SELFTEST is not set
1773# CONFIG_FTR_FIXUP_SELFTEST is not set 1817# CONFIG_FTR_FIXUP_SELFTEST is not set
1774# CONFIG_MSI_BITMAP_SELFTEST is not set 1818# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1790,6 +1834,7 @@ CONFIG_SECURITY_NETWORK=y
1790# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1834# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1791# CONFIG_SECURITY_ROOTPLUG is not set 1835# CONFIG_SECURITY_ROOTPLUG is not set
1792CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1836CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1837# CONFIG_SECURITY_TOMOYO is not set
1793CONFIG_CRYPTO=y 1838CONFIG_CRYPTO=y
1794 1839
1795# 1840#
@@ -1805,10 +1850,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1805CONFIG_CRYPTO_HASH=y 1850CONFIG_CRYPTO_HASH=y
1806CONFIG_CRYPTO_HASH2=y 1851CONFIG_CRYPTO_HASH2=y
1807CONFIG_CRYPTO_RNG2=y 1852CONFIG_CRYPTO_RNG2=y
1853CONFIG_CRYPTO_PCOMP=y
1808CONFIG_CRYPTO_MANAGER=y 1854CONFIG_CRYPTO_MANAGER=y
1809CONFIG_CRYPTO_MANAGER2=y 1855CONFIG_CRYPTO_MANAGER2=y
1810# CONFIG_CRYPTO_GF128MUL is not set 1856# CONFIG_CRYPTO_GF128MUL is not set
1811CONFIG_CRYPTO_NULL=m 1857CONFIG_CRYPTO_NULL=m
1858CONFIG_CRYPTO_WORKQUEUE=y
1812# CONFIG_CRYPTO_CRYPTD is not set 1859# CONFIG_CRYPTO_CRYPTD is not set
1813CONFIG_CRYPTO_AUTHENC=m 1860CONFIG_CRYPTO_AUTHENC=m
1814CONFIG_CRYPTO_TEST=m 1861CONFIG_CRYPTO_TEST=m
@@ -1878,6 +1925,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1878# Compression 1925# Compression
1879# 1926#
1880CONFIG_CRYPTO_DEFLATE=m 1927CONFIG_CRYPTO_DEFLATE=m
1928# CONFIG_CRYPTO_ZLIB is not set
1881# CONFIG_CRYPTO_LZO is not set 1929# CONFIG_CRYPTO_LZO is not set
1882 1930
1883# 1931#
diff --git a/arch/powerpc/configs/86xx/gef_sbc310_defconfig b/arch/powerpc/configs/86xx/gef_sbc310_defconfig
index bd236b3d915a..a66910e63345 100644
--- a/arch/powerpc/configs/86xx/gef_sbc310_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc310_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc3 3# Linux kernel version: 2.6.30-rc3
4# Wed Jan 28 23:05:34 2009 4# Wed May 13 17:22:29 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -72,6 +74,7 @@ CONFIG_SWAP=y
72CONFIG_SYSVIPC=y 74CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y 75CONFIG_SYSVIPC_SYSCTL=y
74CONFIG_POSIX_MQUEUE=y 76CONFIG_POSIX_MQUEUE=y
77CONFIG_POSIX_MQUEUE_SYSCTL=y
75CONFIG_BSD_PROCESS_ACCT=y 78CONFIG_BSD_PROCESS_ACCT=y
76CONFIG_BSD_PROCESS_ACCT_V3=y 79CONFIG_BSD_PROCESS_ACCT_V3=y
77# CONFIG_TASKSTATS is not set 80# CONFIG_TASKSTATS is not set
@@ -96,20 +99,23 @@ CONFIG_RELAY=y
96# CONFIG_NAMESPACES is not set 99# CONFIG_NAMESPACES is not set
97CONFIG_BLK_DEV_INITRD=y 100CONFIG_BLK_DEV_INITRD=y
98CONFIG_INITRAMFS_SOURCE="" 101CONFIG_INITRAMFS_SOURCE=""
102CONFIG_RD_GZIP=y
103# CONFIG_RD_BZIP2 is not set
104# CONFIG_RD_LZMA is not set
99# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 105# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
100CONFIG_SYSCTL=y 106CONFIG_SYSCTL=y
107CONFIG_ANON_INODES=y
101CONFIG_EMBEDDED=y 108CONFIG_EMBEDDED=y
102CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
103CONFIG_KALLSYMS=y 110CONFIG_KALLSYMS=y
104# CONFIG_KALLSYMS_EXTRA_PASS is not set 111# CONFIG_KALLSYMS_EXTRA_PASS is not set
112# CONFIG_STRIP_ASM_SYMS is not set
105CONFIG_HOTPLUG=y 113CONFIG_HOTPLUG=y
106CONFIG_PRINTK=y 114CONFIG_PRINTK=y
107CONFIG_BUG=y 115CONFIG_BUG=y
108CONFIG_ELF_CORE=y 116CONFIG_ELF_CORE=y
109CONFIG_COMPAT_BRK=y
110CONFIG_BASE_FULL=y 117CONFIG_BASE_FULL=y
111CONFIG_FUTEX=y 118CONFIG_FUTEX=y
112CONFIG_ANON_INODES=y
113CONFIG_EPOLL=y 119CONFIG_EPOLL=y
114CONFIG_SIGNALFD=y 120CONFIG_SIGNALFD=y
115CONFIG_TIMERFD=y 121CONFIG_TIMERFD=y
@@ -118,10 +124,12 @@ CONFIG_SHMEM=y
118CONFIG_AIO=y 124CONFIG_AIO=y
119CONFIG_VM_EVENT_COUNTERS=y 125CONFIG_VM_EVENT_COUNTERS=y
120CONFIG_PCI_QUIRKS=y 126CONFIG_PCI_QUIRKS=y
127CONFIG_COMPAT_BRK=y
121CONFIG_SLAB=y 128CONFIG_SLAB=y
122# CONFIG_SLUB is not set 129# CONFIG_SLUB is not set
123# CONFIG_SLOB is not set 130# CONFIG_SLOB is not set
124# CONFIG_PROFILING is not set 131# CONFIG_PROFILING is not set
132# CONFIG_MARKERS is not set
125CONFIG_HAVE_OPROFILE=y 133CONFIG_HAVE_OPROFILE=y
126# CONFIG_KPROBES is not set 134# CONFIG_KPROBES is not set
127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 135CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -130,6 +138,7 @@ CONFIG_HAVE_KPROBES=y
130CONFIG_HAVE_KRETPROBES=y 138CONFIG_HAVE_KRETPROBES=y
131CONFIG_HAVE_ARCH_TRACEHOOK=y 139CONFIG_HAVE_ARCH_TRACEHOOK=y
132CONFIG_USE_GENERIC_SMP_HELPERS=y 140CONFIG_USE_GENERIC_SMP_HELPERS=y
141# CONFIG_SLOW_WORK is not set
133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 142# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
134CONFIG_SLABINFO=y 143CONFIG_SLABINFO=y
135CONFIG_RT_MUTEXES=y 144CONFIG_RT_MUTEXES=y
@@ -143,7 +152,6 @@ CONFIG_MODULE_UNLOAD=y
143CONFIG_STOP_MACHINE=y 152CONFIG_STOP_MACHINE=y
144CONFIG_BLOCK=y 153CONFIG_BLOCK=y
145# CONFIG_LBD is not set 154# CONFIG_LBD is not set
146# CONFIG_BLK_DEV_IO_TRACE is not set
147# CONFIG_BLK_DEV_BSG is not set 155# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set 156# CONFIG_BLK_DEV_INTEGRITY is not set
149 157
@@ -165,8 +173,6 @@ CONFIG_PPC_MSI_BITMAP=y
165# 173#
166# Platform support 174# Platform support
167# 175#
168CONFIG_PPC_MULTIPLATFORM=y
169CONFIG_CLASSIC32=y
170# CONFIG_PPC_CHRP is not set 176# CONFIG_PPC_CHRP is not set
171# CONFIG_MPC5121_ADS is not set 177# CONFIG_MPC5121_ADS is not set
172# CONFIG_MPC5121_GENERIC is not set 178# CONFIG_MPC5121_GENERIC is not set
@@ -181,9 +187,11 @@ CONFIG_PPC_86xx=y
181# CONFIG_MPC8641_HPCN is not set 187# CONFIG_MPC8641_HPCN is not set
182# CONFIG_SBC8641D is not set 188# CONFIG_SBC8641D is not set
183# CONFIG_MPC8610_HPCD is not set 189# CONFIG_MPC8610_HPCD is not set
190# CONFIG_GEF_PPC9A is not set
184CONFIG_GEF_SBC310=y 191CONFIG_GEF_SBC310=y
185# CONFIG_GEF_SBC610 is not set 192# CONFIG_GEF_SBC610 is not set
186CONFIG_MPC8641=y 193CONFIG_MPC8641=y
194CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
187# CONFIG_IPIC is not set 195# CONFIG_IPIC is not set
188CONFIG_MPIC=y 196CONFIG_MPIC=y
189# CONFIG_MPIC_WEIRD is not set 197# CONFIG_MPIC_WEIRD is not set
@@ -245,9 +253,12 @@ CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 253CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 254CONFIG_VIRT_TO_BUS=y
247CONFIG_UNEVICTABLE_LRU=y 255CONFIG_UNEVICTABLE_LRU=y
256CONFIG_HAVE_MLOCK=y
257CONFIG_HAVE_MLOCKED_PAGE_BIT=y
248CONFIG_PPC_4K_PAGES=y 258CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set 259# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set 260# CONFIG_PPC_64K_PAGES is not set
261# CONFIG_PPC_256K_PAGES is not set
251CONFIG_FORCE_MAX_ZONEORDER=11 262CONFIG_FORCE_MAX_ZONEORDER=11
252# CONFIG_PROC_DEVICETREE is not set 263# CONFIG_PROC_DEVICETREE is not set
253# CONFIG_CMDLINE_BOOL is not set 264# CONFIG_CMDLINE_BOOL is not set
@@ -275,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
275CONFIG_PCI_MSI=y 286CONFIG_PCI_MSI=y
276# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
277# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
278# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
279# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
280# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -288,7 +300,6 @@ CONFIG_PCI_MSI=y
288# Default settings for advanced configuration options are used 300# Default settings for advanced configuration options are used
289# 301#
290CONFIG_LOWMEM_SIZE=0x30000000 302CONFIG_LOWMEM_SIZE=0x30000000
291CONFIG_LOWMEM_CAM_NUM=3
292CONFIG_PAGE_OFFSET=0xc0000000 303CONFIG_PAGE_OFFSET=0xc0000000
293CONFIG_KERNEL_START=0xc0000000 304CONFIG_KERNEL_START=0xc0000000
294CONFIG_PHYSICAL_START=0x00000000 305CONFIG_PHYSICAL_START=0x00000000
@@ -298,7 +309,6 @@ CONFIG_NET=y
298# 309#
299# Networking options 310# Networking options
300# 311#
301CONFIG_COMPAT_NET_DEV_OPS=y
302CONFIG_PACKET=y 312CONFIG_PACKET=y
303CONFIG_PACKET_MMAP=y 313CONFIG_PACKET_MMAP=y
304CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -382,6 +392,7 @@ CONFIG_IPV6_TUNNEL=m
382# CONFIG_LAPB is not set 392# CONFIG_LAPB is not set
383# CONFIG_ECONET is not set 393# CONFIG_ECONET is not set
384# CONFIG_WAN_ROUTER is not set 394# CONFIG_WAN_ROUTER is not set
395# CONFIG_PHONET is not set
385# CONFIG_NET_SCHED is not set 396# CONFIG_NET_SCHED is not set
386# CONFIG_DCB is not set 397# CONFIG_DCB is not set
387 398
@@ -394,7 +405,6 @@ CONFIG_NET_PKTGEN=m
394# CONFIG_IRDA is not set 405# CONFIG_IRDA is not set
395# CONFIG_BT is not set 406# CONFIG_BT is not set
396# CONFIG_AF_RXRPC is not set 407# CONFIG_AF_RXRPC is not set
397# CONFIG_PHONET is not set
398CONFIG_FIB_RULES=y 408CONFIG_FIB_RULES=y
399# CONFIG_WIRELESS is not set 409# CONFIG_WIRELESS is not set
400# CONFIG_WIMAX is not set 410# CONFIG_WIMAX is not set
@@ -493,7 +503,6 @@ CONFIG_MTD_PHYSMAP_OF=y
493# LPDDR flash memory drivers 503# LPDDR flash memory drivers
494# 504#
495# CONFIG_MTD_LPDDR is not set 505# CONFIG_MTD_LPDDR is not set
496# CONFIG_MTD_QINFO_PROBE is not set
497 506
498# 507#
499# UBI - Unsorted block images 508# UBI - Unsorted block images
@@ -529,6 +538,7 @@ CONFIG_MISC_DEVICES=y
529# CONFIG_ICS932S401 is not set 538# CONFIG_ICS932S401 is not set
530# CONFIG_ENCLOSURE_SERVICES is not set 539# CONFIG_ENCLOSURE_SERVICES is not set
531# CONFIG_HP_ILO is not set 540# CONFIG_HP_ILO is not set
541# CONFIG_ISL29003 is not set
532# CONFIG_C2PORT is not set 542# CONFIG_C2PORT is not set
533 543
534# 544#
@@ -594,9 +604,11 @@ CONFIG_SCSI_LOWLEVEL=y
594# CONFIG_MEGARAID_NEWGEN is not set 604# CONFIG_MEGARAID_NEWGEN is not set
595# CONFIG_MEGARAID_LEGACY is not set 605# CONFIG_MEGARAID_LEGACY is not set
596# CONFIG_MEGARAID_SAS is not set 606# CONFIG_MEGARAID_SAS is not set
607# CONFIG_SCSI_MPT2SAS is not set
597# CONFIG_SCSI_HPTIOP is not set 608# CONFIG_SCSI_HPTIOP is not set
598# CONFIG_SCSI_BUSLOGIC is not set 609# CONFIG_SCSI_BUSLOGIC is not set
599# CONFIG_LIBFC is not set 610# CONFIG_LIBFC is not set
611# CONFIG_LIBFCOE is not set
600# CONFIG_FCOE is not set 612# CONFIG_FCOE is not set
601# CONFIG_SCSI_DMX3191D is not set 613# CONFIG_SCSI_DMX3191D is not set
602# CONFIG_SCSI_EATA is not set 614# CONFIG_SCSI_EATA is not set
@@ -619,6 +631,7 @@ CONFIG_SCSI_LOWLEVEL=y
619# CONFIG_SCSI_DEBUG is not set 631# CONFIG_SCSI_DEBUG is not set
620# CONFIG_SCSI_SRP is not set 632# CONFIG_SCSI_SRP is not set
621# CONFIG_SCSI_DH is not set 633# CONFIG_SCSI_DH is not set
634# CONFIG_SCSI_OSD_INITIATOR is not set
622CONFIG_ATA=y 635CONFIG_ATA=y
623# CONFIG_ATA_NONSTANDARD is not set 636# CONFIG_ATA_NONSTANDARD is not set
624CONFIG_SATA_PMP=y 637CONFIG_SATA_PMP=y
@@ -641,6 +654,7 @@ CONFIG_SATA_SIL24=y
641# CONFIG_I2O is not set 654# CONFIG_I2O is not set
642# CONFIG_MACINTOSH_DRIVERS is not set 655# CONFIG_MACINTOSH_DRIVERS is not set
643CONFIG_NETDEVICES=y 656CONFIG_NETDEVICES=y
657CONFIG_COMPAT_NET_DEV_OPS=y
644CONFIG_DUMMY=m 658CONFIG_DUMMY=m
645CONFIG_BONDING=m 659CONFIG_BONDING=m
646# CONFIG_MACVLAN is not set 660# CONFIG_MACVLAN is not set
@@ -674,6 +688,8 @@ CONFIG_MII=y
674# CONFIG_SUNGEM is not set 688# CONFIG_SUNGEM is not set
675# CONFIG_CASSINI is not set 689# CONFIG_CASSINI is not set
676# CONFIG_NET_VENDOR_3COM is not set 690# CONFIG_NET_VENDOR_3COM is not set
691# CONFIG_ETHOC is not set
692# CONFIG_DNET is not set
677# CONFIG_NET_TULIP is not set 693# CONFIG_NET_TULIP is not set
678# CONFIG_HP100 is not set 694# CONFIG_HP100 is not set
679# CONFIG_IBM_NEW_EMAC_ZMII is not set 695# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -693,6 +709,7 @@ CONFIG_NETDEV_1000=y
693# CONFIG_E1000E is not set 709# CONFIG_E1000E is not set
694# CONFIG_IP1000 is not set 710# CONFIG_IP1000 is not set
695# CONFIG_IGB is not set 711# CONFIG_IGB is not set
712# CONFIG_IGBVF is not set
696# CONFIG_NS83820 is not set 713# CONFIG_NS83820 is not set
697# CONFIG_HAMACHI is not set 714# CONFIG_HAMACHI is not set
698# CONFIG_YELLOWFIN is not set 715# CONFIG_YELLOWFIN is not set
@@ -703,11 +720,12 @@ CONFIG_NETDEV_1000=y
703# CONFIG_VIA_VELOCITY is not set 720# CONFIG_VIA_VELOCITY is not set
704# CONFIG_TIGON3 is not set 721# CONFIG_TIGON3 is not set
705# CONFIG_BNX2 is not set 722# CONFIG_BNX2 is not set
723CONFIG_FSL_PQ_MDIO=y
706CONFIG_GIANFAR=y 724CONFIG_GIANFAR=y
707# CONFIG_MV643XX_ETH is not set
708# CONFIG_QLA3XXX is not set 725# CONFIG_QLA3XXX is not set
709# CONFIG_ATL1 is not set 726# CONFIG_ATL1 is not set
710# CONFIG_ATL1E is not set 727# CONFIG_ATL1E is not set
728# CONFIG_ATL1C is not set
711# CONFIG_JME is not set 729# CONFIG_JME is not set
712# CONFIG_NETDEV_10000 is not set 730# CONFIG_NETDEV_10000 is not set
713# CONFIG_TR is not set 731# CONFIG_TR is not set
@@ -717,7 +735,6 @@ CONFIG_GIANFAR=y
717# 735#
718# CONFIG_WLAN_PRE80211 is not set 736# CONFIG_WLAN_PRE80211 is not set
719# CONFIG_WLAN_80211 is not set 737# CONFIG_WLAN_80211 is not set
720# CONFIG_IWLWIFI_LEDS is not set
721 738
722# 739#
723# Enable WiMAX (Networking options) to see the WiMAX drivers 740# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -828,6 +845,7 @@ CONFIG_UNIX98_PTYS=y
828# CONFIG_HVC_UDBG is not set 845# CONFIG_HVC_UDBG is not set
829# CONFIG_IPMI_HANDLER is not set 846# CONFIG_IPMI_HANDLER is not set
830CONFIG_HW_RANDOM=y 847CONFIG_HW_RANDOM=y
848# CONFIG_HW_RANDOM_TIMERIOMEM is not set
831CONFIG_NVRAM=y 849CONFIG_NVRAM=y
832# CONFIG_R3964 is not set 850# CONFIG_R3964 is not set
833# CONFIG_APPLICOM is not set 851# CONFIG_APPLICOM is not set
@@ -894,7 +912,6 @@ CONFIG_DS1682=y
894# CONFIG_SENSORS_PCF8574 is not set 912# CONFIG_SENSORS_PCF8574 is not set
895# CONFIG_PCF8575 is not set 913# CONFIG_PCF8575 is not set
896# CONFIG_SENSORS_PCA9539 is not set 914# CONFIG_SENSORS_PCA9539 is not set
897# CONFIG_SENSORS_PCF8591 is not set
898# CONFIG_SENSORS_MAX6875 is not set 915# CONFIG_SENSORS_MAX6875 is not set
899# CONFIG_SENSORS_TSL2550 is not set 916# CONFIG_SENSORS_TSL2550 is not set
900# CONFIG_I2C_DEBUG_CORE is not set 917# CONFIG_I2C_DEBUG_CORE is not set
@@ -949,6 +966,7 @@ CONFIG_HWMON=y
949# CONFIG_SENSORS_F71805F is not set 966# CONFIG_SENSORS_F71805F is not set
950# CONFIG_SENSORS_F71882FG is not set 967# CONFIG_SENSORS_F71882FG is not set
951# CONFIG_SENSORS_F75375S is not set 968# CONFIG_SENSORS_F75375S is not set
969# CONFIG_SENSORS_G760A is not set
952# CONFIG_SENSORS_GL518SM is not set 970# CONFIG_SENSORS_GL518SM is not set
953# CONFIG_SENSORS_GL520SM is not set 971# CONFIG_SENSORS_GL520SM is not set
954# CONFIG_SENSORS_IT87 is not set 972# CONFIG_SENSORS_IT87 is not set
@@ -963,11 +981,15 @@ CONFIG_HWMON=y
963CONFIG_SENSORS_LM90=y 981CONFIG_SENSORS_LM90=y
964CONFIG_SENSORS_LM92=y 982CONFIG_SENSORS_LM92=y
965# CONFIG_SENSORS_LM93 is not set 983# CONFIG_SENSORS_LM93 is not set
984# CONFIG_SENSORS_LTC4215 is not set
966# CONFIG_SENSORS_LTC4245 is not set 985# CONFIG_SENSORS_LTC4245 is not set
986# CONFIG_SENSORS_LM95241 is not set
967# CONFIG_SENSORS_MAX1619 is not set 987# CONFIG_SENSORS_MAX1619 is not set
968# CONFIG_SENSORS_MAX6650 is not set 988# CONFIG_SENSORS_MAX6650 is not set
969# CONFIG_SENSORS_PC87360 is not set 989# CONFIG_SENSORS_PC87360 is not set
970# CONFIG_SENSORS_PC87427 is not set 990# CONFIG_SENSORS_PC87427 is not set
991# CONFIG_SENSORS_PCF8591 is not set
992# CONFIG_SENSORS_SHT15 is not set
971# CONFIG_SENSORS_SIS5595 is not set 993# CONFIG_SENSORS_SIS5595 is not set
972# CONFIG_SENSORS_DME1737 is not set 994# CONFIG_SENSORS_DME1737 is not set
973# CONFIG_SENSORS_SMSC47M1 is not set 995# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1086,15 +1108,17 @@ CONFIG_USB_HID=y
1086# 1108#
1087# Special HID drivers 1109# Special HID drivers
1088# 1110#
1089CONFIG_HID_COMPAT=y
1090CONFIG_HID_A4TECH=y 1111CONFIG_HID_A4TECH=y
1091CONFIG_HID_APPLE=y 1112CONFIG_HID_APPLE=y
1092CONFIG_HID_BELKIN=y 1113CONFIG_HID_BELKIN=y
1093CONFIG_HID_CHERRY=y 1114CONFIG_HID_CHERRY=y
1094CONFIG_HID_CHICONY=y 1115CONFIG_HID_CHICONY=y
1095CONFIG_HID_CYPRESS=y 1116CONFIG_HID_CYPRESS=y
1117# CONFIG_DRAGONRISE_FF is not set
1096CONFIG_HID_EZKEY=y 1118CONFIG_HID_EZKEY=y
1119# CONFIG_HID_KYE is not set
1097CONFIG_HID_GYRATION=y 1120CONFIG_HID_GYRATION=y
1121# CONFIG_HID_KENSINGTON is not set
1098CONFIG_HID_LOGITECH=y 1122CONFIG_HID_LOGITECH=y
1099# CONFIG_LOGITECH_FF is not set 1123# CONFIG_LOGITECH_FF is not set
1100# CONFIG_LOGIRUMBLEPAD2_FF is not set 1124# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1164,11 +1188,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1164# CONFIG_USB_TMC is not set 1188# CONFIG_USB_TMC is not set
1165 1189
1166# 1190#
1167# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1191# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1168# 1192#
1169 1193
1170# 1194#
1171# see USB_STORAGE Help for more information 1195# also be needed; see USB_STORAGE Help for more info
1172# 1196#
1173CONFIG_USB_STORAGE=y 1197CONFIG_USB_STORAGE=y
1174# CONFIG_USB_STORAGE_DEBUG is not set 1198# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1210,7 +1234,6 @@ CONFIG_USB_STORAGE=y
1210# CONFIG_USB_LED is not set 1234# CONFIG_USB_LED is not set
1211# CONFIG_USB_CYPRESS_CY7C63 is not set 1235# CONFIG_USB_CYPRESS_CY7C63 is not set
1212# CONFIG_USB_CYTHERM is not set 1236# CONFIG_USB_CYTHERM is not set
1213# CONFIG_USB_PHIDGET is not set
1214# CONFIG_USB_IDMOUSE is not set 1237# CONFIG_USB_IDMOUSE is not set
1215# CONFIG_USB_FTDI_ELAN is not set 1238# CONFIG_USB_FTDI_ELAN is not set
1216# CONFIG_USB_APPLEDISPLAY is not set 1239# CONFIG_USB_APPLEDISPLAY is not set
@@ -1226,6 +1249,7 @@ CONFIG_USB_STORAGE=y
1226# OTG and related infrastructure 1249# OTG and related infrastructure
1227# 1250#
1228# CONFIG_USB_GPIO_VBUS is not set 1251# CONFIG_USB_GPIO_VBUS is not set
1252# CONFIG_NOP_USB_XCEIV is not set
1229# CONFIG_UWB is not set 1253# CONFIG_UWB is not set
1230# CONFIG_MMC is not set 1254# CONFIG_MMC is not set
1231# CONFIG_MEMSTICK is not set 1255# CONFIG_MEMSTICK is not set
@@ -1287,8 +1311,9 @@ CONFIG_RTC_DRV_RX8581=y
1287# 1311#
1288# on-CPU RTC drivers 1312# on-CPU RTC drivers
1289# 1313#
1290# CONFIG_RTC_DRV_PPC is not set 1314# CONFIG_RTC_DRV_GENERIC is not set
1291# CONFIG_DMADEVICES is not set 1315# CONFIG_DMADEVICES is not set
1316# CONFIG_AUXDISPLAY is not set
1292# CONFIG_UIO is not set 1317# CONFIG_UIO is not set
1293# CONFIG_STAGING is not set 1318# CONFIG_STAGING is not set
1294 1319
@@ -1301,6 +1326,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y
1301# CONFIG_EXT2_FS_SECURITY is not set 1326# CONFIG_EXT2_FS_SECURITY is not set
1302# CONFIG_EXT2_FS_XIP is not set 1327# CONFIG_EXT2_FS_XIP is not set
1303CONFIG_EXT3_FS=y 1328CONFIG_EXT3_FS=y
1329# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1304CONFIG_EXT3_FS_XATTR=y 1330CONFIG_EXT3_FS_XATTR=y
1305CONFIG_EXT3_FS_POSIX_ACL=y 1331CONFIG_EXT3_FS_POSIX_ACL=y
1306# CONFIG_EXT3_FS_SECURITY is not set 1332# CONFIG_EXT3_FS_SECURITY is not set
@@ -1323,6 +1349,11 @@ CONFIG_INOTIFY_USER=y
1323# CONFIG_FUSE_FS is not set 1349# CONFIG_FUSE_FS is not set
1324 1350
1325# 1351#
1352# Caches
1353#
1354# CONFIG_FSCACHE is not set
1355
1356#
1326# CD-ROM/DVD Filesystems 1357# CD-ROM/DVD Filesystems
1327# 1358#
1328CONFIG_ISO9660_FS=y 1359CONFIG_ISO9660_FS=y
@@ -1382,6 +1413,7 @@ CONFIG_JFFS2_RTIME=y
1382# CONFIG_ROMFS_FS is not set 1413# CONFIG_ROMFS_FS is not set
1383# CONFIG_SYSV_FS is not set 1414# CONFIG_SYSV_FS is not set
1384# CONFIG_UFS_FS is not set 1415# CONFIG_UFS_FS is not set
1416# CONFIG_NILFS2_FS is not set
1385CONFIG_NETWORK_FILESYSTEMS=y 1417CONFIG_NETWORK_FILESYSTEMS=y
1386CONFIG_NFS_FS=y 1418CONFIG_NFS_FS=y
1387CONFIG_NFS_V3=y 1419CONFIG_NFS_V3=y
@@ -1394,7 +1426,6 @@ CONFIG_LOCKD_V4=y
1394CONFIG_NFS_COMMON=y 1426CONFIG_NFS_COMMON=y
1395CONFIG_SUNRPC=y 1427CONFIG_SUNRPC=y
1396CONFIG_SUNRPC_GSS=y 1428CONFIG_SUNRPC_GSS=y
1397# CONFIG_SUNRPC_REGISTER_V4 is not set
1398CONFIG_RPCSEC_GSS_KRB5=y 1429CONFIG_RPCSEC_GSS_KRB5=y
1399# CONFIG_RPCSEC_GSS_SPKM3 is not set 1430# CONFIG_RPCSEC_GSS_SPKM3 is not set
1400# CONFIG_SMB_FS is not set 1431# CONFIG_SMB_FS is not set
@@ -1455,6 +1486,7 @@ CONFIG_NLS_KOI8_R=m
1455CONFIG_NLS_KOI8_U=m 1486CONFIG_NLS_KOI8_U=m
1456CONFIG_NLS_UTF8=m 1487CONFIG_NLS_UTF8=m
1457# CONFIG_DLM is not set 1488# CONFIG_DLM is not set
1489# CONFIG_BINARY_PRINTF is not set
1458 1490
1459# 1491#
1460# Library routines 1492# Library routines
@@ -1470,11 +1502,12 @@ CONFIG_CRC32=y
1470CONFIG_LIBCRC32C=y 1502CONFIG_LIBCRC32C=y
1471CONFIG_ZLIB_INFLATE=y 1503CONFIG_ZLIB_INFLATE=y
1472CONFIG_ZLIB_DEFLATE=y 1504CONFIG_ZLIB_DEFLATE=y
1473CONFIG_PLIST=y 1505CONFIG_DECOMPRESS_GZIP=y
1474CONFIG_HAS_IOMEM=y 1506CONFIG_HAS_IOMEM=y
1475CONFIG_HAS_IOPORT=y 1507CONFIG_HAS_IOPORT=y
1476CONFIG_HAS_DMA=y 1508CONFIG_HAS_DMA=y
1477CONFIG_HAVE_LMB=y 1509CONFIG_HAVE_LMB=y
1510CONFIG_NLATTR=y
1478 1511
1479# 1512#
1480# Kernel hacking 1513# Kernel hacking
@@ -1494,13 +1527,25 @@ CONFIG_MAGIC_SYSRQ=y
1494# CONFIG_LATENCYTOP is not set 1527# CONFIG_LATENCYTOP is not set
1495CONFIG_SYSCTL_SYSCALL_CHECK=y 1528CONFIG_SYSCTL_SYSCALL_CHECK=y
1496CONFIG_HAVE_FUNCTION_TRACER=y 1529CONFIG_HAVE_FUNCTION_TRACER=y
1530CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1497CONFIG_HAVE_DYNAMIC_FTRACE=y 1531CONFIG_HAVE_DYNAMIC_FTRACE=y
1498CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1532CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1533CONFIG_TRACING_SUPPORT=y
1499 1534
1500# 1535#
1501# Tracers 1536# Tracers
1502# 1537#
1503# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1538# CONFIG_FUNCTION_TRACER is not set
1539# CONFIG_PREEMPT_TRACER is not set
1540# CONFIG_SCHED_TRACER is not set
1541# CONFIG_CONTEXT_SWITCH_TRACER is not set
1542# CONFIG_EVENT_TRACER is not set
1543# CONFIG_BOOT_TRACER is not set
1544# CONFIG_TRACE_BRANCH_PROFILING is not set
1545# CONFIG_STACK_TRACER is not set
1546# CONFIG_KMEMTRACE is not set
1547# CONFIG_WORKQUEUE_TRACER is not set
1548# CONFIG_BLK_DEV_IO_TRACE is not set
1504# CONFIG_SAMPLES is not set 1549# CONFIG_SAMPLES is not set
1505CONFIG_HAVE_ARCH_KGDB=y 1550CONFIG_HAVE_ARCH_KGDB=y
1506CONFIG_PRINT_STACK_DEPTH=64 1551CONFIG_PRINT_STACK_DEPTH=64
@@ -1530,10 +1575,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1530CONFIG_CRYPTO_HASH=y 1575CONFIG_CRYPTO_HASH=y
1531CONFIG_CRYPTO_HASH2=y 1576CONFIG_CRYPTO_HASH2=y
1532CONFIG_CRYPTO_RNG2=y 1577CONFIG_CRYPTO_RNG2=y
1578CONFIG_CRYPTO_PCOMP=y
1533CONFIG_CRYPTO_MANAGER=y 1579CONFIG_CRYPTO_MANAGER=y
1534CONFIG_CRYPTO_MANAGER2=y 1580CONFIG_CRYPTO_MANAGER2=y
1535# CONFIG_CRYPTO_GF128MUL is not set 1581# CONFIG_CRYPTO_GF128MUL is not set
1536# CONFIG_CRYPTO_NULL is not set 1582# CONFIG_CRYPTO_NULL is not set
1583CONFIG_CRYPTO_WORKQUEUE=y
1537# CONFIG_CRYPTO_CRYPTD is not set 1584# CONFIG_CRYPTO_CRYPTD is not set
1538CONFIG_CRYPTO_AUTHENC=m 1585CONFIG_CRYPTO_AUTHENC=m
1539# CONFIG_CRYPTO_TEST is not set 1586# CONFIG_CRYPTO_TEST is not set
@@ -1602,6 +1649,7 @@ CONFIG_CRYPTO_DES=y
1602# Compression 1649# Compression
1603# 1650#
1604CONFIG_CRYPTO_DEFLATE=m 1651CONFIG_CRYPTO_DEFLATE=m
1652# CONFIG_CRYPTO_ZLIB is not set
1605# CONFIG_CRYPTO_LZO is not set 1653# CONFIG_CRYPTO_LZO is not set
1606 1654
1607# 1655#
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
index 1ab5abae00a2..c6a7fc82b69a 100644
--- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:26 2009 4# Wed May 13 17:22:30 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -72,10 +74,20 @@ CONFIG_SWAP=y
72CONFIG_SYSVIPC=y 74CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y 75CONFIG_SYSVIPC_SYSCTL=y
74CONFIG_POSIX_MQUEUE=y 76CONFIG_POSIX_MQUEUE=y
77CONFIG_POSIX_MQUEUE_SYSCTL=y
75CONFIG_BSD_PROCESS_ACCT=y 78CONFIG_BSD_PROCESS_ACCT=y
76CONFIG_BSD_PROCESS_ACCT_V3=y 79CONFIG_BSD_PROCESS_ACCT_V3=y
77# CONFIG_TASKSTATS is not set 80# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 81# CONFIG_AUDIT is not set
82
83#
84# RCU Subsystem
85#
86CONFIG_CLASSIC_RCU=y
87# CONFIG_TREE_RCU is not set
88# CONFIG_PREEMPT_RCU is not set
89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_PREEMPT_RCU_TRACE is not set
79CONFIG_IKCONFIG=y 91CONFIG_IKCONFIG=y
80CONFIG_IKCONFIG_PROC=y 92CONFIG_IKCONFIG_PROC=y
81CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
@@ -91,21 +103,24 @@ CONFIG_RELAY=y
91# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
92CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
93CONFIG_INITRAMFS_SOURCE="" 105CONFIG_INITRAMFS_SOURCE=""
106CONFIG_RD_GZIP=y
107# CONFIG_RD_BZIP2 is not set
108# CONFIG_RD_LZMA is not set
94# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
95CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
111CONFIG_ANON_INODES=y
96CONFIG_EMBEDDED=y 112CONFIG_EMBEDDED=y
97CONFIG_SYSCTL_SYSCALL=y 113CONFIG_SYSCTL_SYSCALL=y
98CONFIG_KALLSYMS=y 114CONFIG_KALLSYMS=y
99# CONFIG_KALLSYMS_ALL is not set 115# CONFIG_KALLSYMS_ALL is not set
100# CONFIG_KALLSYMS_EXTRA_PASS is not set 116# CONFIG_KALLSYMS_EXTRA_PASS is not set
117# CONFIG_STRIP_ASM_SYMS is not set
101CONFIG_HOTPLUG=y 118CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 119CONFIG_PRINTK=y
103CONFIG_BUG=y 120CONFIG_BUG=y
104CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
105CONFIG_COMPAT_BRK=y
106CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
107CONFIG_FUTEX=y 123CONFIG_FUTEX=y
108CONFIG_ANON_INODES=y
109CONFIG_EPOLL=y 124CONFIG_EPOLL=y
110CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
111CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
@@ -114,10 +129,12 @@ CONFIG_SHMEM=y
114CONFIG_AIO=y 129CONFIG_AIO=y
115CONFIG_VM_EVENT_COUNTERS=y 130CONFIG_VM_EVENT_COUNTERS=y
116CONFIG_PCI_QUIRKS=y 131CONFIG_PCI_QUIRKS=y
132CONFIG_COMPAT_BRK=y
117CONFIG_SLAB=y 133CONFIG_SLAB=y
118# CONFIG_SLUB is not set 134# CONFIG_SLUB is not set
119# CONFIG_SLOB is not set 135# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 136# CONFIG_PROFILING is not set
137# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 138CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 139# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 140CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,6 +143,7 @@ CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 143CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 144CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_USE_GENERIC_SMP_HELPERS=y 145CONFIG_USE_GENERIC_SMP_HELPERS=y
146# CONFIG_SLOW_WORK is not set
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
@@ -139,7 +157,6 @@ CONFIG_MODULE_UNLOAD=y
139CONFIG_STOP_MACHINE=y 157CONFIG_STOP_MACHINE=y
140CONFIG_BLOCK=y 158CONFIG_BLOCK=y
141# CONFIG_LBD is not set 159# CONFIG_LBD is not set
142# CONFIG_BLK_DEV_IO_TRACE is not set
143# CONFIG_BLK_DEV_BSG is not set 160# CONFIG_BLK_DEV_BSG is not set
144# CONFIG_BLK_DEV_INTEGRITY is not set 161# CONFIG_BLK_DEV_INTEGRITY is not set
145 162
@@ -155,18 +172,11 @@ CONFIG_IOSCHED_CFQ=y
155CONFIG_DEFAULT_CFQ=y 172CONFIG_DEFAULT_CFQ=y
156# CONFIG_DEFAULT_NOOP is not set 173# CONFIG_DEFAULT_NOOP is not set
157CONFIG_DEFAULT_IOSCHED="cfq" 174CONFIG_DEFAULT_IOSCHED="cfq"
158CONFIG_CLASSIC_RCU=y
159# CONFIG_TREE_RCU is not set
160# CONFIG_PREEMPT_RCU is not set
161# CONFIG_TREE_RCU_TRACE is not set
162# CONFIG_PREEMPT_RCU_TRACE is not set
163# CONFIG_FREEZER is not set 175# CONFIG_FREEZER is not set
164 176
165# 177#
166# Platform support 178# Platform support
167# 179#
168CONFIG_PPC_MULTIPLATFORM=y
169CONFIG_CLASSIC32=y
170# CONFIG_PPC_CHRP is not set 180# CONFIG_PPC_CHRP is not set
171# CONFIG_MPC5121_ADS is not set 181# CONFIG_MPC5121_ADS is not set
172# CONFIG_MPC5121_GENERIC is not set 182# CONFIG_MPC5121_GENERIC is not set
@@ -181,8 +191,11 @@ CONFIG_PPC_86xx=y
181# CONFIG_MPC8641_HPCN is not set 191# CONFIG_MPC8641_HPCN is not set
182# CONFIG_SBC8641D is not set 192# CONFIG_SBC8641D is not set
183# CONFIG_MPC8610_HPCD is not set 193# CONFIG_MPC8610_HPCD is not set
194# CONFIG_GEF_PPC9A is not set
195# CONFIG_GEF_SBC310 is not set
184CONFIG_GEF_SBC610=y 196CONFIG_GEF_SBC610=y
185CONFIG_MPC8641=y 197CONFIG_MPC8641=y
198CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186# CONFIG_IPIC is not set 199# CONFIG_IPIC is not set
187CONFIG_MPIC=y 200CONFIG_MPIC=y
188# CONFIG_MPIC_WEIRD is not set 201# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +257,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 257CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 258CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 259CONFIG_UNEVICTABLE_LRU=y
260CONFIG_HAVE_MLOCK=y
261CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 262CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 263# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 264# CONFIG_PPC_64K_PAGES is not set
265# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 266CONFIG_FORCE_MAX_ZONEORDER=11
251# CONFIG_PROC_DEVICETREE is not set 267# CONFIG_PROC_DEVICETREE is not set
252# CONFIG_CMDLINE_BOOL is not set 268# CONFIG_CMDLINE_BOOL is not set
@@ -275,6 +291,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
275# CONFIG_PCI_LEGACY is not set 291# CONFIG_PCI_LEGACY is not set
276CONFIG_PCI_DEBUG=y 292CONFIG_PCI_DEBUG=y
277# CONFIG_PCI_STUB is not set 293# CONFIG_PCI_STUB is not set
294# CONFIG_PCI_IOV is not set
278# CONFIG_PCCARD is not set 295# CONFIG_PCCARD is not set
279# CONFIG_HOTPLUG_PCI is not set 296# CONFIG_HOTPLUG_PCI is not set
280CONFIG_HAS_RAPIDIO=y 297CONFIG_HAS_RAPIDIO=y
@@ -298,7 +315,6 @@ CONFIG_NET=y
298# 315#
299# Networking options 316# Networking options
300# 317#
301CONFIG_COMPAT_NET_DEV_OPS=y
302CONFIG_PACKET=y 318CONFIG_PACKET=y
303CONFIG_PACKET_MMAP=y 319CONFIG_PACKET_MMAP=y
304CONFIG_UNIX=y 320CONFIG_UNIX=y
@@ -378,9 +394,11 @@ CONFIG_BRIDGE_NETFILTER=y
378# CONFIG_NETFILTER_NETLINK_QUEUE is not set 394# CONFIG_NETFILTER_NETLINK_QUEUE is not set
379# CONFIG_NETFILTER_NETLINK_LOG is not set 395# CONFIG_NETFILTER_NETLINK_LOG is not set
380# CONFIG_NF_CONNTRACK is not set 396# CONFIG_NF_CONNTRACK is not set
397# CONFIG_NETFILTER_TPROXY is not set
381CONFIG_NETFILTER_XTABLES=m 398CONFIG_NETFILTER_XTABLES=m
382# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 399# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
383# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 400# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
401# CONFIG_NETFILTER_XT_TARGET_HL is not set
384# CONFIG_NETFILTER_XT_TARGET_MARK is not set 402# CONFIG_NETFILTER_XT_TARGET_MARK is not set
385# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 403# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
386# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 404# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
@@ -393,6 +411,7 @@ CONFIG_NETFILTER_XTABLES=m
393# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 411# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
394# CONFIG_NETFILTER_XT_MATCH_ESP is not set 412# CONFIG_NETFILTER_XT_MATCH_ESP is not set
395# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 413# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
414CONFIG_NETFILTER_XT_MATCH_HL=m
396# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 415# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
397# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 416# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
398# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 417# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -451,11 +470,11 @@ CONFIG_IP6_NF_MATCH_HL=m
451CONFIG_IP6_NF_MATCH_IPV6HEADER=m 470CONFIG_IP6_NF_MATCH_IPV6HEADER=m
452# CONFIG_IP6_NF_MATCH_MH is not set 471# CONFIG_IP6_NF_MATCH_MH is not set
453CONFIG_IP6_NF_MATCH_RT=m 472CONFIG_IP6_NF_MATCH_RT=m
473# CONFIG_IP6_NF_TARGET_HL is not set
454CONFIG_IP6_NF_TARGET_LOG=m 474CONFIG_IP6_NF_TARGET_LOG=m
455CONFIG_IP6_NF_FILTER=m 475CONFIG_IP6_NF_FILTER=m
456# CONFIG_IP6_NF_TARGET_REJECT is not set 476# CONFIG_IP6_NF_TARGET_REJECT is not set
457CONFIG_IP6_NF_MANGLE=m 477CONFIG_IP6_NF_MANGLE=m
458# CONFIG_IP6_NF_TARGET_HL is not set
459CONFIG_IP6_NF_RAW=m 478CONFIG_IP6_NF_RAW=m
460# CONFIG_IP6_NF_SECURITY is not set 479# CONFIG_IP6_NF_SECURITY is not set
461# CONFIG_BRIDGE_NF_EBTABLES is not set 480# CONFIG_BRIDGE_NF_EBTABLES is not set
@@ -490,6 +509,7 @@ CONFIG_LLC=m
490# CONFIG_LAPB is not set 509# CONFIG_LAPB is not set
491# CONFIG_ECONET is not set 510# CONFIG_ECONET is not set
492CONFIG_WAN_ROUTER=m 511CONFIG_WAN_ROUTER=m
512# CONFIG_PHONET is not set
493CONFIG_NET_SCHED=y 513CONFIG_NET_SCHED=y
494 514
495# 515#
@@ -540,7 +560,6 @@ CONFIG_NET_PKTGEN=m
540# CONFIG_IRDA is not set 560# CONFIG_IRDA is not set
541# CONFIG_BT is not set 561# CONFIG_BT is not set
542# CONFIG_AF_RXRPC is not set 562# CONFIG_AF_RXRPC is not set
543# CONFIG_PHONET is not set
544CONFIG_FIB_RULES=y 563CONFIG_FIB_RULES=y
545CONFIG_WIRELESS=y 564CONFIG_WIRELESS=y
546# CONFIG_CFG80211 is not set 565# CONFIG_CFG80211 is not set
@@ -651,7 +670,6 @@ CONFIG_MTD_PHYSMAP_OF=y
651# LPDDR flash memory drivers 670# LPDDR flash memory drivers
652# 671#
653# CONFIG_MTD_LPDDR is not set 672# CONFIG_MTD_LPDDR is not set
654# CONFIG_MTD_QINFO_PROBE is not set
655 673
656# 674#
657# UBI - Unsorted block images 675# UBI - Unsorted block images
@@ -682,13 +700,20 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
682# CONFIG_BLK_DEV_HD is not set 700# CONFIG_BLK_DEV_HD is not set
683CONFIG_MISC_DEVICES=y 701CONFIG_MISC_DEVICES=y
684# CONFIG_PHANTOM is not set 702# CONFIG_PHANTOM is not set
685# CONFIG_EEPROM_93CX6 is not set
686# CONFIG_SGI_IOC4 is not set 703# CONFIG_SGI_IOC4 is not set
687# CONFIG_TIFM_CORE is not set 704# CONFIG_TIFM_CORE is not set
688# CONFIG_ICS932S401 is not set 705# CONFIG_ICS932S401 is not set
689# CONFIG_ENCLOSURE_SERVICES is not set 706# CONFIG_ENCLOSURE_SERVICES is not set
690# CONFIG_HP_ILO is not set 707# CONFIG_HP_ILO is not set
708# CONFIG_ISL29003 is not set
691# CONFIG_C2PORT is not set 709# CONFIG_C2PORT is not set
710
711#
712# EEPROM support
713#
714# CONFIG_EEPROM_AT24 is not set
715# CONFIG_EEPROM_LEGACY is not set
716# CONFIG_EEPROM_93CX6 is not set
692CONFIG_HAVE_IDE=y 717CONFIG_HAVE_IDE=y
693# CONFIG_IDE is not set 718# CONFIG_IDE is not set
694 719
@@ -746,9 +771,11 @@ CONFIG_SCSI_LOWLEVEL=y
746# CONFIG_MEGARAID_NEWGEN is not set 771# CONFIG_MEGARAID_NEWGEN is not set
747# CONFIG_MEGARAID_LEGACY is not set 772# CONFIG_MEGARAID_LEGACY is not set
748# CONFIG_MEGARAID_SAS is not set 773# CONFIG_MEGARAID_SAS is not set
774# CONFIG_SCSI_MPT2SAS is not set
749# CONFIG_SCSI_HPTIOP is not set 775# CONFIG_SCSI_HPTIOP is not set
750# CONFIG_SCSI_BUSLOGIC is not set 776# CONFIG_SCSI_BUSLOGIC is not set
751# CONFIG_LIBFC is not set 777# CONFIG_LIBFC is not set
778# CONFIG_LIBFCOE is not set
752# CONFIG_FCOE is not set 779# CONFIG_FCOE is not set
753# CONFIG_SCSI_DMX3191D is not set 780# CONFIG_SCSI_DMX3191D is not set
754# CONFIG_SCSI_EATA is not set 781# CONFIG_SCSI_EATA is not set
@@ -771,6 +798,7 @@ CONFIG_SCSI_LOWLEVEL=y
771# CONFIG_SCSI_DEBUG is not set 798# CONFIG_SCSI_DEBUG is not set
772# CONFIG_SCSI_SRP is not set 799# CONFIG_SCSI_SRP is not set
773# CONFIG_SCSI_DH is not set 800# CONFIG_SCSI_DH is not set
801# CONFIG_SCSI_OSD_INITIATOR is not set
774CONFIG_ATA=y 802CONFIG_ATA=y
775# CONFIG_ATA_NONSTANDARD is not set 803# CONFIG_ATA_NONSTANDARD is not set
776CONFIG_SATA_PMP=y 804CONFIG_SATA_PMP=y
@@ -847,6 +875,7 @@ CONFIG_SATA_SIL=y
847# CONFIG_I2O is not set 875# CONFIG_I2O is not set
848# CONFIG_MACINTOSH_DRIVERS is not set 876# CONFIG_MACINTOSH_DRIVERS is not set
849CONFIG_NETDEVICES=y 877CONFIG_NETDEVICES=y
878CONFIG_COMPAT_NET_DEV_OPS=y
850CONFIG_DUMMY=m 879CONFIG_DUMMY=m
851CONFIG_BONDING=m 880CONFIG_BONDING=m
852# CONFIG_MACVLAN is not set 881# CONFIG_MACVLAN is not set
@@ -880,6 +909,8 @@ CONFIG_MII=y
880# CONFIG_SUNGEM is not set 909# CONFIG_SUNGEM is not set
881# CONFIG_CASSINI is not set 910# CONFIG_CASSINI is not set
882# CONFIG_NET_VENDOR_3COM is not set 911# CONFIG_NET_VENDOR_3COM is not set
912# CONFIG_ETHOC is not set
913# CONFIG_DNET is not set
883# CONFIG_NET_TULIP is not set 914# CONFIG_NET_TULIP is not set
884# CONFIG_HP100 is not set 915# CONFIG_HP100 is not set
885# CONFIG_IBM_NEW_EMAC_ZMII is not set 916# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -899,6 +930,7 @@ CONFIG_NETDEV_1000=y
899# CONFIG_E1000E is not set 930# CONFIG_E1000E is not set
900# CONFIG_IP1000 is not set 931# CONFIG_IP1000 is not set
901# CONFIG_IGB is not set 932# CONFIG_IGB is not set
933# CONFIG_IGBVF is not set
902# CONFIG_NS83820 is not set 934# CONFIG_NS83820 is not set
903# CONFIG_HAMACHI is not set 935# CONFIG_HAMACHI is not set
904# CONFIG_YELLOWFIN is not set 936# CONFIG_YELLOWFIN is not set
@@ -909,11 +941,12 @@ CONFIG_NETDEV_1000=y
909# CONFIG_VIA_VELOCITY is not set 941# CONFIG_VIA_VELOCITY is not set
910# CONFIG_TIGON3 is not set 942# CONFIG_TIGON3 is not set
911# CONFIG_BNX2 is not set 943# CONFIG_BNX2 is not set
944CONFIG_FSL_PQ_MDIO=y
912CONFIG_GIANFAR=y 945CONFIG_GIANFAR=y
913# CONFIG_MV643XX_ETH is not set
914# CONFIG_QLA3XXX is not set 946# CONFIG_QLA3XXX is not set
915# CONFIG_ATL1 is not set 947# CONFIG_ATL1 is not set
916# CONFIG_ATL1E is not set 948# CONFIG_ATL1E is not set
949# CONFIG_ATL1C is not set
917# CONFIG_JME is not set 950# CONFIG_JME is not set
918# CONFIG_NETDEV_10000 is not set 951# CONFIG_NETDEV_10000 is not set
919# CONFIG_TR is not set 952# CONFIG_TR is not set
@@ -923,7 +956,6 @@ CONFIG_GIANFAR=y
923# 956#
924# CONFIG_WLAN_PRE80211 is not set 957# CONFIG_WLAN_PRE80211 is not set
925# CONFIG_WLAN_80211 is not set 958# CONFIG_WLAN_80211 is not set
926# CONFIG_IWLWIFI_LEDS is not set
927 959
928# 960#
929# Enable WiMAX (Networking options) to see the WiMAX drivers 961# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -1050,6 +1082,7 @@ CONFIG_UNIX98_PTYS=y
1050# CONFIG_HVC_UDBG is not set 1082# CONFIG_HVC_UDBG is not set
1051# CONFIG_IPMI_HANDLER is not set 1083# CONFIG_IPMI_HANDLER is not set
1052CONFIG_HW_RANDOM=y 1084CONFIG_HW_RANDOM=y
1085# CONFIG_HW_RANDOM_TIMERIOMEM is not set
1053# CONFIG_NVRAM is not set 1086# CONFIG_NVRAM is not set
1054# CONFIG_R3964 is not set 1087# CONFIG_R3964 is not set
1055# CONFIG_APPLICOM is not set 1088# CONFIG_APPLICOM is not set
@@ -1113,12 +1146,9 @@ CONFIG_I2C_MPC=y
1113# Miscellaneous I2C Chip support 1146# Miscellaneous I2C Chip support
1114# 1147#
1115CONFIG_DS1682=y 1148CONFIG_DS1682=y
1116# CONFIG_EEPROM_AT24 is not set
1117# CONFIG_EEPROM_LEGACY is not set
1118# CONFIG_SENSORS_PCF8574 is not set 1149# CONFIG_SENSORS_PCF8574 is not set
1119# CONFIG_PCF8575 is not set 1150# CONFIG_PCF8575 is not set
1120# CONFIG_SENSORS_PCA9539 is not set 1151# CONFIG_SENSORS_PCA9539 is not set
1121# CONFIG_SENSORS_PCF8591 is not set
1122# CONFIG_SENSORS_MAX6875 is not set 1152# CONFIG_SENSORS_MAX6875 is not set
1123# CONFIG_SENSORS_TSL2550 is not set 1153# CONFIG_SENSORS_TSL2550 is not set
1124# CONFIG_I2C_DEBUG_CORE is not set 1154# CONFIG_I2C_DEBUG_CORE is not set
@@ -1174,6 +1204,7 @@ CONFIG_HWMON=y
1174# CONFIG_SENSORS_F71805F is not set 1204# CONFIG_SENSORS_F71805F is not set
1175# CONFIG_SENSORS_F71882FG is not set 1205# CONFIG_SENSORS_F71882FG is not set
1176# CONFIG_SENSORS_F75375S is not set 1206# CONFIG_SENSORS_F75375S is not set
1207# CONFIG_SENSORS_G760A is not set
1177# CONFIG_SENSORS_GL518SM is not set 1208# CONFIG_SENSORS_GL518SM is not set
1178# CONFIG_SENSORS_GL520SM is not set 1209# CONFIG_SENSORS_GL520SM is not set
1179# CONFIG_SENSORS_IT87 is not set 1210# CONFIG_SENSORS_IT87 is not set
@@ -1188,11 +1219,15 @@ CONFIG_HWMON=y
1188CONFIG_SENSORS_LM90=y 1219CONFIG_SENSORS_LM90=y
1189CONFIG_SENSORS_LM92=y 1220CONFIG_SENSORS_LM92=y
1190# CONFIG_SENSORS_LM93 is not set 1221# CONFIG_SENSORS_LM93 is not set
1222# CONFIG_SENSORS_LTC4215 is not set
1191# CONFIG_SENSORS_LTC4245 is not set 1223# CONFIG_SENSORS_LTC4245 is not set
1224# CONFIG_SENSORS_LM95241 is not set
1192# CONFIG_SENSORS_MAX1619 is not set 1225# CONFIG_SENSORS_MAX1619 is not set
1193# CONFIG_SENSORS_MAX6650 is not set 1226# CONFIG_SENSORS_MAX6650 is not set
1194# CONFIG_SENSORS_PC87360 is not set 1227# CONFIG_SENSORS_PC87360 is not set
1195# CONFIG_SENSORS_PC87427 is not set 1228# CONFIG_SENSORS_PC87427 is not set
1229# CONFIG_SENSORS_PCF8591 is not set
1230# CONFIG_SENSORS_SHT15 is not set
1196# CONFIG_SENSORS_SIS5595 is not set 1231# CONFIG_SENSORS_SIS5595 is not set
1197# CONFIG_SENSORS_DME1737 is not set 1232# CONFIG_SENSORS_DME1737 is not set
1198# CONFIG_SENSORS_SMSC47M1 is not set 1233# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1311,15 +1346,17 @@ CONFIG_USB_HID=y
1311# 1346#
1312# Special HID drivers 1347# Special HID drivers
1313# 1348#
1314CONFIG_HID_COMPAT=y
1315CONFIG_HID_A4TECH=y 1349CONFIG_HID_A4TECH=y
1316CONFIG_HID_APPLE=y 1350CONFIG_HID_APPLE=y
1317CONFIG_HID_BELKIN=y 1351CONFIG_HID_BELKIN=y
1318CONFIG_HID_CHERRY=y 1352CONFIG_HID_CHERRY=y
1319CONFIG_HID_CHICONY=y 1353CONFIG_HID_CHICONY=y
1320CONFIG_HID_CYPRESS=y 1354CONFIG_HID_CYPRESS=y
1355# CONFIG_DRAGONRISE_FF is not set
1321CONFIG_HID_EZKEY=y 1356CONFIG_HID_EZKEY=y
1357# CONFIG_HID_KYE is not set
1322CONFIG_HID_GYRATION=y 1358CONFIG_HID_GYRATION=y
1359# CONFIG_HID_KENSINGTON is not set
1323CONFIG_HID_LOGITECH=y 1360CONFIG_HID_LOGITECH=y
1324# CONFIG_LOGITECH_FF is not set 1361# CONFIG_LOGITECH_FF is not set
1325# CONFIG_LOGIRUMBLEPAD2_FF is not set 1362# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1389,11 +1426,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1389# CONFIG_USB_TMC is not set 1426# CONFIG_USB_TMC is not set
1390 1427
1391# 1428#
1392# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1429# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1393# 1430#
1394 1431
1395# 1432#
1396# see USB_STORAGE Help for more information 1433# also be needed; see USB_STORAGE Help for more info
1397# 1434#
1398CONFIG_USB_STORAGE=y 1435CONFIG_USB_STORAGE=y
1399# CONFIG_USB_STORAGE_DEBUG is not set 1436# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1435,7 +1472,6 @@ CONFIG_USB_STORAGE=y
1435# CONFIG_USB_LED is not set 1472# CONFIG_USB_LED is not set
1436# CONFIG_USB_CYPRESS_CY7C63 is not set 1473# CONFIG_USB_CYPRESS_CY7C63 is not set
1437# CONFIG_USB_CYTHERM is not set 1474# CONFIG_USB_CYTHERM is not set
1438# CONFIG_USB_PHIDGET is not set
1439# CONFIG_USB_IDMOUSE is not set 1475# CONFIG_USB_IDMOUSE is not set
1440# CONFIG_USB_FTDI_ELAN is not set 1476# CONFIG_USB_FTDI_ELAN is not set
1441# CONFIG_USB_APPLEDISPLAY is not set 1477# CONFIG_USB_APPLEDISPLAY is not set
@@ -1452,6 +1488,7 @@ CONFIG_USB_STORAGE=y
1452# OTG and related infrastructure 1488# OTG and related infrastructure
1453# 1489#
1454# CONFIG_USB_GPIO_VBUS is not set 1490# CONFIG_USB_GPIO_VBUS is not set
1491# CONFIG_NOP_USB_XCEIV is not set
1455# CONFIG_UWB is not set 1492# CONFIG_UWB is not set
1456# CONFIG_MMC is not set 1493# CONFIG_MMC is not set
1457# CONFIG_MEMSTICK is not set 1494# CONFIG_MEMSTICK is not set
@@ -1513,8 +1550,9 @@ CONFIG_RTC_DRV_RX8581=y
1513# 1550#
1514# on-CPU RTC drivers 1551# on-CPU RTC drivers
1515# 1552#
1516# CONFIG_RTC_DRV_PPC is not set 1553# CONFIG_RTC_DRV_GENERIC is not set
1517# CONFIG_DMADEVICES is not set 1554# CONFIG_DMADEVICES is not set
1555# CONFIG_AUXDISPLAY is not set
1518# CONFIG_UIO is not set 1556# CONFIG_UIO is not set
1519# CONFIG_STAGING is not set 1557# CONFIG_STAGING is not set
1520 1558
@@ -1527,6 +1565,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y
1527# CONFIG_EXT2_FS_SECURITY is not set 1565# CONFIG_EXT2_FS_SECURITY is not set
1528# CONFIG_EXT2_FS_XIP is not set 1566# CONFIG_EXT2_FS_XIP is not set
1529CONFIG_EXT3_FS=y 1567CONFIG_EXT3_FS=y
1568# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1530CONFIG_EXT3_FS_XATTR=y 1569CONFIG_EXT3_FS_XATTR=y
1531CONFIG_EXT3_FS_POSIX_ACL=y 1570CONFIG_EXT3_FS_POSIX_ACL=y
1532# CONFIG_EXT3_FS_SECURITY is not set 1571# CONFIG_EXT3_FS_SECURITY is not set
@@ -1549,6 +1588,11 @@ CONFIG_INOTIFY_USER=y
1549# CONFIG_FUSE_FS is not set 1588# CONFIG_FUSE_FS is not set
1550 1589
1551# 1590#
1591# Caches
1592#
1593# CONFIG_FSCACHE is not set
1594
1595#
1552# CD-ROM/DVD Filesystems 1596# CD-ROM/DVD Filesystems
1553# 1597#
1554# CONFIG_ISO9660_FS is not set 1598# CONFIG_ISO9660_FS is not set
@@ -1595,6 +1639,7 @@ CONFIG_MISC_FILESYSTEMS=y
1595# CONFIG_ROMFS_FS is not set 1639# CONFIG_ROMFS_FS is not set
1596# CONFIG_SYSV_FS is not set 1640# CONFIG_SYSV_FS is not set
1597# CONFIG_UFS_FS is not set 1641# CONFIG_UFS_FS is not set
1642# CONFIG_NILFS2_FS is not set
1598CONFIG_NETWORK_FILESYSTEMS=y 1643CONFIG_NETWORK_FILESYSTEMS=y
1599CONFIG_NFS_FS=y 1644CONFIG_NFS_FS=y
1600CONFIG_NFS_V3=y 1645CONFIG_NFS_V3=y
@@ -1607,7 +1652,6 @@ CONFIG_LOCKD_V4=y
1607CONFIG_NFS_COMMON=y 1652CONFIG_NFS_COMMON=y
1608CONFIG_SUNRPC=y 1653CONFIG_SUNRPC=y
1609CONFIG_SUNRPC_GSS=y 1654CONFIG_SUNRPC_GSS=y
1610# CONFIG_SUNRPC_REGISTER_V4 is not set
1611CONFIG_RPCSEC_GSS_KRB5=y 1655CONFIG_RPCSEC_GSS_KRB5=y
1612# CONFIG_RPCSEC_GSS_SPKM3 is not set 1656# CONFIG_RPCSEC_GSS_SPKM3 is not set
1613# CONFIG_SMB_FS is not set 1657# CONFIG_SMB_FS is not set
@@ -1668,6 +1712,7 @@ CONFIG_NLS_KOI8_R=m
1668CONFIG_NLS_KOI8_U=m 1712CONFIG_NLS_KOI8_U=m
1669CONFIG_NLS_UTF8=m 1713CONFIG_NLS_UTF8=m
1670# CONFIG_DLM is not set 1714# CONFIG_DLM is not set
1715# CONFIG_BINARY_PRINTF is not set
1671 1716
1672# 1717#
1673# Library routines 1718# Library routines
@@ -1681,13 +1726,14 @@ CONFIG_CRC_CCITT=m
1681CONFIG_CRC32=y 1726CONFIG_CRC32=y
1682# CONFIG_CRC7 is not set 1727# CONFIG_CRC7 is not set
1683CONFIG_LIBCRC32C=m 1728CONFIG_LIBCRC32C=m
1684CONFIG_ZLIB_INFLATE=m 1729CONFIG_ZLIB_INFLATE=y
1685CONFIG_ZLIB_DEFLATE=m 1730CONFIG_ZLIB_DEFLATE=m
1686CONFIG_PLIST=y 1731CONFIG_DECOMPRESS_GZIP=y
1687CONFIG_HAS_IOMEM=y 1732CONFIG_HAS_IOMEM=y
1688CONFIG_HAS_IOPORT=y 1733CONFIG_HAS_IOPORT=y
1689CONFIG_HAS_DMA=y 1734CONFIG_HAS_DMA=y
1690CONFIG_HAVE_LMB=y 1735CONFIG_HAVE_LMB=y
1736CONFIG_NLATTR=y
1691 1737
1692# 1738#
1693# Kernel hacking 1739# Kernel hacking
@@ -1705,6 +1751,9 @@ CONFIG_DEBUG_KERNEL=y
1705CONFIG_DETECT_SOFTLOCKUP=y 1751CONFIG_DETECT_SOFTLOCKUP=y
1706# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1752# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1707CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1753CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1754CONFIG_DETECT_HUNG_TASK=y
1755# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1756CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1708CONFIG_SCHED_DEBUG=y 1757CONFIG_SCHED_DEBUG=y
1709# CONFIG_SCHEDSTATS is not set 1758# CONFIG_SCHEDSTATS is not set
1710# CONFIG_TIMER_STATS is not set 1759# CONFIG_TIMER_STATS is not set
@@ -1733,9 +1782,12 @@ CONFIG_DEBUG_INFO=y
1733# CONFIG_FAULT_INJECTION is not set 1782# CONFIG_FAULT_INJECTION is not set
1734# CONFIG_LATENCYTOP is not set 1783# CONFIG_LATENCYTOP is not set
1735CONFIG_SYSCTL_SYSCALL_CHECK=y 1784CONFIG_SYSCTL_SYSCALL_CHECK=y
1785# CONFIG_DEBUG_PAGEALLOC is not set
1736CONFIG_HAVE_FUNCTION_TRACER=y 1786CONFIG_HAVE_FUNCTION_TRACER=y
1787CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1737CONFIG_HAVE_DYNAMIC_FTRACE=y 1788CONFIG_HAVE_DYNAMIC_FTRACE=y
1738CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1789CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1790CONFIG_TRACING_SUPPORT=y
1739 1791
1740# 1792#
1741# Tracers 1793# Tracers
@@ -1744,17 +1796,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1744# CONFIG_PREEMPT_TRACER is not set 1796# CONFIG_PREEMPT_TRACER is not set
1745# CONFIG_SCHED_TRACER is not set 1797# CONFIG_SCHED_TRACER is not set
1746# CONFIG_CONTEXT_SWITCH_TRACER is not set 1798# CONFIG_CONTEXT_SWITCH_TRACER is not set
1799# CONFIG_EVENT_TRACER is not set
1747# CONFIG_BOOT_TRACER is not set 1800# CONFIG_BOOT_TRACER is not set
1748# CONFIG_TRACE_BRANCH_PROFILING is not set 1801# CONFIG_TRACE_BRANCH_PROFILING is not set
1749# CONFIG_STACK_TRACER is not set 1802# CONFIG_STACK_TRACER is not set
1750# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1803# CONFIG_KMEMTRACE is not set
1804# CONFIG_WORKQUEUE_TRACER is not set
1805# CONFIG_BLK_DEV_IO_TRACE is not set
1751# CONFIG_SAMPLES is not set 1806# CONFIG_SAMPLES is not set
1752CONFIG_HAVE_ARCH_KGDB=y 1807CONFIG_HAVE_ARCH_KGDB=y
1753# CONFIG_KGDB is not set 1808# CONFIG_KGDB is not set
1754CONFIG_PRINT_STACK_DEPTH=64 1809CONFIG_PRINT_STACK_DEPTH=64
1755# CONFIG_DEBUG_STACKOVERFLOW is not set 1810# CONFIG_DEBUG_STACKOVERFLOW is not set
1756# CONFIG_DEBUG_STACK_USAGE is not set 1811# CONFIG_DEBUG_STACK_USAGE is not set
1757# CONFIG_DEBUG_PAGEALLOC is not set
1758# CONFIG_CODE_PATCHING_SELFTEST is not set 1812# CONFIG_CODE_PATCHING_SELFTEST is not set
1759# CONFIG_FTR_FIXUP_SELFTEST is not set 1813# CONFIG_FTR_FIXUP_SELFTEST is not set
1760# CONFIG_MSI_BITMAP_SELFTEST is not set 1814# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1776,6 +1830,7 @@ CONFIG_SECURITY_NETWORK=y
1776# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1830# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1777# CONFIG_SECURITY_ROOTPLUG is not set 1831# CONFIG_SECURITY_ROOTPLUG is not set
1778CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1832CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1833# CONFIG_SECURITY_TOMOYO is not set
1779CONFIG_CRYPTO=y 1834CONFIG_CRYPTO=y
1780 1835
1781# 1836#
@@ -1791,10 +1846,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1791CONFIG_CRYPTO_HASH=y 1846CONFIG_CRYPTO_HASH=y
1792CONFIG_CRYPTO_HASH2=y 1847CONFIG_CRYPTO_HASH2=y
1793CONFIG_CRYPTO_RNG2=y 1848CONFIG_CRYPTO_RNG2=y
1849CONFIG_CRYPTO_PCOMP=y
1794CONFIG_CRYPTO_MANAGER=y 1850CONFIG_CRYPTO_MANAGER=y
1795CONFIG_CRYPTO_MANAGER2=y 1851CONFIG_CRYPTO_MANAGER2=y
1796# CONFIG_CRYPTO_GF128MUL is not set 1852# CONFIG_CRYPTO_GF128MUL is not set
1797CONFIG_CRYPTO_NULL=m 1853CONFIG_CRYPTO_NULL=m
1854CONFIG_CRYPTO_WORKQUEUE=y
1798# CONFIG_CRYPTO_CRYPTD is not set 1855# CONFIG_CRYPTO_CRYPTD is not set
1799CONFIG_CRYPTO_AUTHENC=m 1856CONFIG_CRYPTO_AUTHENC=m
1800CONFIG_CRYPTO_TEST=m 1857CONFIG_CRYPTO_TEST=m
@@ -1864,6 +1921,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1864# Compression 1921# Compression
1865# 1922#
1866CONFIG_CRYPTO_DEFLATE=m 1923CONFIG_CRYPTO_DEFLATE=m
1924# CONFIG_CRYPTO_ZLIB is not set
1867# CONFIG_CRYPTO_LZO is not set 1925# CONFIG_CRYPTO_LZO is not set
1868 1926
1869# 1927#
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
index bbdf4bfc4327..cfd2efcc6bce 100644
--- a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:24 2009 4# Wed May 13 17:22:28 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -55,6 +56,7 @@ CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59 61
60# 62#
@@ -72,6 +74,15 @@ CONFIG_SYSVIPC_SYSCTL=y
72# CONFIG_BSD_PROCESS_ACCT is not set 74# CONFIG_BSD_PROCESS_ACCT is not set
73# CONFIG_TASKSTATS is not set 75# CONFIG_TASKSTATS is not set
74# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
77
78#
79# RCU Subsystem
80#
81CONFIG_CLASSIC_RCU=y
82# CONFIG_TREE_RCU is not set
83# CONFIG_PREEMPT_RCU is not set
84# CONFIG_TREE_RCU_TRACE is not set
85# CONFIG_PREEMPT_RCU_TRACE is not set
75CONFIG_IKCONFIG=y 86CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 87CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
@@ -87,21 +98,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94CONFIG_KALLSYMS=y 109CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_ALL is not set 110# CONFIG_KALLSYMS_ALL is not set
96CONFIG_KALLSYMS_EXTRA_PASS=y 111CONFIG_KALLSYMS_EXTRA_PASS=y
112# CONFIG_STRIP_ASM_SYMS is not set
97CONFIG_HOTPLUG=y 113CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 114CONFIG_PRINTK=y
99CONFIG_BUG=y 115CONFIG_BUG=y
100# CONFIG_ELF_CORE is not set 116# CONFIG_ELF_CORE is not set
101CONFIG_COMPAT_BRK=y
102CONFIG_BASE_FULL=y 117CONFIG_BASE_FULL=y
103CONFIG_FUTEX=y 118CONFIG_FUTEX=y
104CONFIG_ANON_INODES=y
105CONFIG_EPOLL=y 119CONFIG_EPOLL=y
106CONFIG_SIGNALFD=y 120CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y 121CONFIG_TIMERFD=y
@@ -111,10 +125,12 @@ CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 125CONFIG_VM_EVENT_COUNTERS=y
112CONFIG_PCI_QUIRKS=y 126CONFIG_PCI_QUIRKS=y
113CONFIG_SLUB_DEBUG=y 127CONFIG_SLUB_DEBUG=y
128CONFIG_COMPAT_BRK=y
114# CONFIG_SLAB is not set 129# CONFIG_SLAB is not set
115CONFIG_SLUB=y 130CONFIG_SLUB=y
116# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
133# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 135# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,6 +138,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 138CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
141# CONFIG_SLOW_WORK is not set
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 142# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 143CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 144CONFIG_RT_MUTEXES=y
@@ -134,7 +151,6 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_SRCVERSION_ALL is not set 151# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_BLOCK=y 152CONFIG_BLOCK=y
136# CONFIG_LBD is not set 153# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_BLK_DEV_BSG is not set 154# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 155# CONFIG_BLK_DEV_INTEGRITY is not set
140 156
@@ -150,18 +166,11 @@ CONFIG_DEFAULT_DEADLINE=y
150# CONFIG_DEFAULT_CFQ is not set 166# CONFIG_DEFAULT_CFQ is not set
151# CONFIG_DEFAULT_NOOP is not set 167# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="deadline" 168CONFIG_DEFAULT_IOSCHED="deadline"
153CONFIG_CLASSIC_RCU=y
154# CONFIG_TREE_RCU is not set
155# CONFIG_PREEMPT_RCU is not set
156# CONFIG_TREE_RCU_TRACE is not set
157# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 169# CONFIG_FREEZER is not set
159 170
160# 171#
161# Platform support 172# Platform support
162# 173#
163CONFIG_PPC_MULTIPLATFORM=y
164CONFIG_CLASSIC32=y
165# CONFIG_PPC_CHRP is not set 174# CONFIG_PPC_CHRP is not set
166# CONFIG_MPC5121_ADS is not set 175# CONFIG_MPC5121_ADS is not set
167# CONFIG_MPC5121_GENERIC is not set 176# CONFIG_MPC5121_GENERIC is not set
@@ -176,9 +185,13 @@ CONFIG_PPC_86xx=y
176# CONFIG_MPC8641_HPCN is not set 185# CONFIG_MPC8641_HPCN is not set
177# CONFIG_SBC8641D is not set 186# CONFIG_SBC8641D is not set
178CONFIG_MPC8610_HPCD=y 187CONFIG_MPC8610_HPCD=y
188# CONFIG_GEF_PPC9A is not set
189# CONFIG_GEF_SBC310 is not set
179# CONFIG_GEF_SBC610 is not set 190# CONFIG_GEF_SBC610 is not set
180CONFIG_MPC8610=y 191CONFIG_MPC8610=y
181# CONFIG_EMBEDDED6xx is not set 192# CONFIG_EMBEDDED6xx is not set
193# CONFIG_AMIGAONE is not set
194CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
182# CONFIG_IPIC is not set 195# CONFIG_IPIC is not set
183CONFIG_MPIC=y 196CONFIG_MPIC=y
184# CONFIG_MPIC_WEIRD is not set 197# CONFIG_MPIC_WEIRD is not set
@@ -238,9 +251,12 @@ CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y 251CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y 252CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y 253CONFIG_UNEVICTABLE_LRU=y
254CONFIG_HAVE_MLOCK=y
255CONFIG_HAVE_MLOCKED_PAGE_BIT=y
241CONFIG_PPC_4K_PAGES=y 256CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set 257# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set 258# CONFIG_PPC_64K_PAGES is not set
259# CONFIG_PPC_256K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=12 260CONFIG_FORCE_MAX_ZONEORDER=12
245CONFIG_PROC_DEVICETREE=y 261CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 262# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +285,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
269# CONFIG_PCI_LEGACY is not set 285# CONFIG_PCI_LEGACY is not set
270CONFIG_PCI_DEBUG=y 286CONFIG_PCI_DEBUG=y
271# CONFIG_PCI_STUB is not set 287# CONFIG_PCI_STUB is not set
288# CONFIG_PCI_IOV is not set
272# CONFIG_PCCARD is not set 289# CONFIG_PCCARD is not set
273# CONFIG_HOTPLUG_PCI is not set 290# CONFIG_HOTPLUG_PCI is not set
274# CONFIG_HAS_RAPIDIO is not set 291# CONFIG_HAS_RAPIDIO is not set
@@ -291,7 +308,6 @@ CONFIG_NET=y
291# 308#
292# Networking options 309# Networking options
293# 310#
294CONFIG_COMPAT_NET_DEV_OPS=y
295CONFIG_PACKET=y 311CONFIG_PACKET=y
296# CONFIG_PACKET_MMAP is not set 312# CONFIG_PACKET_MMAP is not set
297CONFIG_UNIX=y 313CONFIG_UNIX=y
@@ -364,6 +380,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
364# CONFIG_LAPB is not set 380# CONFIG_LAPB is not set
365# CONFIG_ECONET is not set 381# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set 382# CONFIG_WAN_ROUTER is not set
383# CONFIG_PHONET is not set
367# CONFIG_NET_SCHED is not set 384# CONFIG_NET_SCHED is not set
368# CONFIG_DCB is not set 385# CONFIG_DCB is not set
369 386
@@ -376,7 +393,6 @@ CONFIG_IPV6_NDISC_NODETYPE=y
376# CONFIG_IRDA is not set 393# CONFIG_IRDA is not set
377# CONFIG_BT is not set 394# CONFIG_BT is not set
378# CONFIG_AF_RXRPC is not set 395# CONFIG_AF_RXRPC is not set
379# CONFIG_PHONET is not set
380CONFIG_WIRELESS=y 396CONFIG_WIRELESS=y
381# CONFIG_CFG80211 is not set 397# CONFIG_CFG80211 is not set
382CONFIG_WIRELESS_OLD_REGULATORY=y 398CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -492,7 +508,6 @@ CONFIG_MTD_NAND_FSL_ELBC=y
492# LPDDR flash memory drivers 508# LPDDR flash memory drivers
493# 509#
494# CONFIG_MTD_LPDDR is not set 510# CONFIG_MTD_LPDDR is not set
495# CONFIG_MTD_QINFO_PROBE is not set
496 511
497# 512#
498# UBI - Unsorted block images 513# UBI - Unsorted block images
@@ -521,13 +536,20 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
521# CONFIG_BLK_DEV_HD is not set 536# CONFIG_BLK_DEV_HD is not set
522CONFIG_MISC_DEVICES=y 537CONFIG_MISC_DEVICES=y
523# CONFIG_PHANTOM is not set 538# CONFIG_PHANTOM is not set
524# CONFIG_EEPROM_93CX6 is not set
525# CONFIG_SGI_IOC4 is not set 539# CONFIG_SGI_IOC4 is not set
526# CONFIG_TIFM_CORE is not set 540# CONFIG_TIFM_CORE is not set
527# CONFIG_ICS932S401 is not set 541# CONFIG_ICS932S401 is not set
528# CONFIG_ENCLOSURE_SERVICES is not set 542# CONFIG_ENCLOSURE_SERVICES is not set
529# CONFIG_HP_ILO is not set 543# CONFIG_HP_ILO is not set
544# CONFIG_ISL29003 is not set
530# CONFIG_C2PORT is not set 545# CONFIG_C2PORT is not set
546
547#
548# EEPROM support
549#
550# CONFIG_EEPROM_AT24 is not set
551# CONFIG_EEPROM_LEGACY is not set
552# CONFIG_EEPROM_93CX6 is not set
531CONFIG_HAVE_IDE=y 553CONFIG_HAVE_IDE=y
532CONFIG_IDE=y 554CONFIG_IDE=y
533 555
@@ -632,9 +654,11 @@ CONFIG_SCSI_LOWLEVEL=y
632# CONFIG_MEGARAID_NEWGEN is not set 654# CONFIG_MEGARAID_NEWGEN is not set
633# CONFIG_MEGARAID_LEGACY is not set 655# CONFIG_MEGARAID_LEGACY is not set
634# CONFIG_MEGARAID_SAS is not set 656# CONFIG_MEGARAID_SAS is not set
657# CONFIG_SCSI_MPT2SAS is not set
635# CONFIG_SCSI_HPTIOP is not set 658# CONFIG_SCSI_HPTIOP is not set
636# CONFIG_SCSI_BUSLOGIC is not set 659# CONFIG_SCSI_BUSLOGIC is not set
637# CONFIG_LIBFC is not set 660# CONFIG_LIBFC is not set
661# CONFIG_LIBFCOE is not set
638# CONFIG_FCOE is not set 662# CONFIG_FCOE is not set
639# CONFIG_SCSI_DMX3191D is not set 663# CONFIG_SCSI_DMX3191D is not set
640# CONFIG_SCSI_EATA is not set 664# CONFIG_SCSI_EATA is not set
@@ -657,6 +681,7 @@ CONFIG_SCSI_LOWLEVEL=y
657# CONFIG_SCSI_DEBUG is not set 681# CONFIG_SCSI_DEBUG is not set
658# CONFIG_SCSI_SRP is not set 682# CONFIG_SCSI_SRP is not set
659# CONFIG_SCSI_DH is not set 683# CONFIG_SCSI_DH is not set
684# CONFIG_SCSI_OSD_INITIATOR is not set
660CONFIG_ATA=y 685CONFIG_ATA=y
661# CONFIG_ATA_NONSTANDARD is not set 686# CONFIG_ATA_NONSTANDARD is not set
662CONFIG_SATA_PMP=y 687CONFIG_SATA_PMP=y
@@ -733,6 +758,7 @@ CONFIG_PATA_ALI=y
733# CONFIG_I2O is not set 758# CONFIG_I2O is not set
734# CONFIG_MACINTOSH_DRIVERS is not set 759# CONFIG_MACINTOSH_DRIVERS is not set
735CONFIG_NETDEVICES=y 760CONFIG_NETDEVICES=y
761CONFIG_COMPAT_NET_DEV_OPS=y
736CONFIG_DUMMY=y 762CONFIG_DUMMY=y
737# CONFIG_BONDING is not set 763# CONFIG_BONDING is not set
738# CONFIG_MACVLAN is not set 764# CONFIG_MACVLAN is not set
@@ -747,6 +773,8 @@ CONFIG_NET_ETHERNET=y
747# CONFIG_SUNGEM is not set 773# CONFIG_SUNGEM is not set
748# CONFIG_CASSINI is not set 774# CONFIG_CASSINI is not set
749# CONFIG_NET_VENDOR_3COM is not set 775# CONFIG_NET_VENDOR_3COM is not set
776# CONFIG_ETHOC is not set
777# CONFIG_DNET is not set
750CONFIG_NET_TULIP=y 778CONFIG_NET_TULIP=y
751# CONFIG_DE2104X is not set 779# CONFIG_DE2104X is not set
752# CONFIG_TULIP is not set 780# CONFIG_TULIP is not set
@@ -774,7 +802,6 @@ CONFIG_ULI526X=y
774# 802#
775# CONFIG_WLAN_PRE80211 is not set 803# CONFIG_WLAN_PRE80211 is not set
776# CONFIG_WLAN_80211 is not set 804# CONFIG_WLAN_80211 is not set
777# CONFIG_IWLWIFI_LEDS is not set
778 805
779# 806#
780# Enable WiMAX (Networking options) to see the WiMAX drivers 807# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -929,12 +956,9 @@ CONFIG_I2C_MPC=y
929# Miscellaneous I2C Chip support 956# Miscellaneous I2C Chip support
930# 957#
931# CONFIG_DS1682 is not set 958# CONFIG_DS1682 is not set
932# CONFIG_EEPROM_AT24 is not set
933# CONFIG_EEPROM_LEGACY is not set
934# CONFIG_SENSORS_PCF8574 is not set 959# CONFIG_SENSORS_PCF8574 is not set
935# CONFIG_PCF8575 is not set 960# CONFIG_PCF8575 is not set
936# CONFIG_SENSORS_PCA9539 is not set 961# CONFIG_SENSORS_PCA9539 is not set
937# CONFIG_SENSORS_PCF8591 is not set
938# CONFIG_SENSORS_MAX6875 is not set 962# CONFIG_SENSORS_MAX6875 is not set
939# CONFIG_SENSORS_TSL2550 is not set 963# CONFIG_SENSORS_TSL2550 is not set
940# CONFIG_I2C_DEBUG_CORE is not set 964# CONFIG_I2C_DEBUG_CORE is not set
@@ -1049,6 +1073,7 @@ CONFIG_FB_FSL_DIU=y
1049# CONFIG_FB_VIRTUAL is not set 1073# CONFIG_FB_VIRTUAL is not set
1050# CONFIG_FB_METRONOME is not set 1074# CONFIG_FB_METRONOME is not set
1051# CONFIG_FB_MB862XX is not set 1075# CONFIG_FB_MB862XX is not set
1076# CONFIG_FB_BROADSHEET is not set
1052# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1077# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1053 1078
1054# 1079#
@@ -1069,6 +1094,7 @@ CONFIG_SOUND_OSS_CORE=y
1069CONFIG_SND=y 1094CONFIG_SND=y
1070CONFIG_SND_TIMER=y 1095CONFIG_SND_TIMER=y
1071CONFIG_SND_PCM=y 1096CONFIG_SND_PCM=y
1097CONFIG_SND_JACK=y
1072# CONFIG_SND_SEQUENCER is not set 1098# CONFIG_SND_SEQUENCER is not set
1073CONFIG_SND_OSSEMUL=y 1099CONFIG_SND_OSSEMUL=y
1074CONFIG_SND_MIXER_OSS=y 1100CONFIG_SND_MIXER_OSS=y
@@ -1116,6 +1142,8 @@ CONFIG_SND_PCI=y
1116# CONFIG_SND_INDIGO is not set 1142# CONFIG_SND_INDIGO is not set
1117# CONFIG_SND_INDIGOIO is not set 1143# CONFIG_SND_INDIGOIO is not set
1118# CONFIG_SND_INDIGODJ is not set 1144# CONFIG_SND_INDIGODJ is not set
1145# CONFIG_SND_INDIGOIOX is not set
1146# CONFIG_SND_INDIGODJX is not set
1119# CONFIG_SND_EMU10K1 is not set 1147# CONFIG_SND_EMU10K1 is not set
1120# CONFIG_SND_EMU10K1X is not set 1148# CONFIG_SND_EMU10K1X is not set
1121# CONFIG_SND_ENS1370 is not set 1149# CONFIG_SND_ENS1370 is not set
@@ -1165,7 +1193,6 @@ CONFIG_HID=y
1165# 1193#
1166# Special HID drivers 1194# Special HID drivers
1167# 1195#
1168CONFIG_HID_COMPAT=y
1169CONFIG_USB_SUPPORT=y 1196CONFIG_USB_SUPPORT=y
1170CONFIG_USB_ARCH_HAS_HCD=y 1197CONFIG_USB_ARCH_HAS_HCD=y
1171CONFIG_USB_ARCH_HAS_OHCI=y 1198CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1179,7 +1206,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1179# 1206#
1180 1207
1181# 1208#
1182# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1209# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1183# 1210#
1184# CONFIG_USB_GADGET is not set 1211# CONFIG_USB_GADGET is not set
1185 1212
@@ -1247,8 +1274,9 @@ CONFIG_RTC_DRV_CMOS=y
1247# 1274#
1248# on-CPU RTC drivers 1275# on-CPU RTC drivers
1249# 1276#
1250# CONFIG_RTC_DRV_PPC is not set 1277# CONFIG_RTC_DRV_GENERIC is not set
1251# CONFIG_DMADEVICES is not set 1278# CONFIG_DMADEVICES is not set
1279# CONFIG_AUXDISPLAY is not set
1252# CONFIG_UIO is not set 1280# CONFIG_UIO is not set
1253# CONFIG_STAGING is not set 1281# CONFIG_STAGING is not set
1254 1282
@@ -1259,6 +1287,7 @@ CONFIG_EXT2_FS=y
1259# CONFIG_EXT2_FS_XATTR is not set 1287# CONFIG_EXT2_FS_XATTR is not set
1260# CONFIG_EXT2_FS_XIP is not set 1288# CONFIG_EXT2_FS_XIP is not set
1261CONFIG_EXT3_FS=y 1289CONFIG_EXT3_FS=y
1290# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1262CONFIG_EXT3_FS_XATTR=y 1291CONFIG_EXT3_FS_XATTR=y
1263# CONFIG_EXT3_FS_POSIX_ACL is not set 1292# CONFIG_EXT3_FS_POSIX_ACL is not set
1264# CONFIG_EXT3_FS_SECURITY is not set 1293# CONFIG_EXT3_FS_SECURITY is not set
@@ -1280,6 +1309,11 @@ CONFIG_FILE_LOCKING=y
1280# CONFIG_FUSE_FS is not set 1309# CONFIG_FUSE_FS is not set
1281 1310
1282# 1311#
1312# Caches
1313#
1314# CONFIG_FSCACHE is not set
1315
1316#
1283# CD-ROM/DVD Filesystems 1317# CD-ROM/DVD Filesystems
1284# 1318#
1285# CONFIG_ISO9660_FS is not set 1319# CONFIG_ISO9660_FS is not set
@@ -1323,6 +1357,7 @@ CONFIG_MISC_FILESYSTEMS=y
1323# CONFIG_ROMFS_FS is not set 1357# CONFIG_ROMFS_FS is not set
1324# CONFIG_SYSV_FS is not set 1358# CONFIG_SYSV_FS is not set
1325# CONFIG_UFS_FS is not set 1359# CONFIG_UFS_FS is not set
1360# CONFIG_NILFS2_FS is not set
1326CONFIG_NETWORK_FILESYSTEMS=y 1361CONFIG_NETWORK_FILESYSTEMS=y
1327CONFIG_NFS_FS=y 1362CONFIG_NFS_FS=y
1328CONFIG_NFS_V3=y 1363CONFIG_NFS_V3=y
@@ -1337,7 +1372,6 @@ CONFIG_LOCKD_V4=y
1337CONFIG_EXPORTFS=y 1372CONFIG_EXPORTFS=y
1338CONFIG_NFS_COMMON=y 1373CONFIG_NFS_COMMON=y
1339CONFIG_SUNRPC=y 1374CONFIG_SUNRPC=y
1340# CONFIG_SUNRPC_REGISTER_V4 is not set
1341# CONFIG_RPCSEC_GSS_KRB5 is not set 1375# CONFIG_RPCSEC_GSS_KRB5 is not set
1342# CONFIG_RPCSEC_GSS_SPKM3 is not set 1376# CONFIG_RPCSEC_GSS_SPKM3 is not set
1343# CONFIG_SMB_FS is not set 1377# CONFIG_SMB_FS is not set
@@ -1409,6 +1443,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1409# CONFIG_NLS_KOI8_U is not set 1443# CONFIG_NLS_KOI8_U is not set
1410# CONFIG_NLS_UTF8 is not set 1444# CONFIG_NLS_UTF8 is not set
1411# CONFIG_DLM is not set 1445# CONFIG_DLM is not set
1446# CONFIG_BINARY_PRINTF is not set
1412 1447
1413# 1448#
1414# Library routines 1449# Library routines
@@ -1422,11 +1457,13 @@ CONFIG_CRC_T10DIF=y
1422CONFIG_CRC32=y 1457CONFIG_CRC32=y
1423# CONFIG_CRC7 is not set 1458# CONFIG_CRC7 is not set
1424# CONFIG_LIBCRC32C is not set 1459# CONFIG_LIBCRC32C is not set
1425CONFIG_PLIST=y 1460CONFIG_ZLIB_INFLATE=y
1461CONFIG_DECOMPRESS_GZIP=y
1426CONFIG_HAS_IOMEM=y 1462CONFIG_HAS_IOMEM=y
1427CONFIG_HAS_IOPORT=y 1463CONFIG_HAS_IOPORT=y
1428CONFIG_HAS_DMA=y 1464CONFIG_HAS_DMA=y
1429CONFIG_HAVE_LMB=y 1465CONFIG_HAVE_LMB=y
1466CONFIG_NLATTR=y
1430 1467
1431# 1468#
1432# Kernel hacking 1469# Kernel hacking
@@ -1444,6 +1481,9 @@ CONFIG_DEBUG_SHIRQ=y
1444CONFIG_DETECT_SOFTLOCKUP=y 1481CONFIG_DETECT_SOFTLOCKUP=y
1445# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1482# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1446CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1483CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1484CONFIG_DETECT_HUNG_TASK=y
1485# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1486CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1447CONFIG_SCHED_DEBUG=y 1487CONFIG_SCHED_DEBUG=y
1448# CONFIG_SCHEDSTATS is not set 1488# CONFIG_SCHEDSTATS is not set
1449# CONFIG_TIMER_STATS is not set 1489# CONFIG_TIMER_STATS is not set
@@ -1474,9 +1514,12 @@ CONFIG_DEBUG_INFO=y
1474# CONFIG_FAULT_INJECTION is not set 1514# CONFIG_FAULT_INJECTION is not set
1475# CONFIG_LATENCYTOP is not set 1515# CONFIG_LATENCYTOP is not set
1476CONFIG_SYSCTL_SYSCALL_CHECK=y 1516CONFIG_SYSCTL_SYSCALL_CHECK=y
1517# CONFIG_DEBUG_PAGEALLOC is not set
1477CONFIG_HAVE_FUNCTION_TRACER=y 1518CONFIG_HAVE_FUNCTION_TRACER=y
1519CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1478CONFIG_HAVE_DYNAMIC_FTRACE=y 1520CONFIG_HAVE_DYNAMIC_FTRACE=y
1479CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1521CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1522CONFIG_TRACING_SUPPORT=y
1480 1523
1481# 1524#
1482# Tracers 1525# Tracers
@@ -1484,17 +1527,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1484# CONFIG_FUNCTION_TRACER is not set 1527# CONFIG_FUNCTION_TRACER is not set
1485# CONFIG_SCHED_TRACER is not set 1528# CONFIG_SCHED_TRACER is not set
1486# CONFIG_CONTEXT_SWITCH_TRACER is not set 1529# CONFIG_CONTEXT_SWITCH_TRACER is not set
1530# CONFIG_EVENT_TRACER is not set
1487# CONFIG_BOOT_TRACER is not set 1531# CONFIG_BOOT_TRACER is not set
1488# CONFIG_TRACE_BRANCH_PROFILING is not set 1532# CONFIG_TRACE_BRANCH_PROFILING is not set
1489# CONFIG_STACK_TRACER is not set 1533# CONFIG_STACK_TRACER is not set
1490# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1534# CONFIG_KMEMTRACE is not set
1535# CONFIG_WORKQUEUE_TRACER is not set
1536# CONFIG_BLK_DEV_IO_TRACE is not set
1491# CONFIG_SAMPLES is not set 1537# CONFIG_SAMPLES is not set
1492CONFIG_HAVE_ARCH_KGDB=y 1538CONFIG_HAVE_ARCH_KGDB=y
1493# CONFIG_KGDB is not set 1539# CONFIG_KGDB is not set
1494CONFIG_PRINT_STACK_DEPTH=64 1540CONFIG_PRINT_STACK_DEPTH=64
1495# CONFIG_DEBUG_STACKOVERFLOW is not set 1541# CONFIG_DEBUG_STACKOVERFLOW is not set
1496# CONFIG_DEBUG_STACK_USAGE is not set 1542# CONFIG_DEBUG_STACK_USAGE is not set
1497# CONFIG_DEBUG_PAGEALLOC is not set
1498# CONFIG_CODE_PATCHING_SELFTEST is not set 1543# CONFIG_CODE_PATCHING_SELFTEST is not set
1499# CONFIG_FTR_FIXUP_SELFTEST is not set 1544# CONFIG_FTR_FIXUP_SELFTEST is not set
1500# CONFIG_MSI_BITMAP_SELFTEST is not set 1545# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1589,6 +1634,7 @@ CONFIG_CRYPTO=y
1589# Compression 1634# Compression
1590# 1635#
1591# CONFIG_CRYPTO_DEFLATE is not set 1636# CONFIG_CRYPTO_DEFLATE is not set
1637# CONFIG_CRYPTO_ZLIB is not set
1592# CONFIG_CRYPTO_LZO is not set 1638# CONFIG_CRYPTO_LZO is not set
1593 1639
1594# 1640#
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
index 92acfdf3540a..0bee3e303942 100644
--- a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
+++ b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:25 2009 4# Wed May 13 17:22:28 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -56,6 +57,7 @@ CONFIG_GENERIC_BUG=y
56CONFIG_DEFAULT_UIMAGE=y 57CONFIG_DEFAULT_UIMAGE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -70,11 +72,21 @@ CONFIG_SWAP=y
70CONFIG_SYSVIPC=y 72CONFIG_SYSVIPC=y
71CONFIG_SYSVIPC_SYSCTL=y 73CONFIG_SYSVIPC_SYSCTL=y
72CONFIG_POSIX_MQUEUE=y 74CONFIG_POSIX_MQUEUE=y
75CONFIG_POSIX_MQUEUE_SYSCTL=y
73CONFIG_BSD_PROCESS_ACCT=y 76CONFIG_BSD_PROCESS_ACCT=y
74# CONFIG_BSD_PROCESS_ACCT_V3 is not set 77# CONFIG_BSD_PROCESS_ACCT_V3 is not set
75# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
76CONFIG_AUDIT=y 79CONFIG_AUDIT=y
77# CONFIG_AUDITSYSCALL is not set 80# CONFIG_AUDITSYSCALL is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
78CONFIG_IKCONFIG=y 90CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 91CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 92CONFIG_LOG_BUF_SHIFT=14
@@ -90,22 +102,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 104CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 108# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
110CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 111CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 112CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 113CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 114CONFIG_KALLSYMS_ALL=y
99CONFIG_KALLSYMS_STRIP_GENERATED=y
100CONFIG_KALLSYMS_EXTRA_PASS=y 115CONFIG_KALLSYMS_EXTRA_PASS=y
116# CONFIG_STRIP_ASM_SYMS is not set
101CONFIG_HOTPLUG=y 117CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 118CONFIG_PRINTK=y
103CONFIG_BUG=y 119CONFIG_BUG=y
104CONFIG_ELF_CORE=y 120CONFIG_ELF_CORE=y
105CONFIG_COMPAT_BRK=y
106CONFIG_BASE_FULL=y 121CONFIG_BASE_FULL=y
107CONFIG_FUTEX=y 122CONFIG_FUTEX=y
108CONFIG_ANON_INODES=y
109CONFIG_EPOLL=y 123CONFIG_EPOLL=y
110CONFIG_SIGNALFD=y 124CONFIG_SIGNALFD=y
111CONFIG_TIMERFD=y 125CONFIG_TIMERFD=y
@@ -115,10 +129,12 @@ CONFIG_AIO=y
115CONFIG_VM_EVENT_COUNTERS=y 129CONFIG_VM_EVENT_COUNTERS=y
116CONFIG_PCI_QUIRKS=y 130CONFIG_PCI_QUIRKS=y
117CONFIG_SLUB_DEBUG=y 131CONFIG_SLUB_DEBUG=y
132CONFIG_COMPAT_BRK=y
118# CONFIG_SLAB is not set 133# CONFIG_SLAB is not set
119CONFIG_SLUB=y 134CONFIG_SLUB=y
120# CONFIG_SLOB is not set 135# CONFIG_SLOB is not set
121# CONFIG_PROFILING is not set 136# CONFIG_PROFILING is not set
137# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 138CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 139# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 140CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -127,6 +143,7 @@ CONFIG_HAVE_KPROBES=y
127CONFIG_HAVE_KRETPROBES=y 143CONFIG_HAVE_KRETPROBES=y
128CONFIG_HAVE_ARCH_TRACEHOOK=y 144CONFIG_HAVE_ARCH_TRACEHOOK=y
129CONFIG_USE_GENERIC_SMP_HELPERS=y 145CONFIG_USE_GENERIC_SMP_HELPERS=y
146# CONFIG_SLOW_WORK is not set
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
@@ -140,7 +157,6 @@ CONFIG_MODVERSIONS=y
140CONFIG_STOP_MACHINE=y 157CONFIG_STOP_MACHINE=y
141CONFIG_BLOCK=y 158CONFIG_BLOCK=y
142CONFIG_LBD=y 159CONFIG_LBD=y
143# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_BLK_DEV_BSG is not set 160# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set 161# CONFIG_BLK_DEV_INTEGRITY is not set
146 162
@@ -156,18 +172,11 @@ CONFIG_IOSCHED_CFQ=y
156CONFIG_DEFAULT_CFQ=y 172CONFIG_DEFAULT_CFQ=y
157# CONFIG_DEFAULT_NOOP is not set 173# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="cfq" 174CONFIG_DEFAULT_IOSCHED="cfq"
159CONFIG_CLASSIC_RCU=y
160# CONFIG_TREE_RCU is not set
161# CONFIG_PREEMPT_RCU is not set
162# CONFIG_TREE_RCU_TRACE is not set
163# CONFIG_PREEMPT_RCU_TRACE is not set
164# CONFIG_FREEZER is not set 175# CONFIG_FREEZER is not set
165 176
166# 177#
167# Platform support 178# Platform support
168# 179#
169CONFIG_PPC_MULTIPLATFORM=y
170CONFIG_CLASSIC32=y
171# CONFIG_PPC_CHRP is not set 180# CONFIG_PPC_CHRP is not set
172# CONFIG_MPC5121_ADS is not set 181# CONFIG_MPC5121_ADS is not set
173# CONFIG_MPC5121_GENERIC is not set 182# CONFIG_MPC5121_GENERIC is not set
@@ -182,8 +191,11 @@ CONFIG_PPC_86xx=y
182CONFIG_MPC8641_HPCN=y 191CONFIG_MPC8641_HPCN=y
183# CONFIG_SBC8641D is not set 192# CONFIG_SBC8641D is not set
184# CONFIG_MPC8610_HPCD is not set 193# CONFIG_MPC8610_HPCD is not set
194# CONFIG_GEF_PPC9A is not set
195# CONFIG_GEF_SBC310 is not set
185# CONFIG_GEF_SBC610 is not set 196# CONFIG_GEF_SBC610 is not set
186CONFIG_MPC8641=y 197CONFIG_MPC8641=y
198CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
187# CONFIG_IPIC is not set 199# CONFIG_IPIC is not set
188CONFIG_MPIC=y 200CONFIG_MPIC=y
189# CONFIG_MPIC_WEIRD is not set 201# CONFIG_MPIC_WEIRD is not set
@@ -245,9 +257,12 @@ CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 257CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 258CONFIG_VIRT_TO_BUS=y
247CONFIG_UNEVICTABLE_LRU=y 259CONFIG_UNEVICTABLE_LRU=y
260CONFIG_HAVE_MLOCK=y
261CONFIG_HAVE_MLOCKED_PAGE_BIT=y
248CONFIG_PPC_4K_PAGES=y 262CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set 263# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set 264# CONFIG_PPC_64K_PAGES is not set
265# CONFIG_PPC_256K_PAGES is not set
251CONFIG_FORCE_MAX_ZONEORDER=11 266CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 267CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 268# CONFIG_CMDLINE_BOOL is not set
@@ -274,6 +289,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_LEGACY is not set 289# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_DEBUG is not set 290# CONFIG_PCI_DEBUG is not set
276# CONFIG_PCI_STUB is not set 291# CONFIG_PCI_STUB is not set
292# CONFIG_PCI_IOV is not set
277# CONFIG_PCCARD is not set 293# CONFIG_PCCARD is not set
278# CONFIG_HOTPLUG_PCI is not set 294# CONFIG_HOTPLUG_PCI is not set
279CONFIG_HAS_RAPIDIO=y 295CONFIG_HAS_RAPIDIO=y
@@ -297,7 +313,6 @@ CONFIG_NET=y
297# 313#
298# Networking options 314# Networking options
299# 315#
300CONFIG_COMPAT_NET_DEV_OPS=y
301CONFIG_PACKET=y 316CONFIG_PACKET=y
302# CONFIG_PACKET_MMAP is not set 317# CONFIG_PACKET_MMAP is not set
303CONFIG_UNIX=y 318CONFIG_UNIX=y
@@ -385,6 +400,7 @@ CONFIG_SCTP_HMAC_MD5=y
385# CONFIG_LAPB is not set 400# CONFIG_LAPB is not set
386# CONFIG_ECONET is not set 401# CONFIG_ECONET is not set
387# CONFIG_WAN_ROUTER is not set 402# CONFIG_WAN_ROUTER is not set
403# CONFIG_PHONET is not set
388# CONFIG_NET_SCHED is not set 404# CONFIG_NET_SCHED is not set
389# CONFIG_DCB is not set 405# CONFIG_DCB is not set
390 406
@@ -397,7 +413,6 @@ CONFIG_SCTP_HMAC_MD5=y
397# CONFIG_IRDA is not set 413# CONFIG_IRDA is not set
398# CONFIG_BT is not set 414# CONFIG_BT is not set
399# CONFIG_AF_RXRPC is not set 415# CONFIG_AF_RXRPC is not set
400# CONFIG_PHONET is not set
401CONFIG_FIB_RULES=y 416CONFIG_FIB_RULES=y
402CONFIG_WIRELESS=y 417CONFIG_WIRELESS=y
403# CONFIG_CFG80211 is not set 418# CONFIG_CFG80211 is not set
@@ -451,13 +466,20 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
451# CONFIG_BLK_DEV_HD is not set 466# CONFIG_BLK_DEV_HD is not set
452CONFIG_MISC_DEVICES=y 467CONFIG_MISC_DEVICES=y
453# CONFIG_PHANTOM is not set 468# CONFIG_PHANTOM is not set
454# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_SGI_IOC4 is not set 469# CONFIG_SGI_IOC4 is not set
456# CONFIG_TIFM_CORE is not set 470# CONFIG_TIFM_CORE is not set
457# CONFIG_ICS932S401 is not set 471# CONFIG_ICS932S401 is not set
458# CONFIG_ENCLOSURE_SERVICES is not set 472# CONFIG_ENCLOSURE_SERVICES is not set
459# CONFIG_HP_ILO is not set 473# CONFIG_HP_ILO is not set
474# CONFIG_ISL29003 is not set
460# CONFIG_C2PORT is not set 475# CONFIG_C2PORT is not set
476
477#
478# EEPROM support
479#
480# CONFIG_EEPROM_AT24 is not set
481CONFIG_EEPROM_LEGACY=y
482# CONFIG_EEPROM_93CX6 is not set
461CONFIG_HAVE_IDE=y 483CONFIG_HAVE_IDE=y
462# CONFIG_IDE is not set 484# CONFIG_IDE is not set
463 485
@@ -516,9 +538,11 @@ CONFIG_SCSI_LOWLEVEL=y
516# CONFIG_MEGARAID_NEWGEN is not set 538# CONFIG_MEGARAID_NEWGEN is not set
517# CONFIG_MEGARAID_LEGACY is not set 539# CONFIG_MEGARAID_LEGACY is not set
518# CONFIG_MEGARAID_SAS is not set 540# CONFIG_MEGARAID_SAS is not set
541# CONFIG_SCSI_MPT2SAS is not set
519# CONFIG_SCSI_HPTIOP is not set 542# CONFIG_SCSI_HPTIOP is not set
520# CONFIG_SCSI_BUSLOGIC is not set 543# CONFIG_SCSI_BUSLOGIC is not set
521# CONFIG_LIBFC is not set 544# CONFIG_LIBFC is not set
545# CONFIG_LIBFCOE is not set
522# CONFIG_FCOE is not set 546# CONFIG_FCOE is not set
523# CONFIG_SCSI_DMX3191D is not set 547# CONFIG_SCSI_DMX3191D is not set
524# CONFIG_SCSI_EATA is not set 548# CONFIG_SCSI_EATA is not set
@@ -541,6 +565,7 @@ CONFIG_SCSI_LOWLEVEL=y
541# CONFIG_SCSI_DEBUG is not set 565# CONFIG_SCSI_DEBUG is not set
542# CONFIG_SCSI_SRP is not set 566# CONFIG_SCSI_SRP is not set
543# CONFIG_SCSI_DH is not set 567# CONFIG_SCSI_DH is not set
568# CONFIG_SCSI_OSD_INITIATOR is not set
544CONFIG_ATA=y 569CONFIG_ATA=y
545# CONFIG_ATA_NONSTANDARD is not set 570# CONFIG_ATA_NONSTANDARD is not set
546CONFIG_SATA_PMP=y 571CONFIG_SATA_PMP=y
@@ -617,6 +642,7 @@ CONFIG_PATA_ALI=y
617# CONFIG_I2O is not set 642# CONFIG_I2O is not set
618# CONFIG_MACINTOSH_DRIVERS is not set 643# CONFIG_MACINTOSH_DRIVERS is not set
619CONFIG_NETDEVICES=y 644CONFIG_NETDEVICES=y
645CONFIG_COMPAT_NET_DEV_OPS=y
620CONFIG_DUMMY=y 646CONFIG_DUMMY=y
621# CONFIG_BONDING is not set 647# CONFIG_BONDING is not set
622# CONFIG_MACVLAN is not set 648# CONFIG_MACVLAN is not set
@@ -650,6 +676,8 @@ CONFIG_MII=y
650# CONFIG_SUNGEM is not set 676# CONFIG_SUNGEM is not set
651# CONFIG_CASSINI is not set 677# CONFIG_CASSINI is not set
652# CONFIG_NET_VENDOR_3COM is not set 678# CONFIG_NET_VENDOR_3COM is not set
679# CONFIG_ETHOC is not set
680# CONFIG_DNET is not set
653# CONFIG_NET_TULIP is not set 681# CONFIG_NET_TULIP is not set
654# CONFIG_HP100 is not set 682# CONFIG_HP100 is not set
655# CONFIG_IBM_NEW_EMAC_ZMII is not set 683# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -669,6 +697,7 @@ CONFIG_NETDEV_1000=y
669# CONFIG_E1000E is not set 697# CONFIG_E1000E is not set
670# CONFIG_IP1000 is not set 698# CONFIG_IP1000 is not set
671# CONFIG_IGB is not set 699# CONFIG_IGB is not set
700# CONFIG_IGBVF is not set
672# CONFIG_NS83820 is not set 701# CONFIG_NS83820 is not set
673# CONFIG_HAMACHI is not set 702# CONFIG_HAMACHI is not set
674# CONFIG_YELLOWFIN is not set 703# CONFIG_YELLOWFIN is not set
@@ -679,11 +708,12 @@ CONFIG_NETDEV_1000=y
679# CONFIG_VIA_VELOCITY is not set 708# CONFIG_VIA_VELOCITY is not set
680# CONFIG_TIGON3 is not set 709# CONFIG_TIGON3 is not set
681# CONFIG_BNX2 is not set 710# CONFIG_BNX2 is not set
711CONFIG_FSL_PQ_MDIO=y
682CONFIG_GIANFAR=y 712CONFIG_GIANFAR=y
683# CONFIG_MV643XX_ETH is not set
684# CONFIG_QLA3XXX is not set 713# CONFIG_QLA3XXX is not set
685# CONFIG_ATL1 is not set 714# CONFIG_ATL1 is not set
686# CONFIG_ATL1E is not set 715# CONFIG_ATL1E is not set
716# CONFIG_ATL1C is not set
687# CONFIG_JME is not set 717# CONFIG_JME is not set
688CONFIG_NETDEV_10000=y 718CONFIG_NETDEV_10000=y
689# CONFIG_CHELSIO_T1 is not set 719# CONFIG_CHELSIO_T1 is not set
@@ -693,6 +723,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
693# CONFIG_IXGBE is not set 723# CONFIG_IXGBE is not set
694# CONFIG_IXGB is not set 724# CONFIG_IXGB is not set
695# CONFIG_S2IO is not set 725# CONFIG_S2IO is not set
726# CONFIG_VXGE is not set
696# CONFIG_MYRI10GE is not set 727# CONFIG_MYRI10GE is not set
697# CONFIG_NETXEN_NIC is not set 728# CONFIG_NETXEN_NIC is not set
698# CONFIG_NIU is not set 729# CONFIG_NIU is not set
@@ -702,6 +733,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
702# CONFIG_BNX2X is not set 733# CONFIG_BNX2X is not set
703# CONFIG_QLGE is not set 734# CONFIG_QLGE is not set
704# CONFIG_SFC is not set 735# CONFIG_SFC is not set
736# CONFIG_BE2NET is not set
705# CONFIG_TR is not set 737# CONFIG_TR is not set
706 738
707# 739#
@@ -709,7 +741,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
709# 741#
710# CONFIG_WLAN_PRE80211 is not set 742# CONFIG_WLAN_PRE80211 is not set
711# CONFIG_WLAN_80211 is not set 743# CONFIG_WLAN_80211 is not set
712# CONFIG_IWLWIFI_LEDS is not set
713 744
714# 745#
715# Enable WiMAX (Networking options) to see the WiMAX drivers 746# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -875,12 +906,9 @@ CONFIG_I2C_MPC=y
875# Miscellaneous I2C Chip support 906# Miscellaneous I2C Chip support
876# 907#
877# CONFIG_DS1682 is not set 908# CONFIG_DS1682 is not set
878# CONFIG_EEPROM_AT24 is not set
879CONFIG_EEPROM_LEGACY=y
880# CONFIG_SENSORS_PCF8574 is not set 909# CONFIG_SENSORS_PCF8574 is not set
881# CONFIG_PCF8575 is not set 910# CONFIG_PCF8575 is not set
882# CONFIG_SENSORS_PCA9539 is not set 911# CONFIG_SENSORS_PCA9539 is not set
883# CONFIG_SENSORS_PCF8591 is not set
884# CONFIG_SENSORS_MAX6875 is not set 912# CONFIG_SENSORS_MAX6875 is not set
885# CONFIG_SENSORS_TSL2550 is not set 913# CONFIG_SENSORS_TSL2550 is not set
886# CONFIG_I2C_DEBUG_CORE is not set 914# CONFIG_I2C_DEBUG_CORE is not set
@@ -933,7 +961,7 @@ CONFIG_VIDEO_MEDIA=m
933# 961#
934# CONFIG_MEDIA_ATTACH is not set 962# CONFIG_MEDIA_ATTACH is not set
935CONFIG_MEDIA_TUNER=m 963CONFIG_MEDIA_TUNER=m
936# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set 964# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
937CONFIG_MEDIA_TUNER_SIMPLE=m 965CONFIG_MEDIA_TUNER_SIMPLE=m
938CONFIG_MEDIA_TUNER_TDA8290=m 966CONFIG_MEDIA_TUNER_TDA8290=m
939CONFIG_MEDIA_TUNER_TDA9887=m 967CONFIG_MEDIA_TUNER_TDA9887=m
@@ -942,6 +970,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
942CONFIG_MEDIA_TUNER_MT20XX=m 970CONFIG_MEDIA_TUNER_MT20XX=m
943CONFIG_MEDIA_TUNER_XC2028=m 971CONFIG_MEDIA_TUNER_XC2028=m
944CONFIG_MEDIA_TUNER_XC5000=m 972CONFIG_MEDIA_TUNER_XC5000=m
973CONFIG_MEDIA_TUNER_MC44S803=m
945# CONFIG_DVB_DYNAMIC_MINORS is not set 974# CONFIG_DVB_DYNAMIC_MINORS is not set
946CONFIG_DVB_CAPTURE_DRIVERS=y 975CONFIG_DVB_CAPTURE_DRIVERS=y
947 976
@@ -981,103 +1010,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
981# 1010#
982# Supported DVB Frontends 1011# Supported DVB Frontends
983# 1012#
984
985#
986# Customise DVB Frontends
987#
988# CONFIG_DVB_FE_CUSTOMISE is not set 1013# CONFIG_DVB_FE_CUSTOMISE is not set
989
990#
991# Multistandard (satellite) frontends
992#
993# CONFIG_DVB_STB0899 is not set
994# CONFIG_DVB_STB6100 is not set
995
996#
997# DVB-S (satellite) frontends
998#
999# CONFIG_DVB_CX24110 is not set
1000# CONFIG_DVB_CX24123 is not set
1001# CONFIG_DVB_MT312 is not set
1002# CONFIG_DVB_S5H1420 is not set
1003# CONFIG_DVB_STV0288 is not set
1004# CONFIG_DVB_STB6000 is not set
1005# CONFIG_DVB_STV0299 is not set
1006# CONFIG_DVB_TDA8083 is not set
1007# CONFIG_DVB_TDA10086 is not set
1008# CONFIG_DVB_TDA8261 is not set
1009# CONFIG_DVB_VES1X93 is not set
1010# CONFIG_DVB_TUNER_ITD1000 is not set
1011# CONFIG_DVB_TUNER_CX24113 is not set
1012# CONFIG_DVB_TDA826X is not set
1013# CONFIG_DVB_TUA6100 is not set
1014# CONFIG_DVB_CX24116 is not set
1015# CONFIG_DVB_SI21XX is not set
1016
1017#
1018# DVB-T (terrestrial) frontends
1019#
1020# CONFIG_DVB_SP8870 is not set
1021# CONFIG_DVB_SP887X is not set
1022# CONFIG_DVB_CX22700 is not set
1023# CONFIG_DVB_CX22702 is not set
1024# CONFIG_DVB_DRX397XD is not set
1025# CONFIG_DVB_L64781 is not set
1026# CONFIG_DVB_TDA1004X is not set
1027# CONFIG_DVB_NXT6000 is not set
1028# CONFIG_DVB_MT352 is not set
1029# CONFIG_DVB_ZL10353 is not set
1030# CONFIG_DVB_DIB3000MB is not set
1031# CONFIG_DVB_DIB3000MC is not set
1032# CONFIG_DVB_DIB7000M is not set
1033# CONFIG_DVB_DIB7000P is not set
1034# CONFIG_DVB_TDA10048 is not set
1035
1036#
1037# DVB-C (cable) frontends
1038#
1039# CONFIG_DVB_VES1820 is not set
1040# CONFIG_DVB_TDA10021 is not set
1041# CONFIG_DVB_TDA10023 is not set
1042# CONFIG_DVB_STV0297 is not set
1043
1044#
1045# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
1046#
1047# CONFIG_DVB_NXT200X is not set
1048# CONFIG_DVB_OR51211 is not set
1049# CONFIG_DVB_OR51132 is not set
1050# CONFIG_DVB_BCM3510 is not set
1051# CONFIG_DVB_LGDT330X is not set
1052# CONFIG_DVB_LGDT3304 is not set
1053# CONFIG_DVB_S5H1409 is not set
1054# CONFIG_DVB_AU8522 is not set
1055# CONFIG_DVB_S5H1411 is not set
1056
1057#
1058# ISDB-T (terrestrial) frontends
1059#
1060# CONFIG_DVB_S921 is not set
1061
1062#
1063# Digital terrestrial only tuners/PLL
1064#
1065# CONFIG_DVB_PLL is not set
1066# CONFIG_DVB_TUNER_DIB0070 is not set
1067
1068#
1069# SEC control devices for DVB-S
1070#
1071# CONFIG_DVB_LNBP21 is not set
1072# CONFIG_DVB_ISL6405 is not set
1073# CONFIG_DVB_ISL6421 is not set
1074# CONFIG_DVB_LGS8GL5 is not set
1075
1076#
1077# Tools to develop new frontends
1078#
1079# CONFIG_DVB_DUMMY_FE is not set
1080# CONFIG_DVB_AF9013 is not set
1081CONFIG_DAB=y 1014CONFIG_DAB=y
1082# CONFIG_USB_DABUSB is not set 1015# CONFIG_USB_DABUSB is not set
1083 1016
@@ -1157,6 +1090,8 @@ CONFIG_SND_PCI=y
1157# CONFIG_SND_INDIGO is not set 1090# CONFIG_SND_INDIGO is not set
1158# CONFIG_SND_INDIGOIO is not set 1091# CONFIG_SND_INDIGOIO is not set
1159# CONFIG_SND_INDIGODJ is not set 1092# CONFIG_SND_INDIGODJ is not set
1093# CONFIG_SND_INDIGOIOX is not set
1094# CONFIG_SND_INDIGODJX is not set
1160# CONFIG_SND_EMU10K1 is not set 1095# CONFIG_SND_EMU10K1 is not set
1161# CONFIG_SND_EMU10K1X is not set 1096# CONFIG_SND_EMU10K1X is not set
1162# CONFIG_SND_ENS1370 is not set 1097# CONFIG_SND_ENS1370 is not set
@@ -1211,15 +1146,17 @@ CONFIG_USB_HID=y
1211# 1146#
1212# Special HID drivers 1147# Special HID drivers
1213# 1148#
1214CONFIG_HID_COMPAT=y
1215CONFIG_HID_A4TECH=y 1149CONFIG_HID_A4TECH=y
1216CONFIG_HID_APPLE=y 1150CONFIG_HID_APPLE=y
1217CONFIG_HID_BELKIN=y 1151CONFIG_HID_BELKIN=y
1218CONFIG_HID_CHERRY=y 1152CONFIG_HID_CHERRY=y
1219CONFIG_HID_CHICONY=y 1153CONFIG_HID_CHICONY=y
1220CONFIG_HID_CYPRESS=y 1154CONFIG_HID_CYPRESS=y
1155# CONFIG_DRAGONRISE_FF is not set
1221CONFIG_HID_EZKEY=y 1156CONFIG_HID_EZKEY=y
1157# CONFIG_HID_KYE is not set
1222CONFIG_HID_GYRATION=y 1158CONFIG_HID_GYRATION=y
1159# CONFIG_HID_KENSINGTON is not set
1223CONFIG_HID_LOGITECH=y 1160CONFIG_HID_LOGITECH=y
1224# CONFIG_LOGITECH_FF is not set 1161# CONFIG_LOGITECH_FF is not set
1225# CONFIG_LOGIRUMBLEPAD2_FF is not set 1162# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1292,11 +1229,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1292# CONFIG_USB_TMC is not set 1229# CONFIG_USB_TMC is not set
1293 1230
1294# 1231#
1295# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1232# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1296# 1233#
1297 1234
1298# 1235#
1299# see USB_STORAGE Help for more information 1236# also be needed; see USB_STORAGE Help for more info
1300# 1237#
1301CONFIG_USB_STORAGE=y 1238CONFIG_USB_STORAGE=y
1302# CONFIG_USB_STORAGE_DEBUG is not set 1239# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1338,7 +1275,6 @@ CONFIG_USB_STORAGE=y
1338# CONFIG_USB_LED is not set 1275# CONFIG_USB_LED is not set
1339# CONFIG_USB_CYPRESS_CY7C63 is not set 1276# CONFIG_USB_CYPRESS_CY7C63 is not set
1340# CONFIG_USB_CYTHERM is not set 1277# CONFIG_USB_CYTHERM is not set
1341# CONFIG_USB_PHIDGET is not set
1342# CONFIG_USB_IDMOUSE is not set 1278# CONFIG_USB_IDMOUSE is not set
1343# CONFIG_USB_FTDI_ELAN is not set 1279# CONFIG_USB_FTDI_ELAN is not set
1344# CONFIG_USB_APPLEDISPLAY is not set 1280# CONFIG_USB_APPLEDISPLAY is not set
@@ -1354,6 +1290,7 @@ CONFIG_USB_STORAGE=y
1354# 1290#
1355# OTG and related infrastructure 1291# OTG and related infrastructure
1356# 1292#
1293# CONFIG_NOP_USB_XCEIV is not set
1357# CONFIG_UWB is not set 1294# CONFIG_UWB is not set
1358# CONFIG_MMC is not set 1295# CONFIG_MMC is not set
1359# CONFIG_MEMSTICK is not set 1296# CONFIG_MEMSTICK is not set
@@ -1415,8 +1352,9 @@ CONFIG_RTC_DRV_CMOS=y
1415# 1352#
1416# on-CPU RTC drivers 1353# on-CPU RTC drivers
1417# 1354#
1418# CONFIG_RTC_DRV_PPC is not set 1355# CONFIG_RTC_DRV_GENERIC is not set
1419# CONFIG_DMADEVICES is not set 1356# CONFIG_DMADEVICES is not set
1357# CONFIG_AUXDISPLAY is not set
1420# CONFIG_UIO is not set 1358# CONFIG_UIO is not set
1421# CONFIG_STAGING is not set 1359# CONFIG_STAGING is not set
1422 1360
@@ -1427,6 +1365,7 @@ CONFIG_EXT2_FS=y
1427# CONFIG_EXT2_FS_XATTR is not set 1365# CONFIG_EXT2_FS_XATTR is not set
1428# CONFIG_EXT2_FS_XIP is not set 1366# CONFIG_EXT2_FS_XIP is not set
1429CONFIG_EXT3_FS=y 1367CONFIG_EXT3_FS=y
1368# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1430CONFIG_EXT3_FS_XATTR=y 1369CONFIG_EXT3_FS_XATTR=y
1431# CONFIG_EXT3_FS_POSIX_ACL is not set 1370# CONFIG_EXT3_FS_POSIX_ACL is not set
1432# CONFIG_EXT3_FS_SECURITY is not set 1371# CONFIG_EXT3_FS_SECURITY is not set
@@ -1450,6 +1389,11 @@ CONFIG_INOTIFY_USER=y
1450# CONFIG_FUSE_FS is not set 1389# CONFIG_FUSE_FS is not set
1451 1390
1452# 1391#
1392# Caches
1393#
1394# CONFIG_FSCACHE is not set
1395
1396#
1453# CD-ROM/DVD Filesystems 1397# CD-ROM/DVD Filesystems
1454# 1398#
1455CONFIG_ISO9660_FS=m 1399CONFIG_ISO9660_FS=m
@@ -1504,6 +1448,7 @@ CONFIG_SYSV_FS=m
1504CONFIG_UFS_FS=m 1448CONFIG_UFS_FS=m
1505# CONFIG_UFS_FS_WRITE is not set 1449# CONFIG_UFS_FS_WRITE is not set
1506# CONFIG_UFS_DEBUG is not set 1450# CONFIG_UFS_DEBUG is not set
1451# CONFIG_NILFS2_FS is not set
1507CONFIG_NETWORK_FILESYSTEMS=y 1452CONFIG_NETWORK_FILESYSTEMS=y
1508CONFIG_NFS_FS=y 1453CONFIG_NFS_FS=y
1509CONFIG_NFS_V3=y 1454CONFIG_NFS_V3=y
@@ -1519,7 +1464,6 @@ CONFIG_EXPORTFS=y
1519CONFIG_NFS_COMMON=y 1464CONFIG_NFS_COMMON=y
1520CONFIG_SUNRPC=y 1465CONFIG_SUNRPC=y
1521CONFIG_SUNRPC_GSS=y 1466CONFIG_SUNRPC_GSS=y
1522# CONFIG_SUNRPC_REGISTER_V4 is not set
1523CONFIG_RPCSEC_GSS_KRB5=y 1467CONFIG_RPCSEC_GSS_KRB5=y
1524# CONFIG_RPCSEC_GSS_SPKM3 is not set 1468# CONFIG_RPCSEC_GSS_SPKM3 is not set
1525# CONFIG_SMB_FS is not set 1469# CONFIG_SMB_FS is not set
@@ -1590,6 +1534,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1590# CONFIG_NLS_KOI8_U is not set 1534# CONFIG_NLS_KOI8_U is not set
1591CONFIG_NLS_UTF8=m 1535CONFIG_NLS_UTF8=m
1592# CONFIG_DLM is not set 1536# CONFIG_DLM is not set
1537# CONFIG_BINARY_PRINTF is not set
1593 1538
1594# 1539#
1595# Library routines 1540# Library routines
@@ -1604,11 +1549,12 @@ CONFIG_CRC32=y
1604# CONFIG_CRC7 is not set 1549# CONFIG_CRC7 is not set
1605CONFIG_LIBCRC32C=m 1550CONFIG_LIBCRC32C=m
1606CONFIG_ZLIB_INFLATE=y 1551CONFIG_ZLIB_INFLATE=y
1607CONFIG_PLIST=y 1552CONFIG_DECOMPRESS_GZIP=y
1608CONFIG_HAS_IOMEM=y 1553CONFIG_HAS_IOMEM=y
1609CONFIG_HAS_IOPORT=y 1554CONFIG_HAS_IOPORT=y
1610CONFIG_HAS_DMA=y 1555CONFIG_HAS_DMA=y
1611CONFIG_HAVE_LMB=y 1556CONFIG_HAVE_LMB=y
1557CONFIG_NLATTR=y
1612 1558
1613# 1559#
1614# Kernel hacking 1560# Kernel hacking
@@ -1626,6 +1572,9 @@ CONFIG_DEBUG_KERNEL=y
1626CONFIG_DETECT_SOFTLOCKUP=y 1572CONFIG_DETECT_SOFTLOCKUP=y
1627# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1573# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1628CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1574CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1575CONFIG_DETECT_HUNG_TASK=y
1576# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1577CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1629CONFIG_SCHED_DEBUG=y 1578CONFIG_SCHED_DEBUG=y
1630# CONFIG_SCHEDSTATS is not set 1579# CONFIG_SCHEDSTATS is not set
1631# CONFIG_TIMER_STATS is not set 1580# CONFIG_TIMER_STATS is not set
@@ -1656,9 +1605,12 @@ CONFIG_DEBUG_INFO=y
1656# CONFIG_FAULT_INJECTION is not set 1605# CONFIG_FAULT_INJECTION is not set
1657# CONFIG_LATENCYTOP is not set 1606# CONFIG_LATENCYTOP is not set
1658CONFIG_SYSCTL_SYSCALL_CHECK=y 1607CONFIG_SYSCTL_SYSCALL_CHECK=y
1608# CONFIG_DEBUG_PAGEALLOC is not set
1659CONFIG_HAVE_FUNCTION_TRACER=y 1609CONFIG_HAVE_FUNCTION_TRACER=y
1610CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1660CONFIG_HAVE_DYNAMIC_FTRACE=y 1611CONFIG_HAVE_DYNAMIC_FTRACE=y
1661CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1612CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1613CONFIG_TRACING_SUPPORT=y
1662 1614
1663# 1615#
1664# Tracers 1616# Tracers
@@ -1666,17 +1618,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1666# CONFIG_FUNCTION_TRACER is not set 1618# CONFIG_FUNCTION_TRACER is not set
1667# CONFIG_SCHED_TRACER is not set 1619# CONFIG_SCHED_TRACER is not set
1668# CONFIG_CONTEXT_SWITCH_TRACER is not set 1620# CONFIG_CONTEXT_SWITCH_TRACER is not set
1621# CONFIG_EVENT_TRACER is not set
1669# CONFIG_BOOT_TRACER is not set 1622# CONFIG_BOOT_TRACER is not set
1670# CONFIG_TRACE_BRANCH_PROFILING is not set 1623# CONFIG_TRACE_BRANCH_PROFILING is not set
1671# CONFIG_STACK_TRACER is not set 1624# CONFIG_STACK_TRACER is not set
1672# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1625# CONFIG_KMEMTRACE is not set
1626# CONFIG_WORKQUEUE_TRACER is not set
1627# CONFIG_BLK_DEV_IO_TRACE is not set
1673# CONFIG_SAMPLES is not set 1628# CONFIG_SAMPLES is not set
1674CONFIG_HAVE_ARCH_KGDB=y 1629CONFIG_HAVE_ARCH_KGDB=y
1675# CONFIG_KGDB is not set 1630# CONFIG_KGDB is not set
1676CONFIG_PRINT_STACK_DEPTH=64 1631CONFIG_PRINT_STACK_DEPTH=64
1677# CONFIG_DEBUG_STACKOVERFLOW is not set 1632# CONFIG_DEBUG_STACKOVERFLOW is not set
1678# CONFIG_DEBUG_STACK_USAGE is not set 1633# CONFIG_DEBUG_STACK_USAGE is not set
1679# CONFIG_DEBUG_PAGEALLOC is not set
1680# CONFIG_CODE_PATCHING_SELFTEST is not set 1634# CONFIG_CODE_PATCHING_SELFTEST is not set
1681# CONFIG_FTR_FIXUP_SELFTEST is not set 1635# CONFIG_FTR_FIXUP_SELFTEST is not set
1682# CONFIG_MSI_BITMAP_SELFTEST is not set 1636# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1707,10 +1661,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1707CONFIG_CRYPTO_HASH=y 1661CONFIG_CRYPTO_HASH=y
1708CONFIG_CRYPTO_HASH2=y 1662CONFIG_CRYPTO_HASH2=y
1709CONFIG_CRYPTO_RNG2=y 1663CONFIG_CRYPTO_RNG2=y
1664CONFIG_CRYPTO_PCOMP=y
1710CONFIG_CRYPTO_MANAGER=y 1665CONFIG_CRYPTO_MANAGER=y
1711CONFIG_CRYPTO_MANAGER2=y 1666CONFIG_CRYPTO_MANAGER2=y
1712# CONFIG_CRYPTO_GF128MUL is not set 1667# CONFIG_CRYPTO_GF128MUL is not set
1713# CONFIG_CRYPTO_NULL is not set 1668# CONFIG_CRYPTO_NULL is not set
1669CONFIG_CRYPTO_WORKQUEUE=y
1714# CONFIG_CRYPTO_CRYPTD is not set 1670# CONFIG_CRYPTO_CRYPTD is not set
1715# CONFIG_CRYPTO_AUTHENC is not set 1671# CONFIG_CRYPTO_AUTHENC is not set
1716# CONFIG_CRYPTO_TEST is not set 1672# CONFIG_CRYPTO_TEST is not set
@@ -1779,6 +1735,7 @@ CONFIG_CRYPTO_DES=y
1779# Compression 1735# Compression
1780# 1736#
1781# CONFIG_CRYPTO_DEFLATE is not set 1737# CONFIG_CRYPTO_DEFLATE is not set
1738# CONFIG_CRYPTO_ZLIB is not set
1782# CONFIG_CRYPTO_LZO is not set 1739# CONFIG_CRYPTO_LZO is not set
1783 1740
1784# 1741#
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig
index 04797e730c5a..c30a0c715873 100644
--- a/arch/powerpc/configs/86xx/sbc8641d_defconfig
+++ b/arch/powerpc/configs/86xx/sbc8641d_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:23 2009 4# Wed May 13 17:22:27 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -57,6 +58,7 @@ CONFIG_GENERIC_BUG=y
57CONFIG_DEFAULT_UIMAGE=y 58CONFIG_DEFAULT_UIMAGE=y
58# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
61 63
62# 64#
@@ -71,10 +73,20 @@ CONFIG_SWAP=y
71CONFIG_SYSVIPC=y 73CONFIG_SYSVIPC=y
72CONFIG_SYSVIPC_SYSCTL=y 74CONFIG_SYSVIPC_SYSCTL=y
73CONFIG_POSIX_MQUEUE=y 75CONFIG_POSIX_MQUEUE=y
76CONFIG_POSIX_MQUEUE_SYSCTL=y
74CONFIG_BSD_PROCESS_ACCT=y 77CONFIG_BSD_PROCESS_ACCT=y
75CONFIG_BSD_PROCESS_ACCT_V3=y 78CONFIG_BSD_PROCESS_ACCT_V3=y
76# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
78CONFIG_IKCONFIG=y 90CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 91CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 92CONFIG_LOG_BUF_SHIFT=14
@@ -90,21 +102,24 @@ CONFIG_RELAY=y
90# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 104CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 108# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
110CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 111CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 112CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 113CONFIG_KALLSYMS=y
98# CONFIG_KALLSYMS_ALL is not set 114# CONFIG_KALLSYMS_ALL is not set
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 115# CONFIG_KALLSYMS_EXTRA_PASS is not set
116# CONFIG_STRIP_ASM_SYMS is not set
100CONFIG_HOTPLUG=y 117CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 118CONFIG_PRINTK=y
102CONFIG_BUG=y 119CONFIG_BUG=y
103CONFIG_ELF_CORE=y 120CONFIG_ELF_CORE=y
104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y 121CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 122CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 123CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 124CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 125CONFIG_TIMERFD=y
@@ -113,10 +128,12 @@ CONFIG_SHMEM=y
113CONFIG_AIO=y 128CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 129CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y 130CONFIG_PCI_QUIRKS=y
131CONFIG_COMPAT_BRK=y
116CONFIG_SLAB=y 132CONFIG_SLAB=y
117# CONFIG_SLUB is not set 133# CONFIG_SLUB is not set
118# CONFIG_SLOB is not set 134# CONFIG_SLOB is not set
119# CONFIG_PROFILING is not set 135# CONFIG_PROFILING is not set
136# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 137CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 138# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 139CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -125,6 +142,7 @@ CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 142CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 143CONFIG_HAVE_ARCH_TRACEHOOK=y
127CONFIG_USE_GENERIC_SMP_HELPERS=y 144CONFIG_USE_GENERIC_SMP_HELPERS=y
145# CONFIG_SLOW_WORK is not set
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 147CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 148CONFIG_RT_MUTEXES=y
@@ -138,7 +156,6 @@ CONFIG_MODULE_UNLOAD=y
138CONFIG_STOP_MACHINE=y 156CONFIG_STOP_MACHINE=y
139CONFIG_BLOCK=y 157CONFIG_BLOCK=y
140# CONFIG_LBD is not set 158# CONFIG_LBD is not set
141# CONFIG_BLK_DEV_IO_TRACE is not set
142# CONFIG_BLK_DEV_BSG is not set 159# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 160# CONFIG_BLK_DEV_INTEGRITY is not set
144 161
@@ -154,18 +171,11 @@ CONFIG_IOSCHED_CFQ=y
154CONFIG_DEFAULT_CFQ=y 171CONFIG_DEFAULT_CFQ=y
155# CONFIG_DEFAULT_NOOP is not set 172# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="cfq" 173CONFIG_DEFAULT_IOSCHED="cfq"
157CONFIG_CLASSIC_RCU=y
158# CONFIG_TREE_RCU is not set
159# CONFIG_PREEMPT_RCU is not set
160# CONFIG_TREE_RCU_TRACE is not set
161# CONFIG_PREEMPT_RCU_TRACE is not set
162# CONFIG_FREEZER is not set 174# CONFIG_FREEZER is not set
163 175
164# 176#
165# Platform support 177# Platform support
166# 178#
167CONFIG_PPC_MULTIPLATFORM=y
168CONFIG_CLASSIC32=y
169# CONFIG_PPC_CHRP is not set 179# CONFIG_PPC_CHRP is not set
170# CONFIG_MPC5121_ADS is not set 180# CONFIG_MPC5121_ADS is not set
171# CONFIG_MPC5121_GENERIC is not set 181# CONFIG_MPC5121_GENERIC is not set
@@ -180,8 +190,11 @@ CONFIG_PPC_86xx=y
180# CONFIG_MPC8641_HPCN is not set 190# CONFIG_MPC8641_HPCN is not set
181CONFIG_SBC8641D=y 191CONFIG_SBC8641D=y
182# CONFIG_MPC8610_HPCD is not set 192# CONFIG_MPC8610_HPCD is not set
193# CONFIG_GEF_PPC9A is not set
194# CONFIG_GEF_SBC310 is not set
183# CONFIG_GEF_SBC610 is not set 195# CONFIG_GEF_SBC610 is not set
184CONFIG_MPC8641=y 196CONFIG_MPC8641=y
197CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
185# CONFIG_IPIC is not set 198# CONFIG_IPIC is not set
186CONFIG_MPIC=y 199CONFIG_MPIC=y
187# CONFIG_MPIC_WEIRD is not set 200# CONFIG_MPIC_WEIRD is not set
@@ -243,9 +256,12 @@ CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 257CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 258CONFIG_UNEVICTABLE_LRU=y
259CONFIG_HAVE_MLOCK=y
260CONFIG_HAVE_MLOCKED_PAGE_BIT=y
246CONFIG_PPC_4K_PAGES=y 261CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set 262# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set 263# CONFIG_PPC_64K_PAGES is not set
264# CONFIG_PPC_256K_PAGES is not set
249CONFIG_FORCE_MAX_ZONEORDER=11 265CONFIG_FORCE_MAX_ZONEORDER=11
250# CONFIG_PROC_DEVICETREE is not set 266# CONFIG_PROC_DEVICETREE is not set
251# CONFIG_CMDLINE_BOOL is not set 267# CONFIG_CMDLINE_BOOL is not set
@@ -274,6 +290,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_LEGACY is not set 290# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_DEBUG is not set 291# CONFIG_PCI_DEBUG is not set
276# CONFIG_PCI_STUB is not set 292# CONFIG_PCI_STUB is not set
293# CONFIG_PCI_IOV is not set
277# CONFIG_PCCARD is not set 294# CONFIG_PCCARD is not set
278# CONFIG_HOTPLUG_PCI is not set 295# CONFIG_HOTPLUG_PCI is not set
279# CONFIG_HAS_RAPIDIO is not set 296# CONFIG_HAS_RAPIDIO is not set
@@ -296,7 +313,6 @@ CONFIG_NET=y
296# 313#
297# Networking options 314# Networking options
298# 315#
299CONFIG_COMPAT_NET_DEV_OPS=y
300CONFIG_PACKET=y 316CONFIG_PACKET=y
301CONFIG_PACKET_MMAP=y 317CONFIG_PACKET_MMAP=y
302CONFIG_UNIX=y 318CONFIG_UNIX=y
@@ -376,9 +392,11 @@ CONFIG_BRIDGE_NETFILTER=y
376# CONFIG_NETFILTER_NETLINK_QUEUE is not set 392# CONFIG_NETFILTER_NETLINK_QUEUE is not set
377# CONFIG_NETFILTER_NETLINK_LOG is not set 393# CONFIG_NETFILTER_NETLINK_LOG is not set
378# CONFIG_NF_CONNTRACK is not set 394# CONFIG_NF_CONNTRACK is not set
395# CONFIG_NETFILTER_TPROXY is not set
379CONFIG_NETFILTER_XTABLES=m 396CONFIG_NETFILTER_XTABLES=m
380# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 397# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
381# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 398# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
399# CONFIG_NETFILTER_XT_TARGET_HL is not set
382# CONFIG_NETFILTER_XT_TARGET_MARK is not set 400# CONFIG_NETFILTER_XT_TARGET_MARK is not set
383# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 401# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
384# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 402# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
@@ -391,6 +409,7 @@ CONFIG_NETFILTER_XTABLES=m
391# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 409# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
392# CONFIG_NETFILTER_XT_MATCH_ESP is not set 410# CONFIG_NETFILTER_XT_MATCH_ESP is not set
393# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 411# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
412CONFIG_NETFILTER_XT_MATCH_HL=m
394# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 413# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
395# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 414# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
396# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 415# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -449,11 +468,11 @@ CONFIG_IP6_NF_MATCH_HL=m
449CONFIG_IP6_NF_MATCH_IPV6HEADER=m 468CONFIG_IP6_NF_MATCH_IPV6HEADER=m
450# CONFIG_IP6_NF_MATCH_MH is not set 469# CONFIG_IP6_NF_MATCH_MH is not set
451CONFIG_IP6_NF_MATCH_RT=m 470CONFIG_IP6_NF_MATCH_RT=m
471# CONFIG_IP6_NF_TARGET_HL is not set
452CONFIG_IP6_NF_TARGET_LOG=m 472CONFIG_IP6_NF_TARGET_LOG=m
453CONFIG_IP6_NF_FILTER=m 473CONFIG_IP6_NF_FILTER=m
454# CONFIG_IP6_NF_TARGET_REJECT is not set 474# CONFIG_IP6_NF_TARGET_REJECT is not set
455CONFIG_IP6_NF_MANGLE=m 475CONFIG_IP6_NF_MANGLE=m
456# CONFIG_IP6_NF_TARGET_HL is not set
457CONFIG_IP6_NF_RAW=m 476CONFIG_IP6_NF_RAW=m
458# CONFIG_IP6_NF_SECURITY is not set 477# CONFIG_IP6_NF_SECURITY is not set
459# CONFIG_BRIDGE_NF_EBTABLES is not set 478# CONFIG_BRIDGE_NF_EBTABLES is not set
@@ -488,6 +507,7 @@ CONFIG_LLC=m
488# CONFIG_LAPB is not set 507# CONFIG_LAPB is not set
489# CONFIG_ECONET is not set 508# CONFIG_ECONET is not set
490CONFIG_WAN_ROUTER=m 509CONFIG_WAN_ROUTER=m
510# CONFIG_PHONET is not set
491CONFIG_NET_SCHED=y 511CONFIG_NET_SCHED=y
492 512
493# 513#
@@ -538,7 +558,6 @@ CONFIG_NET_PKTGEN=m
538# CONFIG_IRDA is not set 558# CONFIG_IRDA is not set
539# CONFIG_BT is not set 559# CONFIG_BT is not set
540# CONFIG_AF_RXRPC is not set 560# CONFIG_AF_RXRPC is not set
541# CONFIG_PHONET is not set
542CONFIG_FIB_RULES=y 561CONFIG_FIB_RULES=y
543CONFIG_WIRELESS=y 562CONFIG_WIRELESS=y
544# CONFIG_CFG80211 is not set 563# CONFIG_CFG80211 is not set
@@ -649,7 +668,6 @@ CONFIG_MTD_PHYSMAP_OF=y
649# LPDDR flash memory drivers 668# LPDDR flash memory drivers
650# 669#
651# CONFIG_MTD_LPDDR is not set 670# CONFIG_MTD_LPDDR is not set
652# CONFIG_MTD_QINFO_PROBE is not set
653 671
654# 672#
655# UBI - Unsorted block images 673# UBI - Unsorted block images
@@ -678,13 +696,20 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
678# CONFIG_BLK_DEV_HD is not set 696# CONFIG_BLK_DEV_HD is not set
679CONFIG_MISC_DEVICES=y 697CONFIG_MISC_DEVICES=y
680# CONFIG_PHANTOM is not set 698# CONFIG_PHANTOM is not set
681# CONFIG_EEPROM_93CX6 is not set
682# CONFIG_SGI_IOC4 is not set 699# CONFIG_SGI_IOC4 is not set
683# CONFIG_TIFM_CORE is not set 700# CONFIG_TIFM_CORE is not set
684# CONFIG_ICS932S401 is not set 701# CONFIG_ICS932S401 is not set
685# CONFIG_ENCLOSURE_SERVICES is not set 702# CONFIG_ENCLOSURE_SERVICES is not set
686# CONFIG_HP_ILO is not set 703# CONFIG_HP_ILO is not set
704# CONFIG_ISL29003 is not set
687# CONFIG_C2PORT is not set 705# CONFIG_C2PORT is not set
706
707#
708# EEPROM support
709#
710# CONFIG_EEPROM_AT24 is not set
711# CONFIG_EEPROM_LEGACY is not set
712# CONFIG_EEPROM_93CX6 is not set
688CONFIG_HAVE_IDE=y 713CONFIG_HAVE_IDE=y
689# CONFIG_IDE is not set 714# CONFIG_IDE is not set
690 715
@@ -729,6 +754,7 @@ CONFIG_DM_ZERO=y
729# CONFIG_I2O is not set 754# CONFIG_I2O is not set
730# CONFIG_MACINTOSH_DRIVERS is not set 755# CONFIG_MACINTOSH_DRIVERS is not set
731CONFIG_NETDEVICES=y 756CONFIG_NETDEVICES=y
757CONFIG_COMPAT_NET_DEV_OPS=y
732CONFIG_DUMMY=m 758CONFIG_DUMMY=m
733CONFIG_BONDING=m 759CONFIG_BONDING=m
734# CONFIG_MACVLAN is not set 760# CONFIG_MACVLAN is not set
@@ -762,6 +788,8 @@ CONFIG_MII=y
762# CONFIG_SUNGEM is not set 788# CONFIG_SUNGEM is not set
763# CONFIG_CASSINI is not set 789# CONFIG_CASSINI is not set
764# CONFIG_NET_VENDOR_3COM is not set 790# CONFIG_NET_VENDOR_3COM is not set
791# CONFIG_ETHOC is not set
792# CONFIG_DNET is not set
765# CONFIG_NET_TULIP is not set 793# CONFIG_NET_TULIP is not set
766# CONFIG_HP100 is not set 794# CONFIG_HP100 is not set
767# CONFIG_IBM_NEW_EMAC_ZMII is not set 795# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -781,6 +809,7 @@ CONFIG_NETDEV_1000=y
781# CONFIG_E1000E is not set 809# CONFIG_E1000E is not set
782# CONFIG_IP1000 is not set 810# CONFIG_IP1000 is not set
783# CONFIG_IGB is not set 811# CONFIG_IGB is not set
812# CONFIG_IGBVF is not set
784# CONFIG_NS83820 is not set 813# CONFIG_NS83820 is not set
785# CONFIG_HAMACHI is not set 814# CONFIG_HAMACHI is not set
786# CONFIG_YELLOWFIN is not set 815# CONFIG_YELLOWFIN is not set
@@ -791,11 +820,12 @@ CONFIG_NETDEV_1000=y
791# CONFIG_VIA_VELOCITY is not set 820# CONFIG_VIA_VELOCITY is not set
792# CONFIG_TIGON3 is not set 821# CONFIG_TIGON3 is not set
793# CONFIG_BNX2 is not set 822# CONFIG_BNX2 is not set
823CONFIG_FSL_PQ_MDIO=y
794CONFIG_GIANFAR=y 824CONFIG_GIANFAR=y
795# CONFIG_MV643XX_ETH is not set
796# CONFIG_QLA3XXX is not set 825# CONFIG_QLA3XXX is not set
797# CONFIG_ATL1 is not set 826# CONFIG_ATL1 is not set
798# CONFIG_ATL1E is not set 827# CONFIG_ATL1E is not set
828# CONFIG_ATL1C is not set
799# CONFIG_JME is not set 829# CONFIG_JME is not set
800# CONFIG_NETDEV_10000 is not set 830# CONFIG_NETDEV_10000 is not set
801# CONFIG_TR is not set 831# CONFIG_TR is not set
@@ -805,7 +835,6 @@ CONFIG_GIANFAR=y
805# 835#
806# CONFIG_WLAN_PRE80211 is not set 836# CONFIG_WLAN_PRE80211 is not set
807# CONFIG_WLAN_80211 is not set 837# CONFIG_WLAN_80211 is not set
808# CONFIG_IWLWIFI_LEDS is not set
809 838
810# 839#
811# Enable WiMAX (Networking options) to see the WiMAX drivers 840# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -923,6 +952,7 @@ CONFIG_LEGACY_PTY_COUNT=256
923# CONFIG_HVC_UDBG is not set 952# CONFIG_HVC_UDBG is not set
924# CONFIG_IPMI_HANDLER is not set 953# CONFIG_IPMI_HANDLER is not set
925CONFIG_HW_RANDOM=m 954CONFIG_HW_RANDOM=m
955# CONFIG_HW_RANDOM_TIMERIOMEM is not set
926# CONFIG_NVRAM is not set 956# CONFIG_NVRAM is not set
927# CONFIG_GEN_RTC is not set 957# CONFIG_GEN_RTC is not set
928# CONFIG_R3964 is not set 958# CONFIG_R3964 is not set
@@ -985,12 +1015,9 @@ CONFIG_I2C_MPC=y
985# Miscellaneous I2C Chip support 1015# Miscellaneous I2C Chip support
986# 1016#
987# CONFIG_DS1682 is not set 1017# CONFIG_DS1682 is not set
988# CONFIG_EEPROM_AT24 is not set
989# CONFIG_EEPROM_LEGACY is not set
990# CONFIG_SENSORS_PCF8574 is not set 1018# CONFIG_SENSORS_PCF8574 is not set
991# CONFIG_PCF8575 is not set 1019# CONFIG_PCF8575 is not set
992# CONFIG_SENSORS_PCA9539 is not set 1020# CONFIG_SENSORS_PCA9539 is not set
993# CONFIG_SENSORS_PCF8591 is not set
994# CONFIG_SENSORS_MAX6875 is not set 1021# CONFIG_SENSORS_MAX6875 is not set
995# CONFIG_SENSORS_TSL2550 is not set 1022# CONFIG_SENSORS_TSL2550 is not set
996# CONFIG_I2C_DEBUG_CORE is not set 1023# CONFIG_I2C_DEBUG_CORE is not set
@@ -1022,6 +1049,7 @@ CONFIG_HWMON=y
1022# CONFIG_SENSORS_F71805F is not set 1049# CONFIG_SENSORS_F71805F is not set
1023# CONFIG_SENSORS_F71882FG is not set 1050# CONFIG_SENSORS_F71882FG is not set
1024# CONFIG_SENSORS_F75375S is not set 1051# CONFIG_SENSORS_F75375S is not set
1052# CONFIG_SENSORS_G760A is not set
1025# CONFIG_SENSORS_GL518SM is not set 1053# CONFIG_SENSORS_GL518SM is not set
1026# CONFIG_SENSORS_GL520SM is not set 1054# CONFIG_SENSORS_GL520SM is not set
1027# CONFIG_SENSORS_IT87 is not set 1055# CONFIG_SENSORS_IT87 is not set
@@ -1036,11 +1064,14 @@ CONFIG_HWMON=y
1036# CONFIG_SENSORS_LM90 is not set 1064# CONFIG_SENSORS_LM90 is not set
1037# CONFIG_SENSORS_LM92 is not set 1065# CONFIG_SENSORS_LM92 is not set
1038# CONFIG_SENSORS_LM93 is not set 1066# CONFIG_SENSORS_LM93 is not set
1067# CONFIG_SENSORS_LTC4215 is not set
1039# CONFIG_SENSORS_LTC4245 is not set 1068# CONFIG_SENSORS_LTC4245 is not set
1069# CONFIG_SENSORS_LM95241 is not set
1040# CONFIG_SENSORS_MAX1619 is not set 1070# CONFIG_SENSORS_MAX1619 is not set
1041# CONFIG_SENSORS_MAX6650 is not set 1071# CONFIG_SENSORS_MAX6650 is not set
1042# CONFIG_SENSORS_PC87360 is not set 1072# CONFIG_SENSORS_PC87360 is not set
1043# CONFIG_SENSORS_PC87427 is not set 1073# CONFIG_SENSORS_PC87427 is not set
1074# CONFIG_SENSORS_PCF8591 is not set
1044# CONFIG_SENSORS_SIS5595 is not set 1075# CONFIG_SENSORS_SIS5595 is not set
1045# CONFIG_SENSORS_DME1737 is not set 1076# CONFIG_SENSORS_DME1737 is not set
1046# CONFIG_SENSORS_SMSC47M1 is not set 1077# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1145,7 +1176,6 @@ CONFIG_HID=y
1145# 1176#
1146# Special HID drivers 1177# Special HID drivers
1147# 1178#
1148CONFIG_HID_COMPAT=y
1149CONFIG_USB_SUPPORT=y 1179CONFIG_USB_SUPPORT=y
1150CONFIG_USB_ARCH_HAS_HCD=y 1180CONFIG_USB_ARCH_HAS_HCD=y
1151CONFIG_USB_ARCH_HAS_OHCI=y 1181CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1159,7 +1189,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1159# 1189#
1160 1190
1161# 1191#
1162# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1192# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1163# 1193#
1164# CONFIG_USB_GADGET is not set 1194# CONFIG_USB_GADGET is not set
1165 1195
@@ -1175,6 +1205,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1175# CONFIG_EDAC is not set 1205# CONFIG_EDAC is not set
1176# CONFIG_RTC_CLASS is not set 1206# CONFIG_RTC_CLASS is not set
1177# CONFIG_DMADEVICES is not set 1207# CONFIG_DMADEVICES is not set
1208# CONFIG_AUXDISPLAY is not set
1178# CONFIG_UIO is not set 1209# CONFIG_UIO is not set
1179# CONFIG_STAGING is not set 1210# CONFIG_STAGING is not set
1180 1211
@@ -1187,6 +1218,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y
1187# CONFIG_EXT2_FS_SECURITY is not set 1218# CONFIG_EXT2_FS_SECURITY is not set
1188# CONFIG_EXT2_FS_XIP is not set 1219# CONFIG_EXT2_FS_XIP is not set
1189CONFIG_EXT3_FS=y 1220CONFIG_EXT3_FS=y
1221# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1190CONFIG_EXT3_FS_XATTR=y 1222CONFIG_EXT3_FS_XATTR=y
1191CONFIG_EXT3_FS_POSIX_ACL=y 1223CONFIG_EXT3_FS_POSIX_ACL=y
1192# CONFIG_EXT3_FS_SECURITY is not set 1224# CONFIG_EXT3_FS_SECURITY is not set
@@ -1228,6 +1260,11 @@ CONFIG_AUTOFS4_FS=m
1228# CONFIG_FUSE_FS is not set 1260# CONFIG_FUSE_FS is not set
1229 1261
1230# 1262#
1263# Caches
1264#
1265# CONFIG_FSCACHE is not set
1266
1267#
1231# CD-ROM/DVD Filesystems 1268# CD-ROM/DVD Filesystems
1232# 1269#
1233# CONFIG_ISO9660_FS is not set 1270# CONFIG_ISO9660_FS is not set
@@ -1269,8 +1306,13 @@ CONFIG_MINIX_FS=m
1269# CONFIG_HPFS_FS is not set 1306# CONFIG_HPFS_FS is not set
1270# CONFIG_QNX4FS_FS is not set 1307# CONFIG_QNX4FS_FS is not set
1271CONFIG_ROMFS_FS=m 1308CONFIG_ROMFS_FS=m
1309CONFIG_ROMFS_BACKED_BY_BLOCK=y
1310# CONFIG_ROMFS_BACKED_BY_MTD is not set
1311# CONFIG_ROMFS_BACKED_BY_BOTH is not set
1312CONFIG_ROMFS_ON_BLOCK=y
1272# CONFIG_SYSV_FS is not set 1313# CONFIG_SYSV_FS is not set
1273# CONFIG_UFS_FS is not set 1314# CONFIG_UFS_FS is not set
1315# CONFIG_NILFS2_FS is not set
1274CONFIG_NETWORK_FILESYSTEMS=y 1316CONFIG_NETWORK_FILESYSTEMS=y
1275CONFIG_NFS_FS=y 1317CONFIG_NFS_FS=y
1276CONFIG_NFS_V3=y 1318CONFIG_NFS_V3=y
@@ -1283,7 +1325,6 @@ CONFIG_LOCKD_V4=y
1283CONFIG_NFS_COMMON=y 1325CONFIG_NFS_COMMON=y
1284CONFIG_SUNRPC=y 1326CONFIG_SUNRPC=y
1285CONFIG_SUNRPC_GSS=y 1327CONFIG_SUNRPC_GSS=y
1286# CONFIG_SUNRPC_REGISTER_V4 is not set
1287CONFIG_RPCSEC_GSS_KRB5=y 1328CONFIG_RPCSEC_GSS_KRB5=y
1288# CONFIG_RPCSEC_GSS_SPKM3 is not set 1329# CONFIG_RPCSEC_GSS_SPKM3 is not set
1289CONFIG_SMB_FS=m 1330CONFIG_SMB_FS=m
@@ -1346,6 +1387,7 @@ CONFIG_NLS_KOI8_R=m
1346CONFIG_NLS_KOI8_U=m 1387CONFIG_NLS_KOI8_U=m
1347CONFIG_NLS_UTF8=m 1388CONFIG_NLS_UTF8=m
1348# CONFIG_DLM is not set 1389# CONFIG_DLM is not set
1390# CONFIG_BINARY_PRINTF is not set
1349 1391
1350# 1392#
1351# Library routines 1393# Library routines
@@ -1359,13 +1401,14 @@ CONFIG_CRC_CCITT=m
1359CONFIG_CRC32=y 1401CONFIG_CRC32=y
1360# CONFIG_CRC7 is not set 1402# CONFIG_CRC7 is not set
1361CONFIG_LIBCRC32C=m 1403CONFIG_LIBCRC32C=m
1362CONFIG_ZLIB_INFLATE=m 1404CONFIG_ZLIB_INFLATE=y
1363CONFIG_ZLIB_DEFLATE=m 1405CONFIG_ZLIB_DEFLATE=m
1364CONFIG_PLIST=y 1406CONFIG_DECOMPRESS_GZIP=y
1365CONFIG_HAS_IOMEM=y 1407CONFIG_HAS_IOMEM=y
1366CONFIG_HAS_IOPORT=y 1408CONFIG_HAS_IOPORT=y
1367CONFIG_HAS_DMA=y 1409CONFIG_HAS_DMA=y
1368CONFIG_HAVE_LMB=y 1410CONFIG_HAVE_LMB=y
1411CONFIG_NLATTR=y
1369 1412
1370# 1413#
1371# Kernel hacking 1414# Kernel hacking
@@ -1383,6 +1426,9 @@ CONFIG_DEBUG_KERNEL=y
1383CONFIG_DETECT_SOFTLOCKUP=y 1426CONFIG_DETECT_SOFTLOCKUP=y
1384# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1427# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1385CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1428CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1429CONFIG_DETECT_HUNG_TASK=y
1430# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1431CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1386CONFIG_SCHED_DEBUG=y 1432CONFIG_SCHED_DEBUG=y
1387# CONFIG_SCHEDSTATS is not set 1433# CONFIG_SCHEDSTATS is not set
1388# CONFIG_TIMER_STATS is not set 1434# CONFIG_TIMER_STATS is not set
@@ -1411,9 +1457,12 @@ CONFIG_DEBUG_INFO=y
1411# CONFIG_FAULT_INJECTION is not set 1457# CONFIG_FAULT_INJECTION is not set
1412# CONFIG_LATENCYTOP is not set 1458# CONFIG_LATENCYTOP is not set
1413CONFIG_SYSCTL_SYSCALL_CHECK=y 1459CONFIG_SYSCTL_SYSCALL_CHECK=y
1460# CONFIG_DEBUG_PAGEALLOC is not set
1414CONFIG_HAVE_FUNCTION_TRACER=y 1461CONFIG_HAVE_FUNCTION_TRACER=y
1462CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1415CONFIG_HAVE_DYNAMIC_FTRACE=y 1463CONFIG_HAVE_DYNAMIC_FTRACE=y
1416CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1464CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1465CONFIG_TRACING_SUPPORT=y
1417 1466
1418# 1467#
1419# Tracers 1468# Tracers
@@ -1422,17 +1471,20 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1422# CONFIG_PREEMPT_TRACER is not set 1471# CONFIG_PREEMPT_TRACER is not set
1423# CONFIG_SCHED_TRACER is not set 1472# CONFIG_SCHED_TRACER is not set
1424# CONFIG_CONTEXT_SWITCH_TRACER is not set 1473# CONFIG_CONTEXT_SWITCH_TRACER is not set
1474# CONFIG_EVENT_TRACER is not set
1425# CONFIG_BOOT_TRACER is not set 1475# CONFIG_BOOT_TRACER is not set
1426# CONFIG_TRACE_BRANCH_PROFILING is not set 1476# CONFIG_TRACE_BRANCH_PROFILING is not set
1427# CONFIG_STACK_TRACER is not set 1477# CONFIG_STACK_TRACER is not set
1428# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1478# CONFIG_KMEMTRACE is not set
1479# CONFIG_WORKQUEUE_TRACER is not set
1480# CONFIG_BLK_DEV_IO_TRACE is not set
1481# CONFIG_DYNAMIC_DEBUG is not set
1429# CONFIG_SAMPLES is not set 1482# CONFIG_SAMPLES is not set
1430CONFIG_HAVE_ARCH_KGDB=y 1483CONFIG_HAVE_ARCH_KGDB=y
1431# CONFIG_KGDB is not set 1484# CONFIG_KGDB is not set
1432CONFIG_PRINT_STACK_DEPTH=64 1485CONFIG_PRINT_STACK_DEPTH=64
1433# CONFIG_DEBUG_STACKOVERFLOW is not set 1486# CONFIG_DEBUG_STACKOVERFLOW is not set
1434# CONFIG_DEBUG_STACK_USAGE is not set 1487# CONFIG_DEBUG_STACK_USAGE is not set
1435# CONFIG_DEBUG_PAGEALLOC is not set
1436# CONFIG_CODE_PATCHING_SELFTEST is not set 1488# CONFIG_CODE_PATCHING_SELFTEST is not set
1437# CONFIG_FTR_FIXUP_SELFTEST is not set 1489# CONFIG_FTR_FIXUP_SELFTEST is not set
1438# CONFIG_MSI_BITMAP_SELFTEST is not set 1490# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1454,6 +1506,7 @@ CONFIG_SECURITY_NETWORK=y
1454# CONFIG_SECURITY_PATH is not set 1506# CONFIG_SECURITY_PATH is not set
1455# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1507# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1456CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1508CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1509# CONFIG_SECURITY_TOMOYO is not set
1457CONFIG_CRYPTO=y 1510CONFIG_CRYPTO=y
1458 1511
1459# 1512#
@@ -1469,10 +1522,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1469CONFIG_CRYPTO_HASH=y 1522CONFIG_CRYPTO_HASH=y
1470CONFIG_CRYPTO_HASH2=y 1523CONFIG_CRYPTO_HASH2=y
1471CONFIG_CRYPTO_RNG2=y 1524CONFIG_CRYPTO_RNG2=y
1525CONFIG_CRYPTO_PCOMP=y
1472CONFIG_CRYPTO_MANAGER=y 1526CONFIG_CRYPTO_MANAGER=y
1473CONFIG_CRYPTO_MANAGER2=y 1527CONFIG_CRYPTO_MANAGER2=y
1474# CONFIG_CRYPTO_GF128MUL is not set 1528# CONFIG_CRYPTO_GF128MUL is not set
1475CONFIG_CRYPTO_NULL=m 1529CONFIG_CRYPTO_NULL=m
1530CONFIG_CRYPTO_WORKQUEUE=y
1476# CONFIG_CRYPTO_CRYPTD is not set 1531# CONFIG_CRYPTO_CRYPTD is not set
1477CONFIG_CRYPTO_AUTHENC=m 1532CONFIG_CRYPTO_AUTHENC=m
1478CONFIG_CRYPTO_TEST=m 1533CONFIG_CRYPTO_TEST=m
@@ -1542,6 +1597,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1542# Compression 1597# Compression
1543# 1598#
1544CONFIG_CRYPTO_DEFLATE=m 1599CONFIG_CRYPTO_DEFLATE=m
1600# CONFIG_CRYPTO_ZLIB is not set
1545# CONFIG_CRYPTO_LZO is not set 1601# CONFIG_CRYPTO_LZO is not set
1546 1602
1547# 1603#
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index aaab5cc3751c..74f7f7c6fdc4 100644
--- a/arch/powerpc/configs/adder875_defconfig
+++ b/arch/powerpc/configs/adder875_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:24 2009 4# Wed May 13 17:21:50 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -53,6 +53,7 @@ CONFIG_GENERIC_BUG=y
53CONFIG_REDBOOT=y 53CONFIG_REDBOOT=y
54# CONFIG_PPC_DCR_NATIVE is not set 54# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 55# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
57 58
58# 59#
@@ -70,6 +71,15 @@ CONFIG_SYSVIPC_SYSCTL=y
70# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
71# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
72# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74
75#
76# RCU Subsystem
77#
78CONFIG_CLASSIC_RCU=y
79# CONFIG_TREE_RCU is not set
80# CONFIG_PREEMPT_RCU is not set
81# CONFIG_TREE_RCU_TRACE is not set
82# CONFIG_PREEMPT_RCU_TRACE is not set
73# CONFIG_IKCONFIG is not set 83# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 84CONFIG_LOG_BUF_SHIFT=14
75CONFIG_GROUP_SCHED=y 85CONFIG_GROUP_SCHED=y
@@ -85,19 +95,19 @@ CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_BLK_DEV_INITRD is not set 95# CONFIG_BLK_DEV_INITRD is not set
86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 96# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
87CONFIG_SYSCTL=y 97CONFIG_SYSCTL=y
98CONFIG_ANON_INODES=y
88CONFIG_EMBEDDED=y 99CONFIG_EMBEDDED=y
89# CONFIG_SYSCTL_SYSCALL is not set 100# CONFIG_SYSCTL_SYSCALL is not set
90CONFIG_KALLSYMS=y 101CONFIG_KALLSYMS=y
91# CONFIG_KALLSYMS_ALL is not set 102# CONFIG_KALLSYMS_ALL is not set
92# CONFIG_KALLSYMS_EXTRA_PASS is not set 103# CONFIG_KALLSYMS_EXTRA_PASS is not set
104# CONFIG_STRIP_ASM_SYMS is not set
93CONFIG_HOTPLUG=y 105CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 106CONFIG_PRINTK=y
95CONFIG_BUG=y 107CONFIG_BUG=y
96# CONFIG_ELF_CORE is not set 108# CONFIG_ELF_CORE is not set
97CONFIG_COMPAT_BRK=y
98# CONFIG_BASE_FULL is not set 109# CONFIG_BASE_FULL is not set
99# CONFIG_FUTEX is not set 110# CONFIG_FUTEX is not set
100CONFIG_ANON_INODES=y
101CONFIG_EPOLL=y 111CONFIG_EPOLL=y
102CONFIG_SIGNALFD=y 112CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y 113CONFIG_TIMERFD=y
@@ -106,10 +116,12 @@ CONFIG_SHMEM=y
106CONFIG_AIO=y 116CONFIG_AIO=y
107# CONFIG_VM_EVENT_COUNTERS is not set 117# CONFIG_VM_EVENT_COUNTERS is not set
108CONFIG_SLUB_DEBUG=y 118CONFIG_SLUB_DEBUG=y
119CONFIG_COMPAT_BRK=y
109# CONFIG_SLAB is not set 120# CONFIG_SLAB is not set
110CONFIG_SLUB=y 121CONFIG_SLUB=y
111# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
124# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 125CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
115CONFIG_HAVE_IOREMAP_PROT=y 127CONFIG_HAVE_IOREMAP_PROT=y
@@ -117,13 +129,13 @@ CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 129CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y 130CONFIG_HAVE_ARCH_TRACEHOOK=y
119CONFIG_HAVE_CLK=y 131CONFIG_HAVE_CLK=y
132# CONFIG_SLOW_WORK is not set
120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 134CONFIG_SLABINFO=y
122CONFIG_BASE_SMALL=1 135CONFIG_BASE_SMALL=1
123# CONFIG_MODULES is not set 136# CONFIG_MODULES is not set
124CONFIG_BLOCK=y 137CONFIG_BLOCK=y
125# CONFIG_LBD is not set 138# CONFIG_LBD is not set
126# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
129 141
@@ -139,11 +151,6 @@ CONFIG_DEFAULT_DEADLINE=y
139# CONFIG_DEFAULT_CFQ is not set 151# CONFIG_DEFAULT_CFQ is not set
140# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
141CONFIG_DEFAULT_IOSCHED="deadline" 153CONFIG_DEFAULT_IOSCHED="deadline"
142CONFIG_CLASSIC_RCU=y
143# CONFIG_TREE_RCU is not set
144# CONFIG_PREEMPT_RCU is not set
145# CONFIG_TREE_RCU_TRACE is not set
146# CONFIG_PREEMPT_RCU_TRACE is not set
147# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
148 155
149# 156#
@@ -233,9 +240,12 @@ CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 240CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 241CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 242CONFIG_UNEVICTABLE_LRU=y
243CONFIG_HAVE_MLOCK=y
244CONFIG_HAVE_MLOCKED_PAGE_BIT=y
236CONFIG_PPC_4K_PAGES=y 245CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set 246# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set 247# CONFIG_PPC_64K_PAGES is not set
248# CONFIG_PPC_256K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
240# CONFIG_PROC_DEVICETREE is not set 250# CONFIG_PROC_DEVICETREE is not set
241# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -270,14 +280,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
270CONFIG_KERNEL_START=0xc0000000 280CONFIG_KERNEL_START=0xc0000000
271CONFIG_PHYSICAL_START=0x00000000 281CONFIG_PHYSICAL_START=0x00000000
272CONFIG_TASK_SIZE=0x80000000 282CONFIG_TASK_SIZE=0x80000000
273CONFIG_CONSISTENT_START=0xfd000000
274CONFIG_CONSISTENT_SIZE=0x00200000
275CONFIG_NET=y 283CONFIG_NET=y
276 284
277# 285#
278# Networking options 286# Networking options
279# 287#
280CONFIG_COMPAT_NET_DEV_OPS=y
281CONFIG_PACKET=y 288CONFIG_PACKET=y
282# CONFIG_PACKET_MMAP is not set 289# CONFIG_PACKET_MMAP is not set
283CONFIG_UNIX=y 290CONFIG_UNIX=y
@@ -328,6 +335,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
328# CONFIG_LAPB is not set 335# CONFIG_LAPB is not set
329# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
330# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
338# CONFIG_PHONET is not set
331# CONFIG_NET_SCHED is not set 339# CONFIG_NET_SCHED is not set
332# CONFIG_DCB is not set 340# CONFIG_DCB is not set
333 341
@@ -340,7 +348,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_IRDA is not set 348# CONFIG_IRDA is not set
341# CONFIG_BT is not set 349# CONFIG_BT is not set
342# CONFIG_AF_RXRPC is not set 350# CONFIG_AF_RXRPC is not set
343# CONFIG_PHONET is not set
344CONFIG_WIRELESS=y 351CONFIG_WIRELESS=y
345# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y 353CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -439,7 +446,6 @@ CONFIG_MTD_PHYSMAP_OF=y
439# LPDDR flash memory drivers 446# LPDDR flash memory drivers
440# 447#
441# CONFIG_MTD_LPDDR is not set 448# CONFIG_MTD_LPDDR is not set
442# CONFIG_MTD_QINFO_PROBE is not set
443 449
444# 450#
445# UBI - Unsorted block images 451# UBI - Unsorted block images
@@ -463,6 +469,7 @@ CONFIG_HAVE_IDE=y
463# CONFIG_MD is not set 469# CONFIG_MD is not set
464# CONFIG_MACINTOSH_DRIVERS is not set 470# CONFIG_MACINTOSH_DRIVERS is not set
465CONFIG_NETDEVICES=y 471CONFIG_NETDEVICES=y
472CONFIG_COMPAT_NET_DEV_OPS=y
466# CONFIG_DUMMY is not set 473# CONFIG_DUMMY is not set
467# CONFIG_BONDING is not set 474# CONFIG_BONDING is not set
468# CONFIG_MACVLAN is not set 475# CONFIG_MACVLAN is not set
@@ -491,6 +498,8 @@ CONFIG_DAVICOM_PHY=y
491# CONFIG_MDIO_BITBANG is not set 498# CONFIG_MDIO_BITBANG is not set
492CONFIG_NET_ETHERNET=y 499CONFIG_NET_ETHERNET=y
493CONFIG_MII=y 500CONFIG_MII=y
501# CONFIG_ETHOC is not set
502# CONFIG_DNET is not set
494# CONFIG_IBM_NEW_EMAC_ZMII is not set 503# CONFIG_IBM_NEW_EMAC_ZMII is not set
495# CONFIG_IBM_NEW_EMAC_RGMII is not set 504# CONFIG_IBM_NEW_EMAC_RGMII is not set
496# CONFIG_IBM_NEW_EMAC_TAH is not set 505# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -511,7 +520,6 @@ CONFIG_FS_ENET_MDIO_FEC=y
511# 520#
512# CONFIG_WLAN_PRE80211 is not set 521# CONFIG_WLAN_PRE80211 is not set
513# CONFIG_WLAN_80211 is not set 522# CONFIG_WLAN_80211 is not set
514# CONFIG_IWLWIFI_LEDS is not set
515 523
516# 524#
517# Enable WiMAX (Networking options) to see the WiMAX drivers 525# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -558,7 +566,6 @@ CONFIG_MOUSE_PS2=y
558CONFIG_MOUSE_PS2_ALPS=y 566CONFIG_MOUSE_PS2_ALPS=y
559CONFIG_MOUSE_PS2_LOGIPS2PP=y 567CONFIG_MOUSE_PS2_LOGIPS2PP=y
560CONFIG_MOUSE_PS2_SYNAPTICS=y 568CONFIG_MOUSE_PS2_SYNAPTICS=y
561CONFIG_MOUSE_PS2_LIFEBOOK=y
562CONFIG_MOUSE_PS2_TRACKPOINT=y 569CONFIG_MOUSE_PS2_TRACKPOINT=y
563# CONFIG_MOUSE_PS2_ELANTECH is not set 570# CONFIG_MOUSE_PS2_ELANTECH is not set
564# CONFIG_MOUSE_PS2_TOUCHKIT is not set 571# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -606,6 +613,7 @@ CONFIG_UNIX98_PTYS=y
606# CONFIG_HVC_UDBG is not set 613# CONFIG_HVC_UDBG is not set
607# CONFIG_IPMI_HANDLER is not set 614# CONFIG_IPMI_HANDLER is not set
608CONFIG_HW_RANDOM=y 615CONFIG_HW_RANDOM=y
616# CONFIG_HW_RANDOM_TIMERIOMEM is not set
609# CONFIG_NVRAM is not set 617# CONFIG_NVRAM is not set
610CONFIG_GEN_RTC=y 618CONFIG_GEN_RTC=y
611# CONFIG_GEN_RTC_X is not set 619# CONFIG_GEN_RTC_X is not set
@@ -675,6 +683,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
675# CONFIG_EDAC is not set 683# CONFIG_EDAC is not set
676# CONFIG_RTC_CLASS is not set 684# CONFIG_RTC_CLASS is not set
677# CONFIG_DMADEVICES is not set 685# CONFIG_DMADEVICES is not set
686# CONFIG_AUXDISPLAY is not set
678# CONFIG_UIO is not set 687# CONFIG_UIO is not set
679# CONFIG_STAGING is not set 688# CONFIG_STAGING is not set
680 689
@@ -699,6 +708,11 @@ CONFIG_FILE_LOCKING=y
699# CONFIG_FUSE_FS is not set 708# CONFIG_FUSE_FS is not set
700 709
701# 710#
711# Caches
712#
713# CONFIG_FSCACHE is not set
714
715#
702# CD-ROM/DVD Filesystems 716# CD-ROM/DVD Filesystems
703# 717#
704# CONFIG_ISO9660_FS is not set 718# CONFIG_ISO9660_FS is not set
@@ -742,6 +756,7 @@ CONFIG_CRAMFS=y
742# CONFIG_ROMFS_FS is not set 756# CONFIG_ROMFS_FS is not set
743# CONFIG_SYSV_FS is not set 757# CONFIG_SYSV_FS is not set
744# CONFIG_UFS_FS is not set 758# CONFIG_UFS_FS is not set
759# CONFIG_NILFS2_FS is not set
745CONFIG_NETWORK_FILESYSTEMS=y 760CONFIG_NETWORK_FILESYSTEMS=y
746CONFIG_NFS_FS=y 761CONFIG_NFS_FS=y
747CONFIG_NFS_V3=y 762CONFIG_NFS_V3=y
@@ -753,7 +768,6 @@ CONFIG_LOCKD=y
753CONFIG_LOCKD_V4=y 768CONFIG_LOCKD_V4=y
754CONFIG_NFS_COMMON=y 769CONFIG_NFS_COMMON=y
755CONFIG_SUNRPC=y 770CONFIG_SUNRPC=y
756# CONFIG_SUNRPC_REGISTER_V4 is not set
757# CONFIG_RPCSEC_GSS_KRB5 is not set 771# CONFIG_RPCSEC_GSS_KRB5 is not set
758# CONFIG_RPCSEC_GSS_SPKM3 is not set 772# CONFIG_RPCSEC_GSS_SPKM3 is not set
759# CONFIG_SMB_FS is not set 773# CONFIG_SMB_FS is not set
@@ -785,6 +799,7 @@ CONFIG_MSDOS_PARTITION=y
785# CONFIG_SYSV68_PARTITION is not set 799# CONFIG_SYSV68_PARTITION is not set
786# CONFIG_NLS is not set 800# CONFIG_NLS is not set
787# CONFIG_DLM is not set 801# CONFIG_DLM is not set
802# CONFIG_BINARY_PRINTF is not set
788 803
789# 804#
790# Library routines 805# Library routines
@@ -802,6 +817,7 @@ CONFIG_HAS_IOMEM=y
802CONFIG_HAS_IOPORT=y 817CONFIG_HAS_IOPORT=y
803CONFIG_HAS_DMA=y 818CONFIG_HAS_DMA=y
804CONFIG_HAVE_LMB=y 819CONFIG_HAVE_LMB=y
820CONFIG_NLATTR=y
805 821
806# 822#
807# Kernel hacking 823# Kernel hacking
@@ -819,6 +835,9 @@ CONFIG_DEBUG_KERNEL=y
819CONFIG_DETECT_SOFTLOCKUP=y 835CONFIG_DETECT_SOFTLOCKUP=y
820# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 836# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
821CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 837CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
838CONFIG_DETECT_HUNG_TASK=y
839# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
840CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
822CONFIG_SCHED_DEBUG=y 841CONFIG_SCHED_DEBUG=y
823# CONFIG_SCHEDSTATS is not set 842# CONFIG_SCHEDSTATS is not set
824# CONFIG_TIMER_STATS is not set 843# CONFIG_TIMER_STATS is not set
@@ -845,9 +864,12 @@ CONFIG_DEBUG_INFO=y
845# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 864# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
846# CONFIG_FAULT_INJECTION is not set 865# CONFIG_FAULT_INJECTION is not set
847# CONFIG_LATENCYTOP is not set 866# CONFIG_LATENCYTOP is not set
867# CONFIG_DEBUG_PAGEALLOC is not set
848CONFIG_HAVE_FUNCTION_TRACER=y 868CONFIG_HAVE_FUNCTION_TRACER=y
869CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
849CONFIG_HAVE_DYNAMIC_FTRACE=y 870CONFIG_HAVE_DYNAMIC_FTRACE=y
850CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 871CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
872CONFIG_TRACING_SUPPORT=y
851 873
852# 874#
853# Tracers 875# Tracers
@@ -855,17 +877,20 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
855# CONFIG_FUNCTION_TRACER is not set 877# CONFIG_FUNCTION_TRACER is not set
856# CONFIG_SCHED_TRACER is not set 878# CONFIG_SCHED_TRACER is not set
857# CONFIG_CONTEXT_SWITCH_TRACER is not set 879# CONFIG_CONTEXT_SWITCH_TRACER is not set
880# CONFIG_EVENT_TRACER is not set
858# CONFIG_BOOT_TRACER is not set 881# CONFIG_BOOT_TRACER is not set
859# CONFIG_TRACE_BRANCH_PROFILING is not set 882# CONFIG_TRACE_BRANCH_PROFILING is not set
860# CONFIG_STACK_TRACER is not set 883# CONFIG_STACK_TRACER is not set
861# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 884# CONFIG_KMEMTRACE is not set
885# CONFIG_WORKQUEUE_TRACER is not set
886# CONFIG_BLK_DEV_IO_TRACE is not set
887# CONFIG_DYNAMIC_DEBUG is not set
862# CONFIG_SAMPLES is not set 888# CONFIG_SAMPLES is not set
863CONFIG_HAVE_ARCH_KGDB=y 889CONFIG_HAVE_ARCH_KGDB=y
864# CONFIG_KGDB is not set 890# CONFIG_KGDB is not set
865CONFIG_PRINT_STACK_DEPTH=64 891CONFIG_PRINT_STACK_DEPTH=64
866# CONFIG_DEBUG_STACKOVERFLOW is not set 892# CONFIG_DEBUG_STACKOVERFLOW is not set
867# CONFIG_DEBUG_STACK_USAGE is not set 893# CONFIG_DEBUG_STACK_USAGE is not set
868# CONFIG_DEBUG_PAGEALLOC is not set
869# CONFIG_CODE_PATCHING_SELFTEST is not set 894# CONFIG_CODE_PATCHING_SELFTEST is not set
870# CONFIG_FTR_FIXUP_SELFTEST is not set 895# CONFIG_FTR_FIXUP_SELFTEST is not set
871# CONFIG_MSI_BITMAP_SELFTEST is not set 896# CONFIG_MSI_BITMAP_SELFTEST is not set
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index 5103319a7f56..9ffa8de92803 100644
--- a/arch/powerpc/configs/c2k_defconfig
+++ b/arch/powerpc/configs/c2k_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:26 2009 4# Wed May 13 17:21:51 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -56,6 +57,7 @@ CONFIG_GENERIC_BUG=y
56# CONFIG_DEFAULT_UIMAGE is not set 57# CONFIG_DEFAULT_UIMAGE is not set
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -70,12 +72,22 @@ CONFIG_SWAP=y
70CONFIG_SYSVIPC=y 72CONFIG_SYSVIPC=y
71CONFIG_SYSVIPC_SYSCTL=y 73CONFIG_SYSVIPC_SYSCTL=y
72CONFIG_POSIX_MQUEUE=y 74CONFIG_POSIX_MQUEUE=y
75CONFIG_POSIX_MQUEUE_SYSCTL=y
73CONFIG_BSD_PROCESS_ACCT=y 76CONFIG_BSD_PROCESS_ACCT=y
74# CONFIG_BSD_PROCESS_ACCT_V3 is not set 77# CONFIG_BSD_PROCESS_ACCT_V3 is not set
75# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
76CONFIG_AUDIT=y 79CONFIG_AUDIT=y
77CONFIG_AUDITSYSCALL=y 80CONFIG_AUDITSYSCALL=y
78CONFIG_AUDIT_TREE=y 81CONFIG_AUDIT_TREE=y
82
83#
84# RCU Subsystem
85#
86CONFIG_CLASSIC_RCU=y
87# CONFIG_TREE_RCU is not set
88# CONFIG_PREEMPT_RCU is not set
89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 91# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=17 92CONFIG_LOG_BUF_SHIFT=17
81CONFIG_GROUP_SCHED=y 93CONFIG_GROUP_SCHED=y
@@ -92,23 +104,27 @@ CONFIG_NAMESPACES=y
92# CONFIG_IPC_NS is not set 104# CONFIG_IPC_NS is not set
93# CONFIG_USER_NS is not set 105# CONFIG_USER_NS is not set
94# CONFIG_PID_NS is not set 106# CONFIG_PID_NS is not set
107# CONFIG_NET_NS is not set
95CONFIG_BLK_DEV_INITRD=y 108CONFIG_BLK_DEV_INITRD=y
96CONFIG_INITRAMFS_SOURCE="" 109CONFIG_INITRAMFS_SOURCE=""
110CONFIG_RD_GZIP=y
111CONFIG_RD_BZIP2=y
112CONFIG_RD_LZMA=y
97CONFIG_CC_OPTIMIZE_FOR_SIZE=y 113CONFIG_CC_OPTIMIZE_FOR_SIZE=y
98CONFIG_SYSCTL=y 114CONFIG_SYSCTL=y
115CONFIG_ANON_INODES=y
99# CONFIG_EMBEDDED is not set 116# CONFIG_EMBEDDED is not set
100CONFIG_SYSCTL_SYSCALL=y 117CONFIG_SYSCTL_SYSCALL=y
101CONFIG_KALLSYMS=y 118CONFIG_KALLSYMS=y
102# CONFIG_KALLSYMS_ALL is not set 119# CONFIG_KALLSYMS_ALL is not set
103CONFIG_KALLSYMS_EXTRA_PASS=y 120CONFIG_KALLSYMS_EXTRA_PASS=y
121# CONFIG_STRIP_ASM_SYMS is not set
104CONFIG_HOTPLUG=y 122CONFIG_HOTPLUG=y
105CONFIG_PRINTK=y 123CONFIG_PRINTK=y
106CONFIG_BUG=y 124CONFIG_BUG=y
107CONFIG_ELF_CORE=y 125CONFIG_ELF_CORE=y
108CONFIG_COMPAT_BRK=y
109CONFIG_BASE_FULL=y 126CONFIG_BASE_FULL=y
110CONFIG_FUTEX=y 127CONFIG_FUTEX=y
111CONFIG_ANON_INODES=y
112CONFIG_EPOLL=y 128CONFIG_EPOLL=y
113CONFIG_SIGNALFD=y 129CONFIG_SIGNALFD=y
114CONFIG_TIMERFD=y 130CONFIG_TIMERFD=y
@@ -118,6 +134,7 @@ CONFIG_AIO=y
118CONFIG_VM_EVENT_COUNTERS=y 134CONFIG_VM_EVENT_COUNTERS=y
119CONFIG_PCI_QUIRKS=y 135CONFIG_PCI_QUIRKS=y
120CONFIG_SLUB_DEBUG=y 136CONFIG_SLUB_DEBUG=y
137CONFIG_COMPAT_BRK=y
121# CONFIG_SLAB is not set 138# CONFIG_SLAB is not set
122CONFIG_SLUB=y 139CONFIG_SLUB=y
123# CONFIG_SLOB is not set 140# CONFIG_SLOB is not set
@@ -133,6 +150,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
133CONFIG_HAVE_KPROBES=y 150CONFIG_HAVE_KPROBES=y
134CONFIG_HAVE_KRETPROBES=y 151CONFIG_HAVE_KRETPROBES=y
135CONFIG_HAVE_ARCH_TRACEHOOK=y 152CONFIG_HAVE_ARCH_TRACEHOOK=y
153# CONFIG_SLOW_WORK is not set
136# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 154# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
137CONFIG_SLABINFO=y 155CONFIG_SLABINFO=y
138CONFIG_RT_MUTEXES=y 156CONFIG_RT_MUTEXES=y
@@ -145,7 +163,6 @@ CONFIG_MODVERSIONS=y
145# CONFIG_MODULE_SRCVERSION_ALL is not set 163# CONFIG_MODULE_SRCVERSION_ALL is not set
146CONFIG_BLOCK=y 164CONFIG_BLOCK=y
147CONFIG_LBD=y 165CONFIG_LBD=y
148# CONFIG_BLK_DEV_IO_TRACE is not set
149# CONFIG_BLK_DEV_BSG is not set 166# CONFIG_BLK_DEV_BSG is not set
150# CONFIG_BLK_DEV_INTEGRITY is not set 167# CONFIG_BLK_DEV_INTEGRITY is not set
151 168
@@ -161,18 +178,11 @@ CONFIG_IOSCHED_CFQ=y
161CONFIG_DEFAULT_CFQ=y 178CONFIG_DEFAULT_CFQ=y
162# CONFIG_DEFAULT_NOOP is not set 179# CONFIG_DEFAULT_NOOP is not set
163CONFIG_DEFAULT_IOSCHED="cfq" 180CONFIG_DEFAULT_IOSCHED="cfq"
164CONFIG_CLASSIC_RCU=y
165# CONFIG_TREE_RCU is not set
166# CONFIG_PREEMPT_RCU is not set
167# CONFIG_TREE_RCU_TRACE is not set
168# CONFIG_PREEMPT_RCU_TRACE is not set
169# CONFIG_FREEZER is not set 181# CONFIG_FREEZER is not set
170 182
171# 183#
172# Platform support 184# Platform support
173# 185#
174CONFIG_PPC_MULTIPLATFORM=y
175CONFIG_CLASSIC32=y
176# CONFIG_PPC_CHRP is not set 186# CONFIG_PPC_CHRP is not set
177# CONFIG_MPC5121_ADS is not set 187# CONFIG_MPC5121_ADS is not set
178# CONFIG_MPC5121_GENERIC is not set 188# CONFIG_MPC5121_GENERIC is not set
@@ -192,6 +202,8 @@ CONFIG_EMBEDDED6xx=y
192# CONFIG_PPC_PRPMC2800 is not set 202# CONFIG_PPC_PRPMC2800 is not set
193CONFIG_PPC_C2K=y 203CONFIG_PPC_C2K=y
194CONFIG_MV64X60=y 204CONFIG_MV64X60=y
205# CONFIG_AMIGAONE is not set
206CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
195# CONFIG_IPIC is not set 207# CONFIG_IPIC is not set
196# CONFIG_MPIC is not set 208# CONFIG_MPIC is not set
197# CONFIG_MPIC_WEIRD is not set 209# CONFIG_MPIC_WEIRD is not set
@@ -268,9 +280,12 @@ CONFIG_ZONE_DMA_FLAG=1
268CONFIG_BOUNCE=y 280CONFIG_BOUNCE=y
269CONFIG_VIRT_TO_BUS=y 281CONFIG_VIRT_TO_BUS=y
270CONFIG_UNEVICTABLE_LRU=y 282CONFIG_UNEVICTABLE_LRU=y
283CONFIG_HAVE_MLOCK=y
284CONFIG_HAVE_MLOCKED_PAGE_BIT=y
271CONFIG_PPC_4K_PAGES=y 285CONFIG_PPC_4K_PAGES=y
272# CONFIG_PPC_16K_PAGES is not set 286# CONFIG_PPC_16K_PAGES is not set
273# CONFIG_PPC_64K_PAGES is not set 287# CONFIG_PPC_64K_PAGES is not set
288# CONFIG_PPC_256K_PAGES is not set
274CONFIG_FORCE_MAX_ZONEORDER=11 289CONFIG_FORCE_MAX_ZONEORDER=11
275# CONFIG_PROC_DEVICETREE is not set 290# CONFIG_PROC_DEVICETREE is not set
276# CONFIG_CMDLINE_BOOL is not set 291# CONFIG_CMDLINE_BOOL is not set
@@ -295,6 +310,7 @@ CONFIG_PCI_MSI=y
295# CONFIG_PCI_LEGACY is not set 310# CONFIG_PCI_LEGACY is not set
296# CONFIG_PCI_DEBUG is not set 311# CONFIG_PCI_DEBUG is not set
297# CONFIG_PCI_STUB is not set 312# CONFIG_PCI_STUB is not set
313# CONFIG_PCI_IOV is not set
298# CONFIG_PCCARD is not set 314# CONFIG_PCCARD is not set
299CONFIG_HOTPLUG_PCI=y 315CONFIG_HOTPLUG_PCI=y
300# CONFIG_HOTPLUG_PCI_FAKE is not set 316# CONFIG_HOTPLUG_PCI_FAKE is not set
@@ -315,15 +331,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
315CONFIG_KERNEL_START=0xc0000000 331CONFIG_KERNEL_START=0xc0000000
316CONFIG_PHYSICAL_START=0x00000000 332CONFIG_PHYSICAL_START=0x00000000
317CONFIG_TASK_SIZE=0xc0000000 333CONFIG_TASK_SIZE=0xc0000000
318CONFIG_CONSISTENT_START=0xff100000
319CONFIG_CONSISTENT_SIZE=0x00200000
320CONFIG_NET=y 334CONFIG_NET=y
321 335
322# 336#
323# Networking options 337# Networking options
324# 338#
325# CONFIG_NET_NS is not set
326CONFIG_COMPAT_NET_DEV_OPS=y
327CONFIG_PACKET=y 339CONFIG_PACKET=y
328CONFIG_PACKET_MMAP=y 340CONFIG_PACKET_MMAP=y
329CONFIG_UNIX=y 341CONFIG_UNIX=y
@@ -364,7 +376,7 @@ CONFIG_INET_TUNNEL=m
364CONFIG_INET_XFRM_MODE_TRANSPORT=y 376CONFIG_INET_XFRM_MODE_TRANSPORT=y
365CONFIG_INET_XFRM_MODE_TUNNEL=y 377CONFIG_INET_XFRM_MODE_TUNNEL=y
366CONFIG_INET_XFRM_MODE_BEET=y 378CONFIG_INET_XFRM_MODE_BEET=y
367CONFIG_INET_LRO=m 379CONFIG_INET_LRO=y
368CONFIG_INET_DIAG=y 380CONFIG_INET_DIAG=y
369CONFIG_INET_TCP_DIAG=y 381CONFIG_INET_TCP_DIAG=y
370# CONFIG_TCP_CONG_ADVANCED is not set 382# CONFIG_TCP_CONG_ADVANCED is not set
@@ -403,9 +415,11 @@ CONFIG_BRIDGE_NETFILTER=y
403# CONFIG_NETFILTER_NETLINK_QUEUE is not set 415# CONFIG_NETFILTER_NETLINK_QUEUE is not set
404# CONFIG_NETFILTER_NETLINK_LOG is not set 416# CONFIG_NETFILTER_NETLINK_LOG is not set
405# CONFIG_NF_CONNTRACK is not set 417# CONFIG_NF_CONNTRACK is not set
418# CONFIG_NETFILTER_TPROXY is not set
406CONFIG_NETFILTER_XTABLES=m 419CONFIG_NETFILTER_XTABLES=m
407# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 420# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
408# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 421# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
422# CONFIG_NETFILTER_XT_TARGET_HL is not set
409# CONFIG_NETFILTER_XT_TARGET_MARK is not set 423# CONFIG_NETFILTER_XT_TARGET_MARK is not set
410# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 424# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
411# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 425# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
@@ -419,6 +433,7 @@ CONFIG_NETFILTER_XTABLES=m
419# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 433# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
420# CONFIG_NETFILTER_XT_MATCH_ESP is not set 434# CONFIG_NETFILTER_XT_MATCH_ESP is not set
421# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 435# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
436CONFIG_NETFILTER_XT_MATCH_HL=m
422# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 437# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
423# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 438# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
424# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 439# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -508,11 +523,11 @@ CONFIG_IP6_NF_MATCH_HL=m
508CONFIG_IP6_NF_MATCH_IPV6HEADER=m 523CONFIG_IP6_NF_MATCH_IPV6HEADER=m
509# CONFIG_IP6_NF_MATCH_MH is not set 524# CONFIG_IP6_NF_MATCH_MH is not set
510CONFIG_IP6_NF_MATCH_RT=m 525CONFIG_IP6_NF_MATCH_RT=m
526# CONFIG_IP6_NF_TARGET_HL is not set
511CONFIG_IP6_NF_TARGET_LOG=m 527CONFIG_IP6_NF_TARGET_LOG=m
512CONFIG_IP6_NF_FILTER=m 528CONFIG_IP6_NF_FILTER=m
513# CONFIG_IP6_NF_TARGET_REJECT is not set 529# CONFIG_IP6_NF_TARGET_REJECT is not set
514CONFIG_IP6_NF_MANGLE=m 530CONFIG_IP6_NF_MANGLE=m
515# CONFIG_IP6_NF_TARGET_HL is not set
516CONFIG_IP6_NF_RAW=m 531CONFIG_IP6_NF_RAW=m
517# CONFIG_IP6_NF_SECURITY is not set 532# CONFIG_IP6_NF_SECURITY is not set
518CONFIG_BRIDGE_NF_EBTABLES=m 533CONFIG_BRIDGE_NF_EBTABLES=m
@@ -544,6 +559,7 @@ CONFIG_IP_SCTP=m
544# CONFIG_SCTP_HMAC_NONE is not set 559# CONFIG_SCTP_HMAC_NONE is not set
545# CONFIG_SCTP_HMAC_SHA1 is not set 560# CONFIG_SCTP_HMAC_SHA1 is not set
546CONFIG_SCTP_HMAC_MD5=y 561CONFIG_SCTP_HMAC_MD5=y
562# CONFIG_RDS is not set
547# CONFIG_TIPC is not set 563# CONFIG_TIPC is not set
548CONFIG_ATM=m 564CONFIG_ATM=m
549CONFIG_ATM_CLIP=m 565CONFIG_ATM_CLIP=m
@@ -566,6 +582,7 @@ CONFIG_LLC=m
566# CONFIG_LAPB is not set 582# CONFIG_LAPB is not set
567# CONFIG_ECONET is not set 583# CONFIG_ECONET is not set
568# CONFIG_WAN_ROUTER is not set 584# CONFIG_WAN_ROUTER is not set
585# CONFIG_PHONET is not set
569CONFIG_NET_SCHED=y 586CONFIG_NET_SCHED=y
570 587
571# 588#
@@ -612,6 +629,7 @@ CONFIG_NET_SCH_FIFO=y
612# 629#
613# CONFIG_NET_PKTGEN is not set 630# CONFIG_NET_PKTGEN is not set
614# CONFIG_NET_TCPPROBE is not set 631# CONFIG_NET_TCPPROBE is not set
632# CONFIG_NET_DROP_MONITOR is not set
615# CONFIG_HAMRADIO is not set 633# CONFIG_HAMRADIO is not set
616# CONFIG_CAN is not set 634# CONFIG_CAN is not set
617# CONFIG_IRDA is not set 635# CONFIG_IRDA is not set
@@ -638,7 +656,6 @@ CONFIG_BT_HCIBCM203X=m
638CONFIG_BT_HCIBFUSB=m 656CONFIG_BT_HCIBFUSB=m
639CONFIG_BT_HCIVHCI=m 657CONFIG_BT_HCIVHCI=m
640# CONFIG_AF_RXRPC is not set 658# CONFIG_AF_RXRPC is not set
641# CONFIG_PHONET is not set
642CONFIG_FIB_RULES=y 659CONFIG_FIB_RULES=y
643CONFIG_WIRELESS=y 660CONFIG_WIRELESS=y
644# CONFIG_CFG80211 is not set 661# CONFIG_CFG80211 is not set
@@ -748,7 +765,6 @@ CONFIG_MTD_PHYSMAP_OF=y
748# LPDDR flash memory drivers 765# LPDDR flash memory drivers
749# 766#
750# CONFIG_MTD_LPDDR is not set 767# CONFIG_MTD_LPDDR is not set
751# CONFIG_MTD_QINFO_PROBE is not set
752 768
753# 769#
754# UBI - Unsorted block images 770# UBI - Unsorted block images
@@ -846,9 +862,11 @@ CONFIG_MEGARAID_MM=m
846CONFIG_MEGARAID_MAILBOX=m 862CONFIG_MEGARAID_MAILBOX=m
847# CONFIG_MEGARAID_LEGACY is not set 863# CONFIG_MEGARAID_LEGACY is not set
848CONFIG_MEGARAID_SAS=m 864CONFIG_MEGARAID_SAS=m
865# CONFIG_SCSI_MPT2SAS is not set
849# CONFIG_SCSI_HPTIOP is not set 866# CONFIG_SCSI_HPTIOP is not set
850# CONFIG_SCSI_BUSLOGIC is not set 867# CONFIG_SCSI_BUSLOGIC is not set
851# CONFIG_LIBFC is not set 868# CONFIG_LIBFC is not set
869# CONFIG_LIBFCOE is not set
852# CONFIG_FCOE is not set 870# CONFIG_FCOE is not set
853# CONFIG_SCSI_DMX3191D is not set 871# CONFIG_SCSI_DMX3191D is not set
854# CONFIG_SCSI_EATA is not set 872# CONFIG_SCSI_EATA is not set
@@ -875,6 +893,7 @@ CONFIG_SCSI_LPFC=m
875# CONFIG_SCSI_DEBUG is not set 893# CONFIG_SCSI_DEBUG is not set
876# CONFIG_SCSI_SRP is not set 894# CONFIG_SCSI_SRP is not set
877# CONFIG_SCSI_DH is not set 895# CONFIG_SCSI_DH is not set
896# CONFIG_SCSI_OSD_INITIATOR is not set
878# CONFIG_ATA is not set 897# CONFIG_ATA is not set
879# CONFIG_MD is not set 898# CONFIG_MD is not set
880# CONFIG_FUSION is not set 899# CONFIG_FUSION is not set
@@ -891,6 +910,7 @@ CONFIG_SCSI_LPFC=m
891# CONFIG_I2O is not set 910# CONFIG_I2O is not set
892# CONFIG_MACINTOSH_DRIVERS is not set 911# CONFIG_MACINTOSH_DRIVERS is not set
893CONFIG_NETDEVICES=y 912CONFIG_NETDEVICES=y
913CONFIG_COMPAT_NET_DEV_OPS=y
894CONFIG_DUMMY=m 914CONFIG_DUMMY=m
895CONFIG_BONDING=m 915CONFIG_BONDING=m
896# CONFIG_MACVLAN is not set 916# CONFIG_MACVLAN is not set
@@ -924,6 +944,8 @@ CONFIG_MII=y
924# CONFIG_SUNGEM is not set 944# CONFIG_SUNGEM is not set
925# CONFIG_CASSINI is not set 945# CONFIG_CASSINI is not set
926# CONFIG_NET_VENDOR_3COM is not set 946# CONFIG_NET_VENDOR_3COM is not set
947# CONFIG_ETHOC is not set
948# CONFIG_DNET is not set
927# CONFIG_NET_TULIP is not set 949# CONFIG_NET_TULIP is not set
928# CONFIG_HP100 is not set 950# CONFIG_HP100 is not set
929# CONFIG_IBM_NEW_EMAC_ZMII is not set 951# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -943,6 +965,7 @@ CONFIG_NETDEV_1000=y
943# CONFIG_E1000E is not set 965# CONFIG_E1000E is not set
944# CONFIG_IP1000 is not set 966# CONFIG_IP1000 is not set
945# CONFIG_IGB is not set 967# CONFIG_IGB is not set
968# CONFIG_IGBVF is not set
946# CONFIG_NS83820 is not set 969# CONFIG_NS83820 is not set
947# CONFIG_HAMACHI is not set 970# CONFIG_HAMACHI is not set
948# CONFIG_YELLOWFIN is not set 971# CONFIG_YELLOWFIN is not set
@@ -957,6 +980,7 @@ CONFIG_MV643XX_ETH=y
957# CONFIG_QLA3XXX is not set 980# CONFIG_QLA3XXX is not set
958# CONFIG_ATL1 is not set 981# CONFIG_ATL1 is not set
959# CONFIG_ATL1E is not set 982# CONFIG_ATL1E is not set
983# CONFIG_ATL1C is not set
960# CONFIG_JME is not set 984# CONFIG_JME is not set
961# CONFIG_NETDEV_10000 is not set 985# CONFIG_NETDEV_10000 is not set
962# CONFIG_TR is not set 986# CONFIG_TR is not set
@@ -966,7 +990,6 @@ CONFIG_MV643XX_ETH=y
966# 990#
967# CONFIG_WLAN_PRE80211 is not set 991# CONFIG_WLAN_PRE80211 is not set
968# CONFIG_WLAN_80211 is not set 992# CONFIG_WLAN_80211 is not set
969# CONFIG_IWLWIFI_LEDS is not set
970 993
971# 994#
972# Enable WiMAX (Networking options) to see the WiMAX drivers 995# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -1084,6 +1107,7 @@ CONFIG_UNIX98_PTYS=y
1084# CONFIG_HVC_UDBG is not set 1107# CONFIG_HVC_UDBG is not set
1085# CONFIG_IPMI_HANDLER is not set 1108# CONFIG_IPMI_HANDLER is not set
1086CONFIG_HW_RANDOM=m 1109CONFIG_HW_RANDOM=m
1110# CONFIG_HW_RANDOM_TIMERIOMEM is not set
1087CONFIG_NVRAM=m 1111CONFIG_NVRAM=m
1088CONFIG_GEN_RTC=m 1112CONFIG_GEN_RTC=m
1089# CONFIG_GEN_RTC_X is not set 1113# CONFIG_GEN_RTC_X is not set
@@ -1150,12 +1174,9 @@ CONFIG_I2C_MV64XXX=m
1150# Miscellaneous I2C Chip support 1174# Miscellaneous I2C Chip support
1151# 1175#
1152# CONFIG_DS1682 is not set 1176# CONFIG_DS1682 is not set
1153# CONFIG_EEPROM_AT24 is not set
1154CONFIG_EEPROM_LEGACY=m
1155CONFIG_SENSORS_PCF8574=m 1177CONFIG_SENSORS_PCF8574=m
1156# CONFIG_PCF8575 is not set 1178# CONFIG_PCF8575 is not set
1157# CONFIG_SENSORS_PCA9539 is not set 1179# CONFIG_SENSORS_PCA9539 is not set
1158CONFIG_SENSORS_PCF8591=m
1159# CONFIG_SENSORS_MAX6875 is not set 1180# CONFIG_SENSORS_MAX6875 is not set
1160# CONFIG_SENSORS_TSL2550 is not set 1181# CONFIG_SENSORS_TSL2550 is not set
1161# CONFIG_I2C_DEBUG_CORE is not set 1182# CONFIG_I2C_DEBUG_CORE is not set
@@ -1187,6 +1208,7 @@ CONFIG_SENSORS_DS1621=m
1187# CONFIG_SENSORS_F71805F is not set 1208# CONFIG_SENSORS_F71805F is not set
1188# CONFIG_SENSORS_F71882FG is not set 1209# CONFIG_SENSORS_F71882FG is not set
1189# CONFIG_SENSORS_F75375S is not set 1210# CONFIG_SENSORS_F75375S is not set
1211# CONFIG_SENSORS_G760A is not set
1190CONFIG_SENSORS_GL518SM=m 1212CONFIG_SENSORS_GL518SM=m
1191# CONFIG_SENSORS_GL520SM is not set 1213# CONFIG_SENSORS_GL520SM is not set
1192CONFIG_SENSORS_IT87=m 1214CONFIG_SENSORS_IT87=m
@@ -1201,11 +1223,14 @@ CONFIG_SENSORS_LM87=m
1201CONFIG_SENSORS_LM90=m 1223CONFIG_SENSORS_LM90=m
1202# CONFIG_SENSORS_LM92 is not set 1224# CONFIG_SENSORS_LM92 is not set
1203# CONFIG_SENSORS_LM93 is not set 1225# CONFIG_SENSORS_LM93 is not set
1226# CONFIG_SENSORS_LTC4215 is not set
1204# CONFIG_SENSORS_LTC4245 is not set 1227# CONFIG_SENSORS_LTC4245 is not set
1228# CONFIG_SENSORS_LM95241 is not set
1205CONFIG_SENSORS_MAX1619=m 1229CONFIG_SENSORS_MAX1619=m
1206# CONFIG_SENSORS_MAX6650 is not set 1230# CONFIG_SENSORS_MAX6650 is not set
1207# CONFIG_SENSORS_PC87360 is not set 1231# CONFIG_SENSORS_PC87360 is not set
1208# CONFIG_SENSORS_PC87427 is not set 1232# CONFIG_SENSORS_PC87427 is not set
1233CONFIG_SENSORS_PCF8591=m
1209# CONFIG_SENSORS_SIS5595 is not set 1234# CONFIG_SENSORS_SIS5595 is not set
1210# CONFIG_SENSORS_DME1737 is not set 1235# CONFIG_SENSORS_DME1737 is not set
1211CONFIG_SENSORS_SMSC47M1=m 1236CONFIG_SENSORS_SMSC47M1=m
@@ -1363,21 +1388,21 @@ CONFIG_USB_PRINTER=m
1363# CONFIG_USB_TMC is not set 1388# CONFIG_USB_TMC is not set
1364 1389
1365# 1390#
1366# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1391# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1367# 1392#
1368 1393
1369# 1394#
1370# see USB_STORAGE Help for more information 1395# also be needed; see USB_STORAGE Help for more info
1371# 1396#
1372CONFIG_USB_STORAGE=m 1397CONFIG_USB_STORAGE=m
1373# CONFIG_USB_STORAGE_DEBUG is not set 1398# CONFIG_USB_STORAGE_DEBUG is not set
1374CONFIG_USB_STORAGE_DATAFAB=y 1399CONFIG_USB_STORAGE_DATAFAB=m
1375CONFIG_USB_STORAGE_FREECOM=y 1400CONFIG_USB_STORAGE_FREECOM=m
1376CONFIG_USB_STORAGE_ISD200=y 1401CONFIG_USB_STORAGE_ISD200=m
1377# CONFIG_USB_STORAGE_USBAT is not set 1402# CONFIG_USB_STORAGE_USBAT is not set
1378CONFIG_USB_STORAGE_SDDR09=y 1403CONFIG_USB_STORAGE_SDDR09=m
1379CONFIG_USB_STORAGE_SDDR55=y 1404CONFIG_USB_STORAGE_SDDR55=m
1380CONFIG_USB_STORAGE_JUMPSHOT=y 1405CONFIG_USB_STORAGE_JUMPSHOT=m
1381# CONFIG_USB_STORAGE_ALAUDA is not set 1406# CONFIG_USB_STORAGE_ALAUDA is not set
1382# CONFIG_USB_STORAGE_ONETOUCH is not set 1407# CONFIG_USB_STORAGE_ONETOUCH is not set
1383# CONFIG_USB_STORAGE_KARMA is not set 1408# CONFIG_USB_STORAGE_KARMA is not set
@@ -1402,7 +1427,7 @@ CONFIG_USB_SERIAL_BELKIN=m
1402# CONFIG_USB_SERIAL_CH341 is not set 1427# CONFIG_USB_SERIAL_CH341 is not set
1403CONFIG_USB_SERIAL_WHITEHEAT=m 1428CONFIG_USB_SERIAL_WHITEHEAT=m
1404CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m 1429CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
1405# CONFIG_USB_SERIAL_CP2101 is not set 1430# CONFIG_USB_SERIAL_CP210X is not set
1406# CONFIG_USB_SERIAL_CYPRESS_M8 is not set 1431# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1407CONFIG_USB_SERIAL_EMPEG=m 1432CONFIG_USB_SERIAL_EMPEG=m
1408CONFIG_USB_SERIAL_FTDI_SIO=m 1433CONFIG_USB_SERIAL_FTDI_SIO=m
@@ -1438,12 +1463,14 @@ CONFIG_USB_SERIAL_MCT_U232=m
1438# CONFIG_USB_SERIAL_NAVMAN is not set 1463# CONFIG_USB_SERIAL_NAVMAN is not set
1439CONFIG_USB_SERIAL_PL2303=m 1464CONFIG_USB_SERIAL_PL2303=m
1440# CONFIG_USB_SERIAL_OTI6858 is not set 1465# CONFIG_USB_SERIAL_OTI6858 is not set
1466# CONFIG_USB_SERIAL_QUALCOMM is not set
1441# CONFIG_USB_SERIAL_SPCP8X5 is not set 1467# CONFIG_USB_SERIAL_SPCP8X5 is not set
1442# CONFIG_USB_SERIAL_HP4X is not set 1468# CONFIG_USB_SERIAL_HP4X is not set
1443CONFIG_USB_SERIAL_SAFE=m 1469CONFIG_USB_SERIAL_SAFE=m
1444CONFIG_USB_SERIAL_SAFE_PADDED=y 1470CONFIG_USB_SERIAL_SAFE_PADDED=y
1445# CONFIG_USB_SERIAL_SIEMENS_MPI is not set 1471# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1446# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1472# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1473# CONFIG_USB_SERIAL_SYMBOL is not set
1447# CONFIG_USB_SERIAL_TI is not set 1474# CONFIG_USB_SERIAL_TI is not set
1448CONFIG_USB_SERIAL_CYBERJACK=m 1475CONFIG_USB_SERIAL_CYBERJACK=m
1449CONFIG_USB_SERIAL_XIRCOM=m 1476CONFIG_USB_SERIAL_XIRCOM=m
@@ -1466,7 +1493,6 @@ CONFIG_USB_LCD=m
1466CONFIG_USB_LED=m 1493CONFIG_USB_LED=m
1467# CONFIG_USB_CYPRESS_CY7C63 is not set 1494# CONFIG_USB_CYPRESS_CY7C63 is not set
1468# CONFIG_USB_CYTHERM is not set 1495# CONFIG_USB_CYTHERM is not set
1469# CONFIG_USB_PHIDGET is not set
1470# CONFIG_USB_IDMOUSE is not set 1496# CONFIG_USB_IDMOUSE is not set
1471# CONFIG_USB_FTDI_ELAN is not set 1497# CONFIG_USB_FTDI_ELAN is not set
1472# CONFIG_USB_APPLEDISPLAY is not set 1498# CONFIG_USB_APPLEDISPLAY is not set
@@ -1487,6 +1513,7 @@ CONFIG_USB_SPEEDTOUCH=m
1487# 1513#
1488# OTG and related infrastructure 1514# OTG and related infrastructure
1489# 1515#
1516# CONFIG_NOP_USB_XCEIV is not set
1490# CONFIG_UWB is not set 1517# CONFIG_UWB is not set
1491# CONFIG_MMC is not set 1518# CONFIG_MMC is not set
1492# CONFIG_MEMSTICK is not set 1519# CONFIG_MEMSTICK is not set
@@ -1516,6 +1543,7 @@ CONFIG_DMADEVICES=y
1516# 1543#
1517# DMA Devices 1544# DMA Devices
1518# 1545#
1546# CONFIG_AUXDISPLAY is not set
1519# CONFIG_UIO is not set 1547# CONFIG_UIO is not set
1520# CONFIG_STAGING is not set 1548# CONFIG_STAGING is not set
1521 1549
@@ -1524,6 +1552,7 @@ CONFIG_DMADEVICES=y
1524# 1552#
1525# CONFIG_EXT2_FS is not set 1553# CONFIG_EXT2_FS is not set
1526CONFIG_EXT3_FS=m 1554CONFIG_EXT3_FS=m
1555# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1527CONFIG_EXT3_FS_XATTR=y 1556CONFIG_EXT3_FS_XATTR=y
1528CONFIG_EXT3_FS_POSIX_ACL=y 1557CONFIG_EXT3_FS_POSIX_ACL=y
1529CONFIG_EXT3_FS_SECURITY=y 1558CONFIG_EXT3_FS_SECURITY=y
@@ -1554,6 +1583,11 @@ CONFIG_AUTOFS4_FS=m
1554# CONFIG_FUSE_FS is not set 1583# CONFIG_FUSE_FS is not set
1555 1584
1556# 1585#
1586# Caches
1587#
1588# CONFIG_FSCACHE is not set
1589
1590#
1557# CD-ROM/DVD Filesystems 1591# CD-ROM/DVD Filesystems
1558# 1592#
1559# CONFIG_ISO9660_FS is not set 1593# CONFIG_ISO9660_FS is not set
@@ -1612,6 +1646,7 @@ CONFIG_VXFS_FS=m
1612# CONFIG_ROMFS_FS is not set 1646# CONFIG_ROMFS_FS is not set
1613# CONFIG_SYSV_FS is not set 1647# CONFIG_SYSV_FS is not set
1614# CONFIG_UFS_FS is not set 1648# CONFIG_UFS_FS is not set
1649# CONFIG_NILFS2_FS is not set
1615CONFIG_NETWORK_FILESYSTEMS=y 1650CONFIG_NETWORK_FILESYSTEMS=y
1616CONFIG_NFS_FS=y 1651CONFIG_NFS_FS=y
1617CONFIG_NFS_V3=y 1652CONFIG_NFS_V3=y
@@ -1626,7 +1661,6 @@ CONFIG_NFS_COMMON=y
1626CONFIG_SUNRPC=y 1661CONFIG_SUNRPC=y
1627CONFIG_SUNRPC_GSS=y 1662CONFIG_SUNRPC_GSS=y
1628CONFIG_SUNRPC_XPRT_RDMA=m 1663CONFIG_SUNRPC_XPRT_RDMA=m
1629# CONFIG_SUNRPC_REGISTER_V4 is not set
1630CONFIG_RPCSEC_GSS_KRB5=y 1664CONFIG_RPCSEC_GSS_KRB5=y
1631CONFIG_RPCSEC_GSS_SPKM3=m 1665CONFIG_RPCSEC_GSS_SPKM3=m
1632# CONFIG_SMB_FS is not set 1666# CONFIG_SMB_FS is not set
@@ -1637,6 +1671,7 @@ CONFIG_CIFS=m
1637CONFIG_CIFS_XATTR=y 1671CONFIG_CIFS_XATTR=y
1638CONFIG_CIFS_POSIX=y 1672CONFIG_CIFS_POSIX=y
1639# CONFIG_CIFS_DEBUG2 is not set 1673# CONFIG_CIFS_DEBUG2 is not set
1674# CONFIG_CIFS_DFS_UPCALL is not set
1640# CONFIG_CIFS_EXPERIMENTAL is not set 1675# CONFIG_CIFS_EXPERIMENTAL is not set
1641# CONFIG_NCP_FS is not set 1676# CONFIG_NCP_FS is not set
1642# CONFIG_CODA_FS is not set 1677# CONFIG_CODA_FS is not set
@@ -1704,6 +1739,7 @@ CONFIG_NLS_KOI8_R=m
1704CONFIG_NLS_KOI8_U=m 1739CONFIG_NLS_KOI8_U=m
1705CONFIG_NLS_UTF8=m 1740CONFIG_NLS_UTF8=m
1706# CONFIG_DLM is not set 1741# CONFIG_DLM is not set
1742CONFIG_BINARY_PRINTF=y
1707 1743
1708# 1744#
1709# Library routines 1745# Library routines
@@ -1719,12 +1755,15 @@ CONFIG_CRC32=y
1719CONFIG_LIBCRC32C=m 1755CONFIG_LIBCRC32C=m
1720CONFIG_ZLIB_INFLATE=y 1756CONFIG_ZLIB_INFLATE=y
1721CONFIG_ZLIB_DEFLATE=y 1757CONFIG_ZLIB_DEFLATE=y
1722CONFIG_PLIST=y 1758CONFIG_DECOMPRESS_GZIP=y
1759CONFIG_DECOMPRESS_BZIP2=y
1760CONFIG_DECOMPRESS_LZMA=y
1723CONFIG_HAS_IOMEM=y 1761CONFIG_HAS_IOMEM=y
1724CONFIG_HAS_IOPORT=y 1762CONFIG_HAS_IOPORT=y
1725CONFIG_HAS_DMA=y 1763CONFIG_HAS_DMA=y
1726CONFIG_CHECK_SIGNATURE=y 1764CONFIG_CHECK_SIGNATURE=y
1727CONFIG_HAVE_LMB=y 1765CONFIG_HAVE_LMB=y
1766CONFIG_NLATTR=y
1728 1767
1729# 1768#
1730# Kernel hacking 1769# Kernel hacking
@@ -1742,6 +1781,9 @@ CONFIG_DEBUG_KERNEL=y
1742CONFIG_DETECT_SOFTLOCKUP=y 1781CONFIG_DETECT_SOFTLOCKUP=y
1743# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1782# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1744CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1783CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1784CONFIG_DETECT_HUNG_TASK=y
1785# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1786CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1745CONFIG_SCHED_DEBUG=y 1787CONFIG_SCHED_DEBUG=y
1746# CONFIG_SCHEDSTATS is not set 1788# CONFIG_SCHEDSTATS is not set
1747# CONFIG_TIMER_STATS is not set 1789# CONFIG_TIMER_STATS is not set
@@ -1775,12 +1817,15 @@ CONFIG_DEBUG_MEMORY_INIT=y
1775# CONFIG_FAULT_INJECTION is not set 1817# CONFIG_FAULT_INJECTION is not set
1776# CONFIG_LATENCYTOP is not set 1818# CONFIG_LATENCYTOP is not set
1777CONFIG_SYSCTL_SYSCALL_CHECK=y 1819CONFIG_SYSCTL_SYSCALL_CHECK=y
1820# CONFIG_DEBUG_PAGEALLOC is not set
1778CONFIG_NOP_TRACER=y 1821CONFIG_NOP_TRACER=y
1779CONFIG_HAVE_FUNCTION_TRACER=y 1822CONFIG_HAVE_FUNCTION_TRACER=y
1823CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1780CONFIG_HAVE_DYNAMIC_FTRACE=y 1824CONFIG_HAVE_DYNAMIC_FTRACE=y
1781CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1825CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1782CONFIG_RING_BUFFER=y 1826CONFIG_RING_BUFFER=y
1783CONFIG_TRACING=y 1827CONFIG_TRACING=y
1828CONFIG_TRACING_SUPPORT=y
1784 1829
1785# 1830#
1786# Tracers 1831# Tracers
@@ -1788,18 +1833,21 @@ CONFIG_TRACING=y
1788# CONFIG_FUNCTION_TRACER is not set 1833# CONFIG_FUNCTION_TRACER is not set
1789# CONFIG_SCHED_TRACER is not set 1834# CONFIG_SCHED_TRACER is not set
1790# CONFIG_CONTEXT_SWITCH_TRACER is not set 1835# CONFIG_CONTEXT_SWITCH_TRACER is not set
1836# CONFIG_EVENT_TRACER is not set
1791# CONFIG_BOOT_TRACER is not set 1837# CONFIG_BOOT_TRACER is not set
1792# CONFIG_TRACE_BRANCH_PROFILING is not set 1838# CONFIG_TRACE_BRANCH_PROFILING is not set
1793# CONFIG_STACK_TRACER is not set 1839# CONFIG_STACK_TRACER is not set
1840# CONFIG_KMEMTRACE is not set
1841# CONFIG_WORKQUEUE_TRACER is not set
1842# CONFIG_BLK_DEV_IO_TRACE is not set
1794# CONFIG_FTRACE_STARTUP_TEST is not set 1843# CONFIG_FTRACE_STARTUP_TEST is not set
1795# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1844# CONFIG_DYNAMIC_DEBUG is not set
1796# CONFIG_SAMPLES is not set 1845# CONFIG_SAMPLES is not set
1797CONFIG_HAVE_ARCH_KGDB=y 1846CONFIG_HAVE_ARCH_KGDB=y
1798# CONFIG_KGDB is not set 1847# CONFIG_KGDB is not set
1799CONFIG_PRINT_STACK_DEPTH=64 1848CONFIG_PRINT_STACK_DEPTH=64
1800CONFIG_DEBUG_STACKOVERFLOW=y 1849CONFIG_DEBUG_STACKOVERFLOW=y
1801CONFIG_DEBUG_STACK_USAGE=y 1850CONFIG_DEBUG_STACK_USAGE=y
1802# CONFIG_DEBUG_PAGEALLOC is not set
1803# CONFIG_CODE_PATCHING_SELFTEST is not set 1851# CONFIG_CODE_PATCHING_SELFTEST is not set
1804# CONFIG_FTR_FIXUP_SELFTEST is not set 1852# CONFIG_FTR_FIXUP_SELFTEST is not set
1805# CONFIG_MSI_BITMAP_SELFTEST is not set 1853# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1830,6 +1878,7 @@ CONFIG_SECURITY_SELINUX_DEVELOP=y
1830CONFIG_SECURITY_SELINUX_AVC_STATS=y 1878CONFIG_SECURITY_SELINUX_AVC_STATS=y
1831CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 1879CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
1832# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set 1880# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
1881# CONFIG_SECURITY_TOMOYO is not set
1833CONFIG_CRYPTO=y 1882CONFIG_CRYPTO=y
1834 1883
1835# 1884#
@@ -1845,10 +1894,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1845CONFIG_CRYPTO_HASH=y 1894CONFIG_CRYPTO_HASH=y
1846CONFIG_CRYPTO_HASH2=y 1895CONFIG_CRYPTO_HASH2=y
1847CONFIG_CRYPTO_RNG2=y 1896CONFIG_CRYPTO_RNG2=y
1897CONFIG_CRYPTO_PCOMP=y
1848CONFIG_CRYPTO_MANAGER=y 1898CONFIG_CRYPTO_MANAGER=y
1849CONFIG_CRYPTO_MANAGER2=y 1899CONFIG_CRYPTO_MANAGER2=y
1850# CONFIG_CRYPTO_GF128MUL is not set 1900# CONFIG_CRYPTO_GF128MUL is not set
1851CONFIG_CRYPTO_NULL=m 1901CONFIG_CRYPTO_NULL=m
1902CONFIG_CRYPTO_WORKQUEUE=y
1852# CONFIG_CRYPTO_CRYPTD is not set 1903# CONFIG_CRYPTO_CRYPTD is not set
1853CONFIG_CRYPTO_AUTHENC=m 1904CONFIG_CRYPTO_AUTHENC=m
1854# CONFIG_CRYPTO_TEST is not set 1905# CONFIG_CRYPTO_TEST is not set
@@ -1918,6 +1969,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1918# Compression 1969# Compression
1919# 1970#
1920CONFIG_CRYPTO_DEFLATE=m 1971CONFIG_CRYPTO_DEFLATE=m
1972# CONFIG_CRYPTO_ZLIB is not set
1921# CONFIG_CRYPTO_LZO is not set 1973# CONFIG_CRYPTO_LZO is not set
1922 1974
1923# 1975#
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index add6419c15d9..04915c3a43f6 100644
--- a/arch/powerpc/configs/ep8248e_defconfig
+++ b/arch/powerpc/configs/ep8248e_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:27 2009 4# Wed May 13 17:21:52 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -55,6 +56,7 @@ CONFIG_GENERIC_BUG=y
55# CONFIG_DEFAULT_UIMAGE is not set 56# CONFIG_DEFAULT_UIMAGE is not set
56# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59 61
60# 62#
@@ -71,6 +73,15 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 73# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 74# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76
77#
78# RCU Subsystem
79#
80CONFIG_CLASSIC_RCU=y
81# CONFIG_TREE_RCU is not set
82# CONFIG_PREEMPT_RCU is not set
83# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
74CONFIG_IKCONFIG=y 85CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 86CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 87CONFIG_LOG_BUF_SHIFT=14
@@ -82,20 +93,19 @@ CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_BLK_DEV_INITRD is not set 93# CONFIG_BLK_DEV_INITRD is not set
83CONFIG_CC_OPTIMIZE_FOR_SIZE=y 94CONFIG_CC_OPTIMIZE_FOR_SIZE=y
84CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
96CONFIG_ANON_INODES=y
85CONFIG_EMBEDDED=y 97CONFIG_EMBEDDED=y
86CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
87CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
88CONFIG_KALLSYMS_ALL=y 100CONFIG_KALLSYMS_ALL=y
89CONFIG_KALLSYMS_STRIP_GENERATED=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 101# CONFIG_KALLSYMS_EXTRA_PASS is not set
102# CONFIG_STRIP_ASM_SYMS is not set
91CONFIG_HOTPLUG=y 103CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 104CONFIG_PRINTK=y
93CONFIG_BUG=y 105CONFIG_BUG=y
94CONFIG_ELF_CORE=y 106CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
96CONFIG_BASE_FULL=y 107CONFIG_BASE_FULL=y
97CONFIG_FUTEX=y 108CONFIG_FUTEX=y
98CONFIG_ANON_INODES=y
99CONFIG_EPOLL=y 109CONFIG_EPOLL=y
100CONFIG_SIGNALFD=y 110CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y 111CONFIG_TIMERFD=y
@@ -104,10 +114,12 @@ CONFIG_SHMEM=y
104CONFIG_AIO=y 114CONFIG_AIO=y
105CONFIG_VM_EVENT_COUNTERS=y 115CONFIG_VM_EVENT_COUNTERS=y
106CONFIG_PCI_QUIRKS=y 116CONFIG_PCI_QUIRKS=y
117CONFIG_COMPAT_BRK=y
107CONFIG_SLAB=y 118CONFIG_SLAB=y
108# CONFIG_SLUB is not set 119# CONFIG_SLUB is not set
109# CONFIG_SLOB is not set 120# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set 121# CONFIG_PROFILING is not set
122# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y 123CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
113CONFIG_HAVE_IOREMAP_PROT=y 125CONFIG_HAVE_IOREMAP_PROT=y
@@ -115,6 +127,7 @@ CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 127CONFIG_HAVE_KRETPROBES=y
116CONFIG_HAVE_ARCH_TRACEHOOK=y 128CONFIG_HAVE_ARCH_TRACEHOOK=y
117CONFIG_HAVE_CLK=y 129CONFIG_HAVE_CLK=y
130# CONFIG_SLOW_WORK is not set
118# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
@@ -122,7 +135,6 @@ CONFIG_BASE_SMALL=0
122# CONFIG_MODULES is not set 135# CONFIG_MODULES is not set
123CONFIG_BLOCK=y 136CONFIG_BLOCK=y
124# CONFIG_LBD is not set 137# CONFIG_LBD is not set
125# CONFIG_BLK_DEV_IO_TRACE is not set
126# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
127 139
128# 140#
@@ -137,18 +149,11 @@ CONFIG_DEFAULT_DEADLINE=y
137# CONFIG_DEFAULT_CFQ is not set 149# CONFIG_DEFAULT_CFQ is not set
138# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
139CONFIG_DEFAULT_IOSCHED="deadline" 151CONFIG_DEFAULT_IOSCHED="deadline"
140CONFIG_CLASSIC_RCU=y
141# CONFIG_TREE_RCU is not set
142# CONFIG_PREEMPT_RCU is not set
143# CONFIG_TREE_RCU_TRACE is not set
144# CONFIG_PREEMPT_RCU_TRACE is not set
145# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
146 153
147# 154#
148# Platform support 155# Platform support
149# 156#
150CONFIG_PPC_MULTIPLATFORM=y
151CONFIG_CLASSIC32=y
152# CONFIG_PPC_CHRP is not set 157# CONFIG_PPC_CHRP is not set
153# CONFIG_MPC5121_ADS is not set 158# CONFIG_MPC5121_ADS is not set
154# CONFIG_MPC5121_GENERIC is not set 159# CONFIG_MPC5121_GENERIC is not set
@@ -167,6 +172,8 @@ CONFIG_8272=y
167# CONFIG_PPC_83xx is not set 172# CONFIG_PPC_83xx is not set
168# CONFIG_PPC_86xx is not set 173# CONFIG_PPC_86xx is not set
169# CONFIG_EMBEDDED6xx is not set 174# CONFIG_EMBEDDED6xx is not set
175# CONFIG_AMIGAONE is not set
176CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
170# CONFIG_IPIC is not set 177# CONFIG_IPIC is not set
171# CONFIG_MPIC is not set 178# CONFIG_MPIC is not set
172# CONFIG_MPIC_WEIRD is not set 179# CONFIG_MPIC_WEIRD is not set
@@ -222,9 +229,12 @@ CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
223CONFIG_VIRT_TO_BUS=y 230CONFIG_VIRT_TO_BUS=y
224CONFIG_UNEVICTABLE_LRU=y 231CONFIG_UNEVICTABLE_LRU=y
232CONFIG_HAVE_MLOCK=y
233CONFIG_HAVE_MLOCKED_PAGE_BIT=y
225CONFIG_PPC_4K_PAGES=y 234CONFIG_PPC_4K_PAGES=y
226# CONFIG_PPC_16K_PAGES is not set 235# CONFIG_PPC_16K_PAGES is not set
227# CONFIG_PPC_64K_PAGES is not set 236# CONFIG_PPC_64K_PAGES is not set
237# CONFIG_PPC_256K_PAGES is not set
228CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 239CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
@@ -250,6 +260,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
250# CONFIG_PCI_LEGACY is not set 260# CONFIG_PCI_LEGACY is not set
251# CONFIG_PCI_DEBUG is not set 261# CONFIG_PCI_DEBUG is not set
252# CONFIG_PCI_STUB is not set 262# CONFIG_PCI_STUB is not set
263# CONFIG_PCI_IOV is not set
253# CONFIG_PCCARD is not set 264# CONFIG_PCCARD is not set
254# CONFIG_HOTPLUG_PCI is not set 265# CONFIG_HOTPLUG_PCI is not set
255# CONFIG_HAS_RAPIDIO is not set 266# CONFIG_HAS_RAPIDIO is not set
@@ -272,7 +283,6 @@ CONFIG_NET=y
272# 283#
273# Networking options 284# Networking options
274# 285#
275CONFIG_COMPAT_NET_DEV_OPS=y
276CONFIG_PACKET=y 286CONFIG_PACKET=y
277# CONFIG_PACKET_MMAP is not set 287# CONFIG_PACKET_MMAP is not set
278CONFIG_UNIX=y 288CONFIG_UNIX=y
@@ -353,6 +363,7 @@ CONFIG_NETFILTER_ADVANCED=y
353# CONFIG_LLC2 is not set 363# CONFIG_LLC2 is not set
354# CONFIG_IPX is not set 364# CONFIG_IPX is not set
355# CONFIG_ATALK is not set 365# CONFIG_ATALK is not set
366# CONFIG_PHONET is not set
356# CONFIG_NET_SCHED is not set 367# CONFIG_NET_SCHED is not set
357# CONFIG_DCB is not set 368# CONFIG_DCB is not set
358 369
@@ -364,7 +375,6 @@ CONFIG_NETFILTER_ADVANCED=y
364# CONFIG_CAN is not set 375# CONFIG_CAN is not set
365# CONFIG_IRDA is not set 376# CONFIG_IRDA is not set
366# CONFIG_BT is not set 377# CONFIG_BT is not set
367# CONFIG_PHONET is not set
368CONFIG_WIRELESS=y 378CONFIG_WIRELESS=y
369# CONFIG_CFG80211 is not set 379# CONFIG_CFG80211 is not set
370CONFIG_WIRELESS_OLD_REGULATORY=y 380CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -468,7 +478,6 @@ CONFIG_MTD_PHYSMAP_OF=y
468# LPDDR flash memory drivers 478# LPDDR flash memory drivers
469# 479#
470# CONFIG_MTD_LPDDR is not set 480# CONFIG_MTD_LPDDR is not set
471# CONFIG_MTD_QINFO_PROBE is not set
472 481
473# 482#
474# UBI - Unsorted block images 483# UBI - Unsorted block images
@@ -517,6 +526,7 @@ CONFIG_HAVE_IDE=y
517# CONFIG_I2O is not set 526# CONFIG_I2O is not set
518# CONFIG_MACINTOSH_DRIVERS is not set 527# CONFIG_MACINTOSH_DRIVERS is not set
519CONFIG_NETDEVICES=y 528CONFIG_NETDEVICES=y
529CONFIG_COMPAT_NET_DEV_OPS=y
520# CONFIG_DUMMY is not set 530# CONFIG_DUMMY is not set
521# CONFIG_BONDING is not set 531# CONFIG_BONDING is not set
522# CONFIG_EQUALIZER is not set 532# CONFIG_EQUALIZER is not set
@@ -550,6 +560,8 @@ CONFIG_MII=y
550# CONFIG_SUNGEM is not set 560# CONFIG_SUNGEM is not set
551# CONFIG_CASSINI is not set 561# CONFIG_CASSINI is not set
552# CONFIG_NET_VENDOR_3COM is not set 562# CONFIG_NET_VENDOR_3COM is not set
563# CONFIG_ETHOC is not set
564# CONFIG_DNET is not set
553# CONFIG_NET_TULIP is not set 565# CONFIG_NET_TULIP is not set
554# CONFIG_HP100 is not set 566# CONFIG_HP100 is not set
555# CONFIG_IBM_NEW_EMAC_ZMII is not set 567# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -572,6 +584,7 @@ CONFIG_NETDEV_1000=y
572# CONFIG_E1000 is not set 584# CONFIG_E1000 is not set
573# CONFIG_E1000E is not set 585# CONFIG_E1000E is not set
574# CONFIG_IGB is not set 586# CONFIG_IGB is not set
587# CONFIG_IGBVF is not set
575# CONFIG_NS83820 is not set 588# CONFIG_NS83820 is not set
576# CONFIG_HAMACHI is not set 589# CONFIG_HAMACHI is not set
577# CONFIG_R8169 is not set 590# CONFIG_R8169 is not set
@@ -581,8 +594,8 @@ CONFIG_NETDEV_1000=y
581# CONFIG_VIA_VELOCITY is not set 594# CONFIG_VIA_VELOCITY is not set
582# CONFIG_TIGON3 is not set 595# CONFIG_TIGON3 is not set
583# CONFIG_BNX2 is not set 596# CONFIG_BNX2 is not set
597# CONFIG_FSL_PQ_MDIO is not set
584# CONFIG_GIANFAR is not set 598# CONFIG_GIANFAR is not set
585# CONFIG_MV643XX_ETH is not set
586# CONFIG_QLA3XXX is not set 599# CONFIG_QLA3XXX is not set
587# CONFIG_ATL1 is not set 600# CONFIG_ATL1 is not set
588# CONFIG_JME is not set 601# CONFIG_JME is not set
@@ -594,6 +607,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
594# CONFIG_IXGBE is not set 607# CONFIG_IXGBE is not set
595# CONFIG_IXGB is not set 608# CONFIG_IXGB is not set
596# CONFIG_S2IO is not set 609# CONFIG_S2IO is not set
610# CONFIG_VXGE is not set
597# CONFIG_MYRI10GE is not set 611# CONFIG_MYRI10GE is not set
598# CONFIG_NETXEN_NIC is not set 612# CONFIG_NETXEN_NIC is not set
599# CONFIG_NIU is not set 613# CONFIG_NIU is not set
@@ -603,6 +617,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
603# CONFIG_BNX2X is not set 617# CONFIG_BNX2X is not set
604# CONFIG_QLGE is not set 618# CONFIG_QLGE is not set
605# CONFIG_SFC is not set 619# CONFIG_SFC is not set
620# CONFIG_BE2NET is not set
606# CONFIG_TR is not set 621# CONFIG_TR is not set
607 622
608# 623#
@@ -610,7 +625,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
610# 625#
611# CONFIG_WLAN_PRE80211 is not set 626# CONFIG_WLAN_PRE80211 is not set
612# CONFIG_WLAN_80211 is not set 627# CONFIG_WLAN_80211 is not set
613# CONFIG_IWLWIFI_LEDS is not set
614 628
615# 629#
616# Enable WiMAX (Networking options) to see the WiMAX drivers 630# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -662,6 +676,7 @@ CONFIG_LEGACY_PTYS=y
662CONFIG_LEGACY_PTY_COUNT=256 676CONFIG_LEGACY_PTY_COUNT=256
663# CONFIG_IPMI_HANDLER is not set 677# CONFIG_IPMI_HANDLER is not set
664CONFIG_HW_RANDOM=y 678CONFIG_HW_RANDOM=y
679# CONFIG_HW_RANDOM_TIMERIOMEM is not set
665# CONFIG_NVRAM is not set 680# CONFIG_NVRAM is not set
666# CONFIG_GEN_RTC is not set 681# CONFIG_GEN_RTC is not set
667# CONFIG_R3964 is not set 682# CONFIG_R3964 is not set
@@ -751,8 +766,10 @@ CONFIG_DAB=y
751# CONFIG_NEW_LEDS is not set 766# CONFIG_NEW_LEDS is not set
752# CONFIG_ACCESSIBILITY is not set 767# CONFIG_ACCESSIBILITY is not set
753# CONFIG_INFINIBAND is not set 768# CONFIG_INFINIBAND is not set
769# CONFIG_EDAC is not set
754# CONFIG_RTC_CLASS is not set 770# CONFIG_RTC_CLASS is not set
755# CONFIG_DMADEVICES is not set 771# CONFIG_DMADEVICES is not set
772# CONFIG_AUXDISPLAY is not set
756# CONFIG_UIO is not set 773# CONFIG_UIO is not set
757# CONFIG_STAGING is not set 774# CONFIG_STAGING is not set
758 775
@@ -763,6 +780,7 @@ CONFIG_EXT2_FS=y
763# CONFIG_EXT2_FS_XATTR is not set 780# CONFIG_EXT2_FS_XATTR is not set
764# CONFIG_EXT2_FS_XIP is not set 781# CONFIG_EXT2_FS_XIP is not set
765CONFIG_EXT3_FS=y 782CONFIG_EXT3_FS=y
783# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
766# CONFIG_EXT3_FS_XATTR is not set 784# CONFIG_EXT3_FS_XATTR is not set
767# CONFIG_EXT4_FS is not set 785# CONFIG_EXT4_FS is not set
768CONFIG_JBD=y 786CONFIG_JBD=y
@@ -781,6 +799,10 @@ CONFIG_AUTOFS4_FS=y
781# CONFIG_FUSE_FS is not set 799# CONFIG_FUSE_FS is not set
782 800
783# 801#
802# Caches
803#
804
805#
784# CD-ROM/DVD Filesystems 806# CD-ROM/DVD Filesystems
785# 807#
786# CONFIG_ISO9660_FS is not set 808# CONFIG_ISO9660_FS is not set
@@ -894,6 +916,7 @@ CONFIG_NLS_ISO8859_1=y
894# CONFIG_NLS_KOI8_R is not set 916# CONFIG_NLS_KOI8_R is not set
895# CONFIG_NLS_KOI8_U is not set 917# CONFIG_NLS_KOI8_U is not set
896CONFIG_NLS_UTF8=y 918CONFIG_NLS_UTF8=y
919# CONFIG_BINARY_PRINTF is not set
897 920
898# 921#
899# Library routines 922# Library routines
@@ -907,11 +930,11 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
907# CONFIG_CRC7 is not set 930# CONFIG_CRC7 is not set
908# CONFIG_LIBCRC32C is not set 931# CONFIG_LIBCRC32C is not set
909CONFIG_ZLIB_INFLATE=y 932CONFIG_ZLIB_INFLATE=y
910CONFIG_PLIST=y
911CONFIG_HAS_IOMEM=y 933CONFIG_HAS_IOMEM=y
912CONFIG_HAS_IOPORT=y 934CONFIG_HAS_IOPORT=y
913CONFIG_HAS_DMA=y 935CONFIG_HAS_DMA=y
914CONFIG_HAVE_LMB=y 936CONFIG_HAVE_LMB=y
937CONFIG_NLATTR=y
915 938
916# 939#
917# Kernel hacking 940# Kernel hacking
@@ -927,6 +950,7 @@ CONFIG_MAGIC_SYSRQ=y
927CONFIG_DEBUG_KERNEL=y 950CONFIG_DEBUG_KERNEL=y
928# CONFIG_DEBUG_SHIRQ is not set 951# CONFIG_DEBUG_SHIRQ is not set
929# CONFIG_DETECT_SOFTLOCKUP is not set 952# CONFIG_DETECT_SOFTLOCKUP is not set
953# CONFIG_DETECT_HUNG_TASK is not set
930# CONFIG_SCHED_DEBUG is not set 954# CONFIG_SCHED_DEBUG is not set
931# CONFIG_SCHEDSTATS is not set 955# CONFIG_SCHEDSTATS is not set
932# CONFIG_TIMER_STATS is not set 956# CONFIG_TIMER_STATS is not set
@@ -955,9 +979,12 @@ CONFIG_DEBUG_INFO=y
955# CONFIG_FAULT_INJECTION is not set 979# CONFIG_FAULT_INJECTION is not set
956# CONFIG_LATENCYTOP is not set 980# CONFIG_LATENCYTOP is not set
957CONFIG_SYSCTL_SYSCALL_CHECK=y 981CONFIG_SYSCTL_SYSCALL_CHECK=y
982# CONFIG_DEBUG_PAGEALLOC is not set
958CONFIG_HAVE_FUNCTION_TRACER=y 983CONFIG_HAVE_FUNCTION_TRACER=y
984CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y 985CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 986CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
987CONFIG_TRACING_SUPPORT=y
961 988
962# 989#
963# Tracers 990# Tracers
@@ -965,16 +992,18 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
965# CONFIG_FUNCTION_TRACER is not set 992# CONFIG_FUNCTION_TRACER is not set
966# CONFIG_SCHED_TRACER is not set 993# CONFIG_SCHED_TRACER is not set
967# CONFIG_CONTEXT_SWITCH_TRACER is not set 994# CONFIG_CONTEXT_SWITCH_TRACER is not set
995# CONFIG_EVENT_TRACER is not set
968# CONFIG_BOOT_TRACER is not set 996# CONFIG_BOOT_TRACER is not set
969# CONFIG_TRACE_BRANCH_PROFILING is not set 997# CONFIG_TRACE_BRANCH_PROFILING is not set
970# CONFIG_STACK_TRACER is not set 998# CONFIG_STACK_TRACER is not set
971# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 999# CONFIG_KMEMTRACE is not set
1000# CONFIG_WORKQUEUE_TRACER is not set
1001# CONFIG_BLK_DEV_IO_TRACE is not set
972# CONFIG_SAMPLES is not set 1002# CONFIG_SAMPLES is not set
973CONFIG_HAVE_ARCH_KGDB=y 1003CONFIG_HAVE_ARCH_KGDB=y
974CONFIG_PRINT_STACK_DEPTH=64 1004CONFIG_PRINT_STACK_DEPTH=64
975# CONFIG_DEBUG_STACKOVERFLOW is not set 1005# CONFIG_DEBUG_STACKOVERFLOW is not set
976# CONFIG_DEBUG_STACK_USAGE is not set 1006# CONFIG_DEBUG_STACK_USAGE is not set
977# CONFIG_DEBUG_PAGEALLOC is not set
978# CONFIG_CODE_PATCHING_SELFTEST is not set 1007# CONFIG_CODE_PATCHING_SELFTEST is not set
979# CONFIG_FTR_FIXUP_SELFTEST is not set 1008# CONFIG_FTR_FIXUP_SELFTEST is not set
980# CONFIG_MSI_BITMAP_SELFTEST is not set 1009# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1005,9 +1034,11 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1005CONFIG_CRYPTO_HASH=y 1034CONFIG_CRYPTO_HASH=y
1006CONFIG_CRYPTO_HASH2=y 1035CONFIG_CRYPTO_HASH2=y
1007CONFIG_CRYPTO_RNG2=y 1036CONFIG_CRYPTO_RNG2=y
1037CONFIG_CRYPTO_PCOMP=y
1008CONFIG_CRYPTO_MANAGER=y 1038CONFIG_CRYPTO_MANAGER=y
1009CONFIG_CRYPTO_MANAGER2=y 1039CONFIG_CRYPTO_MANAGER2=y
1010# CONFIG_CRYPTO_NULL is not set 1040# CONFIG_CRYPTO_NULL is not set
1041CONFIG_CRYPTO_WORKQUEUE=y
1011# CONFIG_CRYPTO_CRYPTD is not set 1042# CONFIG_CRYPTO_CRYPTD is not set
1012# CONFIG_CRYPTO_AUTHENC is not set 1043# CONFIG_CRYPTO_AUTHENC is not set
1013 1044
@@ -1071,6 +1102,7 @@ CONFIG_CRYPTO_DES=y
1071# Compression 1102# Compression
1072# 1103#
1073# CONFIG_CRYPTO_DEFLATE is not set 1104# CONFIG_CRYPTO_DEFLATE is not set
1105# CONFIG_CRYPTO_ZLIB is not set
1074# CONFIG_CRYPTO_LZO is not set 1106# CONFIG_CRYPTO_LZO is not set
1075 1107
1076# 1108#
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index b2fdfd9e183c..c2a439595f4d 100644
--- a/arch/powerpc/configs/ep88xc_defconfig
+++ b/arch/powerpc/configs/ep88xc_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:28 2009 4# Wed May 13 17:21:53 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -52,6 +52,7 @@ CONFIG_GENERIC_BUG=y
52# CONFIG_DEFAULT_UIMAGE is not set 52# CONFIG_DEFAULT_UIMAGE is not set
53# CONFIG_PPC_DCR_NATIVE is not set 53# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 54# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
56 57
57# 58#
@@ -69,6 +70,15 @@ CONFIG_SYSVIPC_SYSCTL=y
69# CONFIG_BSD_PROCESS_ACCT is not set 70# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
73
74#
75# RCU Subsystem
76#
77CONFIG_CLASSIC_RCU=y
78# CONFIG_TREE_RCU is not set
79# CONFIG_PREEMPT_RCU is not set
80# CONFIG_TREE_RCU_TRACE is not set
81# CONFIG_PREEMPT_RCU_TRACE is not set
72# CONFIG_IKCONFIG is not set 82# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 83CONFIG_LOG_BUF_SHIFT=14
74CONFIG_GROUP_SCHED=y 84CONFIG_GROUP_SCHED=y
@@ -84,19 +94,19 @@ CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_BLK_DEV_INITRD is not set 94# CONFIG_BLK_DEV_INITRD is not set
85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 95# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
86CONFIG_SYSCTL=y 96CONFIG_SYSCTL=y
97CONFIG_ANON_INODES=y
87CONFIG_EMBEDDED=y 98CONFIG_EMBEDDED=y
88# CONFIG_SYSCTL_SYSCALL is not set 99# CONFIG_SYSCTL_SYSCALL is not set
89CONFIG_KALLSYMS=y 100CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_ALL is not set 101# CONFIG_KALLSYMS_ALL is not set
91# CONFIG_KALLSYMS_EXTRA_PASS is not set 102# CONFIG_KALLSYMS_EXTRA_PASS is not set
103# CONFIG_STRIP_ASM_SYMS is not set
92CONFIG_HOTPLUG=y 104CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 105CONFIG_PRINTK=y
94CONFIG_BUG=y 106CONFIG_BUG=y
95# CONFIG_ELF_CORE is not set 107# CONFIG_ELF_CORE is not set
96CONFIG_COMPAT_BRK=y
97# CONFIG_BASE_FULL is not set 108# CONFIG_BASE_FULL is not set
98# CONFIG_FUTEX is not set 109# CONFIG_FUTEX is not set
99CONFIG_ANON_INODES=y
100CONFIG_EPOLL=y 110CONFIG_EPOLL=y
101CONFIG_SIGNALFD=y 111CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 112CONFIG_TIMERFD=y
@@ -105,10 +115,12 @@ CONFIG_SHMEM=y
105CONFIG_AIO=y 115CONFIG_AIO=y
106# CONFIG_VM_EVENT_COUNTERS is not set 116# CONFIG_VM_EVENT_COUNTERS is not set
107CONFIG_SLUB_DEBUG=y 117CONFIG_SLUB_DEBUG=y
118CONFIG_COMPAT_BRK=y
108# CONFIG_SLAB is not set 119# CONFIG_SLAB is not set
109CONFIG_SLUB=y 120CONFIG_SLUB=y
110# CONFIG_SLOB is not set 121# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set 122# CONFIG_PROFILING is not set
123# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 126CONFIG_HAVE_IOREMAP_PROT=y
@@ -116,13 +128,13 @@ CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 128CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 129CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y 130CONFIG_HAVE_CLK=y
131# CONFIG_SLOW_WORK is not set
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
121CONFIG_BASE_SMALL=1 134CONFIG_BASE_SMALL=1
122# CONFIG_MODULES is not set 135# CONFIG_MODULES is not set
123CONFIG_BLOCK=y 136CONFIG_BLOCK=y
124# CONFIG_LBD is not set 137# CONFIG_LBD is not set
125# CONFIG_BLK_DEV_IO_TRACE is not set
126# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
127# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
128 140
@@ -138,11 +150,6 @@ CONFIG_DEFAULT_DEADLINE=y
138# CONFIG_DEFAULT_CFQ is not set 150# CONFIG_DEFAULT_CFQ is not set
139# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
140CONFIG_DEFAULT_IOSCHED="deadline" 152CONFIG_DEFAULT_IOSCHED="deadline"
141CONFIG_CLASSIC_RCU=y
142# CONFIG_TREE_RCU is not set
143# CONFIG_PREEMPT_RCU is not set
144# CONFIG_TREE_RCU_TRACE is not set
145# CONFIG_PREEMPT_RCU_TRACE is not set
146# CONFIG_FREEZER is not set 153# CONFIG_FREEZER is not set
147 154
148# 155#
@@ -233,9 +240,12 @@ CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 240CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 241CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 242CONFIG_UNEVICTABLE_LRU=y
243CONFIG_HAVE_MLOCK=y
244CONFIG_HAVE_MLOCKED_PAGE_BIT=y
236CONFIG_PPC_4K_PAGES=y 245CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set 246# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set 247# CONFIG_PPC_64K_PAGES is not set
248# CONFIG_PPC_256K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 250CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -270,14 +280,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
270CONFIG_KERNEL_START=0xc0000000 280CONFIG_KERNEL_START=0xc0000000
271CONFIG_PHYSICAL_START=0x00000000 281CONFIG_PHYSICAL_START=0x00000000
272CONFIG_TASK_SIZE=0x80000000 282CONFIG_TASK_SIZE=0x80000000
273CONFIG_CONSISTENT_START=0xfd000000
274CONFIG_CONSISTENT_SIZE=0x00200000
275CONFIG_NET=y 283CONFIG_NET=y
276 284
277# 285#
278# Networking options 286# Networking options
279# 287#
280CONFIG_COMPAT_NET_DEV_OPS=y
281CONFIG_PACKET=y 288CONFIG_PACKET=y
282# CONFIG_PACKET_MMAP is not set 289# CONFIG_PACKET_MMAP is not set
283CONFIG_UNIX=y 290CONFIG_UNIX=y
@@ -328,6 +335,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
328# CONFIG_LAPB is not set 335# CONFIG_LAPB is not set
329# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
330# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
338# CONFIG_PHONET is not set
331# CONFIG_NET_SCHED is not set 339# CONFIG_NET_SCHED is not set
332# CONFIG_DCB is not set 340# CONFIG_DCB is not set
333 341
@@ -340,7 +348,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_IRDA is not set 348# CONFIG_IRDA is not set
341# CONFIG_BT is not set 349# CONFIG_BT is not set
342# CONFIG_AF_RXRPC is not set 350# CONFIG_AF_RXRPC is not set
343# CONFIG_PHONET is not set
344CONFIG_WIRELESS=y 351CONFIG_WIRELESS=y
345# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y 353CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -439,7 +446,6 @@ CONFIG_MTD_PHYSMAP_OF=y
439# LPDDR flash memory drivers 446# LPDDR flash memory drivers
440# 447#
441# CONFIG_MTD_LPDDR is not set 448# CONFIG_MTD_LPDDR is not set
442# CONFIG_MTD_QINFO_PROBE is not set
443 449
444# 450#
445# UBI - Unsorted block images 451# UBI - Unsorted block images
@@ -463,6 +469,7 @@ CONFIG_HAVE_IDE=y
463# CONFIG_MD is not set 469# CONFIG_MD is not set
464# CONFIG_MACINTOSH_DRIVERS is not set 470# CONFIG_MACINTOSH_DRIVERS is not set
465CONFIG_NETDEVICES=y 471CONFIG_NETDEVICES=y
472CONFIG_COMPAT_NET_DEV_OPS=y
466# CONFIG_DUMMY is not set 473# CONFIG_DUMMY is not set
467# CONFIG_BONDING is not set 474# CONFIG_BONDING is not set
468# CONFIG_MACVLAN is not set 475# CONFIG_MACVLAN is not set
@@ -491,6 +498,8 @@ CONFIG_LXT_PHY=y
491# CONFIG_MDIO_BITBANG is not set 498# CONFIG_MDIO_BITBANG is not set
492CONFIG_NET_ETHERNET=y 499CONFIG_NET_ETHERNET=y
493CONFIG_MII=y 500CONFIG_MII=y
501# CONFIG_ETHOC is not set
502# CONFIG_DNET is not set
494# CONFIG_IBM_NEW_EMAC_ZMII is not set 503# CONFIG_IBM_NEW_EMAC_ZMII is not set
495# CONFIG_IBM_NEW_EMAC_RGMII is not set 504# CONFIG_IBM_NEW_EMAC_RGMII is not set
496# CONFIG_IBM_NEW_EMAC_TAH is not set 505# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -511,7 +520,6 @@ CONFIG_FS_ENET_MDIO_FEC=y
511# 520#
512# CONFIG_WLAN_PRE80211 is not set 521# CONFIG_WLAN_PRE80211 is not set
513# CONFIG_WLAN_80211 is not set 522# CONFIG_WLAN_80211 is not set
514# CONFIG_IWLWIFI_LEDS is not set
515 523
516# 524#
517# Enable WiMAX (Networking options) to see the WiMAX drivers 525# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -562,6 +570,7 @@ CONFIG_UNIX98_PTYS=y
562# CONFIG_HVC_UDBG is not set 570# CONFIG_HVC_UDBG is not set
563# CONFIG_IPMI_HANDLER is not set 571# CONFIG_IPMI_HANDLER is not set
564CONFIG_HW_RANDOM=y 572CONFIG_HW_RANDOM=y
573# CONFIG_HW_RANDOM_TIMERIOMEM is not set
565# CONFIG_NVRAM is not set 574# CONFIG_NVRAM is not set
566CONFIG_GEN_RTC=y 575CONFIG_GEN_RTC=y
567# CONFIG_GEN_RTC_X is not set 576# CONFIG_GEN_RTC_X is not set
@@ -631,6 +640,7 @@ CONFIG_DAB=y
631# CONFIG_EDAC is not set 640# CONFIG_EDAC is not set
632# CONFIG_RTC_CLASS is not set 641# CONFIG_RTC_CLASS is not set
633# CONFIG_DMADEVICES is not set 642# CONFIG_DMADEVICES is not set
643# CONFIG_AUXDISPLAY is not set
634# CONFIG_UIO is not set 644# CONFIG_UIO is not set
635# CONFIG_STAGING is not set 645# CONFIG_STAGING is not set
636 646
@@ -655,6 +665,11 @@ CONFIG_FILE_LOCKING=y
655# CONFIG_FUSE_FS is not set 665# CONFIG_FUSE_FS is not set
656 666
657# 667#
668# Caches
669#
670# CONFIG_FSCACHE is not set
671
672#
658# CD-ROM/DVD Filesystems 673# CD-ROM/DVD Filesystems
659# 674#
660# CONFIG_ISO9660_FS is not set 675# CONFIG_ISO9660_FS is not set
@@ -698,6 +713,7 @@ CONFIG_CRAMFS=y
698# CONFIG_ROMFS_FS is not set 713# CONFIG_ROMFS_FS is not set
699# CONFIG_SYSV_FS is not set 714# CONFIG_SYSV_FS is not set
700# CONFIG_UFS_FS is not set 715# CONFIG_UFS_FS is not set
716# CONFIG_NILFS2_FS is not set
701CONFIG_NETWORK_FILESYSTEMS=y 717CONFIG_NETWORK_FILESYSTEMS=y
702CONFIG_NFS_FS=y 718CONFIG_NFS_FS=y
703CONFIG_NFS_V3=y 719CONFIG_NFS_V3=y
@@ -709,7 +725,6 @@ CONFIG_LOCKD=y
709CONFIG_LOCKD_V4=y 725CONFIG_LOCKD_V4=y
710CONFIG_NFS_COMMON=y 726CONFIG_NFS_COMMON=y
711CONFIG_SUNRPC=y 727CONFIG_SUNRPC=y
712# CONFIG_SUNRPC_REGISTER_V4 is not set
713# CONFIG_RPCSEC_GSS_KRB5 is not set 728# CONFIG_RPCSEC_GSS_KRB5 is not set
714# CONFIG_RPCSEC_GSS_SPKM3 is not set 729# CONFIG_RPCSEC_GSS_SPKM3 is not set
715# CONFIG_SMB_FS is not set 730# CONFIG_SMB_FS is not set
@@ -741,6 +756,7 @@ CONFIG_MSDOS_PARTITION=y
741# CONFIG_SYSV68_PARTITION is not set 756# CONFIG_SYSV68_PARTITION is not set
742# CONFIG_NLS is not set 757# CONFIG_NLS is not set
743# CONFIG_DLM is not set 758# CONFIG_DLM is not set
759# CONFIG_BINARY_PRINTF is not set
744 760
745# 761#
746# Library routines 762# Library routines
@@ -758,6 +774,7 @@ CONFIG_HAS_IOMEM=y
758CONFIG_HAS_IOPORT=y 774CONFIG_HAS_IOPORT=y
759CONFIG_HAS_DMA=y 775CONFIG_HAS_DMA=y
760CONFIG_HAVE_LMB=y 776CONFIG_HAVE_LMB=y
777CONFIG_NLATTR=y
761 778
762# 779#
763# Kernel hacking 780# Kernel hacking
@@ -775,6 +792,9 @@ CONFIG_DEBUG_KERNEL=y
775CONFIG_DETECT_SOFTLOCKUP=y 792CONFIG_DETECT_SOFTLOCKUP=y
776# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 793# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
777CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 794CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
795CONFIG_DETECT_HUNG_TASK=y
796# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
797CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
778CONFIG_SCHED_DEBUG=y 798CONFIG_SCHED_DEBUG=y
779# CONFIG_SCHEDSTATS is not set 799# CONFIG_SCHEDSTATS is not set
780# CONFIG_TIMER_STATS is not set 800# CONFIG_TIMER_STATS is not set
@@ -801,9 +821,12 @@ CONFIG_DEBUG_INFO=y
801# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 821# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
802# CONFIG_FAULT_INJECTION is not set 822# CONFIG_FAULT_INJECTION is not set
803# CONFIG_LATENCYTOP is not set 823# CONFIG_LATENCYTOP is not set
824# CONFIG_DEBUG_PAGEALLOC is not set
804CONFIG_HAVE_FUNCTION_TRACER=y 825CONFIG_HAVE_FUNCTION_TRACER=y
826CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
805CONFIG_HAVE_DYNAMIC_FTRACE=y 827CONFIG_HAVE_DYNAMIC_FTRACE=y
806CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 828CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
829CONFIG_TRACING_SUPPORT=y
807 830
808# 831#
809# Tracers 832# Tracers
@@ -811,17 +834,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
811# CONFIG_FUNCTION_TRACER is not set 834# CONFIG_FUNCTION_TRACER is not set
812# CONFIG_SCHED_TRACER is not set 835# CONFIG_SCHED_TRACER is not set
813# CONFIG_CONTEXT_SWITCH_TRACER is not set 836# CONFIG_CONTEXT_SWITCH_TRACER is not set
837# CONFIG_EVENT_TRACER is not set
814# CONFIG_BOOT_TRACER is not set 838# CONFIG_BOOT_TRACER is not set
815# CONFIG_TRACE_BRANCH_PROFILING is not set 839# CONFIG_TRACE_BRANCH_PROFILING is not set
816# CONFIG_STACK_TRACER is not set 840# CONFIG_STACK_TRACER is not set
817# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 841# CONFIG_KMEMTRACE is not set
842# CONFIG_WORKQUEUE_TRACER is not set
843# CONFIG_BLK_DEV_IO_TRACE is not set
818# CONFIG_SAMPLES is not set 844# CONFIG_SAMPLES is not set
819CONFIG_HAVE_ARCH_KGDB=y 845CONFIG_HAVE_ARCH_KGDB=y
820# CONFIG_KGDB is not set 846# CONFIG_KGDB is not set
821CONFIG_PRINT_STACK_DEPTH=64 847CONFIG_PRINT_STACK_DEPTH=64
822# CONFIG_DEBUG_STACKOVERFLOW is not set 848# CONFIG_DEBUG_STACKOVERFLOW is not set
823# CONFIG_DEBUG_STACK_USAGE is not set 849# CONFIG_DEBUG_STACK_USAGE is not set
824# CONFIG_DEBUG_PAGEALLOC is not set
825# CONFIG_CODE_PATCHING_SELFTEST is not set 850# CONFIG_CODE_PATCHING_SELFTEST is not set
826# CONFIG_FTR_FIXUP_SELFTEST is not set 851# CONFIG_FTR_FIXUP_SELFTEST is not set
827# CONFIG_MSI_BITMAP_SELFTEST is not set 852# CONFIG_MSI_BITMAP_SELFTEST is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 15900dcf0bfa..a4053ab9e244 100644
--- a/arch/powerpc/configs/linkstation_defconfig
+++ b/arch/powerpc/configs/linkstation_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc6 3# Linux kernel version: 2.6.30-rc3
4# Fri Mar 6 00:07:38 2009 4# Wed May 13 17:21:54 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -54,6 +55,7 @@ CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
55# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 60
59# 61#
@@ -68,6 +70,7 @@ CONFIG_SWAP=y
68CONFIG_SYSVIPC=y 70CONFIG_SYSVIPC=y
69CONFIG_SYSVIPC_SYSCTL=y 71CONFIG_SYSVIPC_SYSCTL=y
70CONFIG_POSIX_MQUEUE=y 72CONFIG_POSIX_MQUEUE=y
73CONFIG_POSIX_MQUEUE_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 74# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 75# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
@@ -100,21 +103,24 @@ CONFIG_NAMESPACES=y
100# CONFIG_NET_NS is not set 103# CONFIG_NET_NS is not set
101CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
102CONFIG_INITRAMFS_SOURCE="" 105CONFIG_INITRAMFS_SOURCE=""
106CONFIG_RD_GZIP=y
107CONFIG_RD_BZIP2=y
108CONFIG_RD_LZMA=y
103CONFIG_CC_OPTIMIZE_FOR_SIZE=y 109CONFIG_CC_OPTIMIZE_FOR_SIZE=y
104CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
111CONFIG_ANON_INODES=y
105# CONFIG_EMBEDDED is not set 112# CONFIG_EMBEDDED is not set
106CONFIG_SYSCTL_SYSCALL=y 113CONFIG_SYSCTL_SYSCALL=y
107CONFIG_KALLSYMS=y 114CONFIG_KALLSYMS=y
108# CONFIG_KALLSYMS_ALL is not set 115# CONFIG_KALLSYMS_ALL is not set
109# CONFIG_KALLSYMS_EXTRA_PASS is not set 116# CONFIG_KALLSYMS_EXTRA_PASS is not set
117# CONFIG_STRIP_ASM_SYMS is not set
110CONFIG_HOTPLUG=y 118CONFIG_HOTPLUG=y
111CONFIG_PRINTK=y 119CONFIG_PRINTK=y
112CONFIG_BUG=y 120CONFIG_BUG=y
113CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
114# CONFIG_COMPAT_BRK is not set
115CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
116CONFIG_FUTEX=y 123CONFIG_FUTEX=y
117CONFIG_ANON_INODES=y
118CONFIG_EPOLL=y 124CONFIG_EPOLL=y
119CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
120CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
@@ -124,10 +130,12 @@ CONFIG_AIO=y
124CONFIG_VM_EVENT_COUNTERS=y 130CONFIG_VM_EVENT_COUNTERS=y
125CONFIG_PCI_QUIRKS=y 131CONFIG_PCI_QUIRKS=y
126CONFIG_SLUB_DEBUG=y 132CONFIG_SLUB_DEBUG=y
133# CONFIG_COMPAT_BRK is not set
127# CONFIG_SLAB is not set 134# CONFIG_SLAB is not set
128CONFIG_SLUB=y 135CONFIG_SLUB=y
129# CONFIG_SLOB is not set 136# CONFIG_SLOB is not set
130# CONFIG_PROFILING is not set 137# CONFIG_PROFILING is not set
138# CONFIG_MARKERS is not set
131CONFIG_HAVE_OPROFILE=y 139CONFIG_HAVE_OPROFILE=y
132# CONFIG_KPROBES is not set 140# CONFIG_KPROBES is not set
133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 141CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -135,6 +143,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
135CONFIG_HAVE_KPROBES=y 143CONFIG_HAVE_KPROBES=y
136CONFIG_HAVE_KRETPROBES=y 144CONFIG_HAVE_KRETPROBES=y
137CONFIG_HAVE_ARCH_TRACEHOOK=y 145CONFIG_HAVE_ARCH_TRACEHOOK=y
146# CONFIG_SLOW_WORK is not set
138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
139CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
140CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
@@ -147,7 +156,6 @@ CONFIG_MODULE_UNLOAD=y
147# CONFIG_MODULE_SRCVERSION_ALL is not set 156# CONFIG_MODULE_SRCVERSION_ALL is not set
148CONFIG_BLOCK=y 157CONFIG_BLOCK=y
149# CONFIG_LBD is not set 158# CONFIG_LBD is not set
150# CONFIG_BLK_DEV_IO_TRACE is not set
151# CONFIG_BLK_DEV_BSG is not set 159# CONFIG_BLK_DEV_BSG is not set
152# CONFIG_BLK_DEV_INTEGRITY is not set 160# CONFIG_BLK_DEV_INTEGRITY is not set
153 161
@@ -168,8 +176,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
168# 176#
169# Platform support 177# Platform support
170# 178#
171CONFIG_PPC_MULTIPLATFORM=y
172CONFIG_CLASSIC32=y
173# CONFIG_PPC_CHRP is not set 179# CONFIG_PPC_CHRP is not set
174# CONFIG_MPC5121_ADS is not set 180# CONFIG_MPC5121_ADS is not set
175# CONFIG_MPC5121_GENERIC is not set 181# CONFIG_MPC5121_GENERIC is not set
@@ -191,6 +197,8 @@ CONFIG_LINKSTATION=y
191CONFIG_MPC10X_BRIDGE=y 197CONFIG_MPC10X_BRIDGE=y
192CONFIG_MPC10X_OPENPIC=y 198CONFIG_MPC10X_OPENPIC=y
193# CONFIG_MPC10X_STORE_GATHERING is not set 199# CONFIG_MPC10X_STORE_GATHERING is not set
200# CONFIG_AMIGAONE is not set
201CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
194# CONFIG_IPIC is not set 202# CONFIG_IPIC is not set
195CONFIG_MPIC=y 203CONFIG_MPIC=y
196# CONFIG_MPIC_WEIRD is not set 204# CONFIG_MPIC_WEIRD is not set
@@ -250,9 +258,12 @@ CONFIG_ZONE_DMA_FLAG=1
250CONFIG_BOUNCE=y 258CONFIG_BOUNCE=y
251CONFIG_VIRT_TO_BUS=y 259CONFIG_VIRT_TO_BUS=y
252CONFIG_UNEVICTABLE_LRU=y 260CONFIG_UNEVICTABLE_LRU=y
261CONFIG_HAVE_MLOCK=y
262CONFIG_HAVE_MLOCKED_PAGE_BIT=y
253CONFIG_PPC_4K_PAGES=y 263CONFIG_PPC_4K_PAGES=y
254# CONFIG_PPC_16K_PAGES is not set 264# CONFIG_PPC_16K_PAGES is not set
255# CONFIG_PPC_64K_PAGES is not set 265# CONFIG_PPC_64K_PAGES is not set
266# CONFIG_PPC_256K_PAGES is not set
256CONFIG_FORCE_MAX_ZONEORDER=11 267CONFIG_FORCE_MAX_ZONEORDER=11
257CONFIG_PROC_DEVICETREE=y 268CONFIG_PROC_DEVICETREE=y
258# CONFIG_CMDLINE_BOOL is not set 269# CONFIG_CMDLINE_BOOL is not set
@@ -277,6 +288,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
277# CONFIG_PCI_LEGACY is not set 288# CONFIG_PCI_LEGACY is not set
278# CONFIG_PCI_DEBUG is not set 289# CONFIG_PCI_DEBUG is not set
279# CONFIG_PCI_STUB is not set 290# CONFIG_PCI_STUB is not set
291# CONFIG_PCI_IOV is not set
280# CONFIG_PCCARD is not set 292# CONFIG_PCCARD is not set
281# CONFIG_HOTPLUG_PCI is not set 293# CONFIG_HOTPLUG_PCI is not set
282# CONFIG_HAS_RAPIDIO is not set 294# CONFIG_HAS_RAPIDIO is not set
@@ -299,7 +311,6 @@ CONFIG_NET=y
299# 311#
300# Networking options 312# Networking options
301# 313#
302CONFIG_COMPAT_NET_DEV_OPS=y
303CONFIG_PACKET=y 314CONFIG_PACKET=y
304CONFIG_PACKET_MMAP=y 315CONFIG_PACKET_MMAP=y
305CONFIG_UNIX=y 316CONFIG_UNIX=y
@@ -371,6 +382,7 @@ CONFIG_NETFILTER_XTABLES=m
371# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 382# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
372# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 383# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
373# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 384# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
385CONFIG_NETFILTER_XT_TARGET_HL=m
374# CONFIG_NETFILTER_XT_TARGET_MARK is not set 386# CONFIG_NETFILTER_XT_TARGET_MARK is not set
375# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 387# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
376# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 388# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
@@ -379,6 +391,7 @@ CONFIG_NETFILTER_XTABLES=m
379# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 391# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
380# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 392# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
381# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set 393# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
394# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
382# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set 395# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
383# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set 396# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
384# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set 397# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
@@ -389,6 +402,7 @@ CONFIG_NETFILTER_XTABLES=m
389# CONFIG_NETFILTER_XT_MATCH_ESP is not set 402# CONFIG_NETFILTER_XT_MATCH_ESP is not set
390# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 403# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
391# CONFIG_NETFILTER_XT_MATCH_HELPER is not set 404# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
405# CONFIG_NETFILTER_XT_MATCH_HL is not set
392# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 406# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
393# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 407# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
394# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 408# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -465,6 +479,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
465# CONFIG_LAPB is not set 479# CONFIG_LAPB is not set
466# CONFIG_ECONET is not set 480# CONFIG_ECONET is not set
467# CONFIG_WAN_ROUTER is not set 481# CONFIG_WAN_ROUTER is not set
482# CONFIG_PHONET is not set
468# CONFIG_NET_SCHED is not set 483# CONFIG_NET_SCHED is not set
469# CONFIG_DCB is not set 484# CONFIG_DCB is not set
470 485
@@ -477,7 +492,6 @@ CONFIG_IP_NF_ARP_MANGLE=m
477# CONFIG_IRDA is not set 492# CONFIG_IRDA is not set
478# CONFIG_BT is not set 493# CONFIG_BT is not set
479# CONFIG_AF_RXRPC is not set 494# CONFIG_AF_RXRPC is not set
480# CONFIG_PHONET is not set
481CONFIG_WIRELESS=y 495CONFIG_WIRELESS=y
482# CONFIG_CFG80211 is not set 496# CONFIG_CFG80211 is not set
483CONFIG_WIRELESS_OLD_REGULATORY=y 497CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -625,6 +639,7 @@ CONFIG_MISC_DEVICES=y
625# CONFIG_ICS932S401 is not set 639# CONFIG_ICS932S401 is not set
626# CONFIG_ENCLOSURE_SERVICES is not set 640# CONFIG_ENCLOSURE_SERVICES is not set
627# CONFIG_HP_ILO is not set 641# CONFIG_HP_ILO is not set
642# CONFIG_ISL29003 is not set
628# CONFIG_C2PORT is not set 643# CONFIG_C2PORT is not set
629 644
630# 645#
@@ -690,9 +705,11 @@ CONFIG_SCSI_LOWLEVEL=y
690# CONFIG_MEGARAID_NEWGEN is not set 705# CONFIG_MEGARAID_NEWGEN is not set
691# CONFIG_MEGARAID_LEGACY is not set 706# CONFIG_MEGARAID_LEGACY is not set
692# CONFIG_MEGARAID_SAS is not set 707# CONFIG_MEGARAID_SAS is not set
708# CONFIG_SCSI_MPT2SAS is not set
693# CONFIG_SCSI_HPTIOP is not set 709# CONFIG_SCSI_HPTIOP is not set
694# CONFIG_SCSI_BUSLOGIC is not set 710# CONFIG_SCSI_BUSLOGIC is not set
695# CONFIG_LIBFC is not set 711# CONFIG_LIBFC is not set
712# CONFIG_LIBFCOE is not set
696# CONFIG_FCOE is not set 713# CONFIG_FCOE is not set
697# CONFIG_SCSI_DMX3191D is not set 714# CONFIG_SCSI_DMX3191D is not set
698# CONFIG_SCSI_EATA is not set 715# CONFIG_SCSI_EATA is not set
@@ -715,6 +732,7 @@ CONFIG_SCSI_LOWLEVEL=y
715# CONFIG_SCSI_DEBUG is not set 732# CONFIG_SCSI_DEBUG is not set
716# CONFIG_SCSI_SRP is not set 733# CONFIG_SCSI_SRP is not set
717# CONFIG_SCSI_DH is not set 734# CONFIG_SCSI_DH is not set
735# CONFIG_SCSI_OSD_INITIATOR is not set
718CONFIG_ATA=y 736CONFIG_ATA=y
719# CONFIG_ATA_NONSTANDARD is not set 737# CONFIG_ATA_NONSTANDARD is not set
720CONFIG_SATA_PMP=y 738CONFIG_SATA_PMP=y
@@ -791,6 +809,7 @@ CONFIG_PATA_SIL680=y
791# CONFIG_I2O is not set 809# CONFIG_I2O is not set
792# CONFIG_MACINTOSH_DRIVERS is not set 810# CONFIG_MACINTOSH_DRIVERS is not set
793CONFIG_NETDEVICES=y 811CONFIG_NETDEVICES=y
812CONFIG_COMPAT_NET_DEV_OPS=y
794# CONFIG_DUMMY is not set 813# CONFIG_DUMMY is not set
795# CONFIG_BONDING is not set 814# CONFIG_BONDING is not set
796# CONFIG_MACVLAN is not set 815# CONFIG_MACVLAN is not set
@@ -805,6 +824,8 @@ CONFIG_MII=y
805# CONFIG_SUNGEM is not set 824# CONFIG_SUNGEM is not set
806# CONFIG_CASSINI is not set 825# CONFIG_CASSINI is not set
807# CONFIG_NET_VENDOR_3COM is not set 826# CONFIG_NET_VENDOR_3COM is not set
827# CONFIG_ETHOC is not set
828# CONFIG_DNET is not set
808CONFIG_NET_TULIP=y 829CONFIG_NET_TULIP=y
809# CONFIG_DE2104X is not set 830# CONFIG_DE2104X is not set
810CONFIG_TULIP=y 831CONFIG_TULIP=y
@@ -833,6 +854,7 @@ CONFIG_NETDEV_1000=y
833# CONFIG_E1000E is not set 854# CONFIG_E1000E is not set
834# CONFIG_IP1000 is not set 855# CONFIG_IP1000 is not set
835# CONFIG_IGB is not set 856# CONFIG_IGB is not set
857# CONFIG_IGBVF is not set
836# CONFIG_NS83820 is not set 858# CONFIG_NS83820 is not set
837# CONFIG_HAMACHI is not set 859# CONFIG_HAMACHI is not set
838# CONFIG_YELLOWFIN is not set 860# CONFIG_YELLOWFIN is not set
@@ -843,8 +865,8 @@ CONFIG_R8169=y
843# CONFIG_VIA_VELOCITY is not set 865# CONFIG_VIA_VELOCITY is not set
844# CONFIG_TIGON3 is not set 866# CONFIG_TIGON3 is not set
845# CONFIG_BNX2 is not set 867# CONFIG_BNX2 is not set
868# CONFIG_FSL_PQ_MDIO is not set
846# CONFIG_GIANFAR is not set 869# CONFIG_GIANFAR is not set
847# CONFIG_MV643XX_ETH is not set
848# CONFIG_QLA3XXX is not set 870# CONFIG_QLA3XXX is not set
849# CONFIG_ATL1 is not set 871# CONFIG_ATL1 is not set
850# CONFIG_ATL1E is not set 872# CONFIG_ATL1E is not set
@@ -858,6 +880,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
858# CONFIG_IXGBE is not set 880# CONFIG_IXGBE is not set
859# CONFIG_IXGB is not set 881# CONFIG_IXGB is not set
860# CONFIG_S2IO is not set 882# CONFIG_S2IO is not set
883# CONFIG_VXGE is not set
861# CONFIG_MYRI10GE is not set 884# CONFIG_MYRI10GE is not set
862# CONFIG_NETXEN_NIC is not set 885# CONFIG_NETXEN_NIC is not set
863# CONFIG_NIU is not set 886# CONFIG_NIU is not set
@@ -867,6 +890,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
867# CONFIG_BNX2X is not set 890# CONFIG_BNX2X is not set
868# CONFIG_QLGE is not set 891# CONFIG_QLGE is not set
869# CONFIG_SFC is not set 892# CONFIG_SFC is not set
893# CONFIG_BE2NET is not set
870# CONFIG_TR is not set 894# CONFIG_TR is not set
871 895
872# 896#
@@ -874,7 +898,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
874# 898#
875# CONFIG_WLAN_PRE80211 is not set 899# CONFIG_WLAN_PRE80211 is not set
876# CONFIG_WLAN_80211 is not set 900# CONFIG_WLAN_80211 is not set
877# CONFIG_IWLWIFI_LEDS is not set
878 901
879# 902#
880# Enable WiMAX (Networking options) to see the WiMAX drivers 903# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -985,6 +1008,7 @@ CONFIG_LEGACY_PTY_COUNT=256
985# CONFIG_HVC_UDBG is not set 1008# CONFIG_HVC_UDBG is not set
986# CONFIG_IPMI_HANDLER is not set 1009# CONFIG_IPMI_HANDLER is not set
987CONFIG_HW_RANDOM=y 1010CONFIG_HW_RANDOM=y
1011# CONFIG_HW_RANDOM_TIMERIOMEM is not set
988# CONFIG_NVRAM is not set 1012# CONFIG_NVRAM is not set
989# CONFIG_R3964 is not set 1013# CONFIG_R3964 is not set
990# CONFIG_APPLICOM is not set 1014# CONFIG_APPLICOM is not set
@@ -1050,7 +1074,6 @@ CONFIG_I2C_MPC=y
1050# CONFIG_SENSORS_PCF8574 is not set 1074# CONFIG_SENSORS_PCF8574 is not set
1051# CONFIG_PCF8575 is not set 1075# CONFIG_PCF8575 is not set
1052# CONFIG_SENSORS_PCA9539 is not set 1076# CONFIG_SENSORS_PCA9539 is not set
1053# CONFIG_SENSORS_PCF8591 is not set
1054# CONFIG_SENSORS_MAX6875 is not set 1077# CONFIG_SENSORS_MAX6875 is not set
1055# CONFIG_SENSORS_TSL2550 is not set 1078# CONFIG_SENSORS_TSL2550 is not set
1056# CONFIG_I2C_DEBUG_CORE is not set 1079# CONFIG_I2C_DEBUG_CORE is not set
@@ -1082,6 +1105,7 @@ CONFIG_HWMON=y
1082# CONFIG_SENSORS_F71805F is not set 1105# CONFIG_SENSORS_F71805F is not set
1083# CONFIG_SENSORS_F71882FG is not set 1106# CONFIG_SENSORS_F71882FG is not set
1084# CONFIG_SENSORS_F75375S is not set 1107# CONFIG_SENSORS_F75375S is not set
1108# CONFIG_SENSORS_G760A is not set
1085# CONFIG_SENSORS_GL518SM is not set 1109# CONFIG_SENSORS_GL518SM is not set
1086# CONFIG_SENSORS_GL520SM is not set 1110# CONFIG_SENSORS_GL520SM is not set
1087# CONFIG_SENSORS_IT87 is not set 1111# CONFIG_SENSORS_IT87 is not set
@@ -1096,11 +1120,14 @@ CONFIG_HWMON=y
1096# CONFIG_SENSORS_LM90 is not set 1120# CONFIG_SENSORS_LM90 is not set
1097# CONFIG_SENSORS_LM92 is not set 1121# CONFIG_SENSORS_LM92 is not set
1098# CONFIG_SENSORS_LM93 is not set 1122# CONFIG_SENSORS_LM93 is not set
1123# CONFIG_SENSORS_LTC4215 is not set
1099# CONFIG_SENSORS_LTC4245 is not set 1124# CONFIG_SENSORS_LTC4245 is not set
1125# CONFIG_SENSORS_LM95241 is not set
1100# CONFIG_SENSORS_MAX1619 is not set 1126# CONFIG_SENSORS_MAX1619 is not set
1101# CONFIG_SENSORS_MAX6650 is not set 1127# CONFIG_SENSORS_MAX6650 is not set
1102# CONFIG_SENSORS_PC87360 is not set 1128# CONFIG_SENSORS_PC87360 is not set
1103# CONFIG_SENSORS_PC87427 is not set 1129# CONFIG_SENSORS_PC87427 is not set
1130# CONFIG_SENSORS_PCF8591 is not set
1104# CONFIG_SENSORS_SIS5595 is not set 1131# CONFIG_SENSORS_SIS5595 is not set
1105# CONFIG_SENSORS_DME1737 is not set 1132# CONFIG_SENSORS_DME1737 is not set
1106# CONFIG_SENSORS_SMSC47M1 is not set 1133# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1195,7 +1222,6 @@ CONFIG_HID=m
1195# 1222#
1196# Special HID drivers 1223# Special HID drivers
1197# 1224#
1198CONFIG_HID_COMPAT=y
1199CONFIG_USB_SUPPORT=y 1225CONFIG_USB_SUPPORT=y
1200CONFIG_USB_ARCH_HAS_HCD=y 1226CONFIG_USB_ARCH_HAS_HCD=y
1201CONFIG_USB_ARCH_HAS_OHCI=y 1227CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1250,11 +1276,11 @@ CONFIG_USB_PRINTER=m
1250# CONFIG_USB_TMC is not set 1276# CONFIG_USB_TMC is not set
1251 1277
1252# 1278#
1253# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1279# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1254# 1280#
1255 1281
1256# 1282#
1257# see USB_STORAGE Help for more information 1283# also be needed; see USB_STORAGE Help for more info
1258# 1284#
1259CONFIG_USB_STORAGE=m 1285CONFIG_USB_STORAGE=m
1260# CONFIG_USB_STORAGE_DEBUG is not set 1286# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1290,7 +1316,7 @@ CONFIG_USB_SERIAL_CONSOLE=y
1290# CONFIG_USB_SERIAL_CH341 is not set 1316# CONFIG_USB_SERIAL_CH341 is not set
1291# CONFIG_USB_SERIAL_WHITEHEAT is not set 1317# CONFIG_USB_SERIAL_WHITEHEAT is not set
1292# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set 1318# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1293# CONFIG_USB_SERIAL_CP2101 is not set 1319# CONFIG_USB_SERIAL_CP210X is not set
1294# CONFIG_USB_SERIAL_CYPRESS_M8 is not set 1320# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1295# CONFIG_USB_SERIAL_EMPEG is not set 1321# CONFIG_USB_SERIAL_EMPEG is not set
1296CONFIG_USB_SERIAL_FTDI_SIO=y 1322CONFIG_USB_SERIAL_FTDI_SIO=y
@@ -1314,11 +1340,13 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1314# CONFIG_USB_SERIAL_NAVMAN is not set 1340# CONFIG_USB_SERIAL_NAVMAN is not set
1315# CONFIG_USB_SERIAL_PL2303 is not set 1341# CONFIG_USB_SERIAL_PL2303 is not set
1316# CONFIG_USB_SERIAL_OTI6858 is not set 1342# CONFIG_USB_SERIAL_OTI6858 is not set
1343# CONFIG_USB_SERIAL_QUALCOMM is not set
1317# CONFIG_USB_SERIAL_SPCP8X5 is not set 1344# CONFIG_USB_SERIAL_SPCP8X5 is not set
1318# CONFIG_USB_SERIAL_HP4X is not set 1345# CONFIG_USB_SERIAL_HP4X is not set
1319# CONFIG_USB_SERIAL_SAFE is not set 1346# CONFIG_USB_SERIAL_SAFE is not set
1320# CONFIG_USB_SERIAL_SIEMENS_MPI is not set 1347# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1321# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1348# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1349# CONFIG_USB_SERIAL_SYMBOL is not set
1322# CONFIG_USB_SERIAL_TI is not set 1350# CONFIG_USB_SERIAL_TI is not set
1323# CONFIG_USB_SERIAL_CYBERJACK is not set 1351# CONFIG_USB_SERIAL_CYBERJACK is not set
1324# CONFIG_USB_SERIAL_XIRCOM is not set 1352# CONFIG_USB_SERIAL_XIRCOM is not set
@@ -1341,7 +1369,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1341# CONFIG_USB_LED is not set 1369# CONFIG_USB_LED is not set
1342# CONFIG_USB_CYPRESS_CY7C63 is not set 1370# CONFIG_USB_CYPRESS_CY7C63 is not set
1343# CONFIG_USB_CYTHERM is not set 1371# CONFIG_USB_CYTHERM is not set
1344# CONFIG_USB_PHIDGET is not set
1345# CONFIG_USB_IDMOUSE is not set 1372# CONFIG_USB_IDMOUSE is not set
1346# CONFIG_USB_FTDI_ELAN is not set 1373# CONFIG_USB_FTDI_ELAN is not set
1347# CONFIG_USB_APPLEDISPLAY is not set 1374# CONFIG_USB_APPLEDISPLAY is not set
@@ -1357,6 +1384,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1357# 1384#
1358# OTG and related infrastructure 1385# OTG and related infrastructure
1359# 1386#
1387# CONFIG_NOP_USB_XCEIV is not set
1360# CONFIG_UWB is not set 1388# CONFIG_UWB is not set
1361# CONFIG_MMC is not set 1389# CONFIG_MMC is not set
1362# CONFIG_MEMSTICK is not set 1390# CONFIG_MEMSTICK is not set
@@ -1418,8 +1446,9 @@ CONFIG_RTC_DRV_RS5C372=y
1418# 1446#
1419# on-CPU RTC drivers 1447# on-CPU RTC drivers
1420# 1448#
1421# CONFIG_RTC_DRV_PPC is not set 1449# CONFIG_RTC_DRV_GENERIC is not set
1422# CONFIG_DMADEVICES is not set 1450# CONFIG_DMADEVICES is not set
1451# CONFIG_AUXDISPLAY is not set
1423# CONFIG_UIO is not set 1452# CONFIG_UIO is not set
1424# CONFIG_STAGING is not set 1453# CONFIG_STAGING is not set
1425 1454
@@ -1430,6 +1459,7 @@ CONFIG_EXT2_FS=y
1430# CONFIG_EXT2_FS_XATTR is not set 1459# CONFIG_EXT2_FS_XATTR is not set
1431# CONFIG_EXT2_FS_XIP is not set 1460# CONFIG_EXT2_FS_XIP is not set
1432CONFIG_EXT3_FS=y 1461CONFIG_EXT3_FS=y
1462# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1433CONFIG_EXT3_FS_XATTR=y 1463CONFIG_EXT3_FS_XATTR=y
1434# CONFIG_EXT3_FS_POSIX_ACL is not set 1464# CONFIG_EXT3_FS_POSIX_ACL is not set
1435# CONFIG_EXT3_FS_SECURITY is not set 1465# CONFIG_EXT3_FS_SECURITY is not set
@@ -1456,6 +1486,11 @@ CONFIG_INOTIFY_USER=y
1456# CONFIG_FUSE_FS is not set 1486# CONFIG_FUSE_FS is not set
1457 1487
1458# 1488#
1489# Caches
1490#
1491# CONFIG_FSCACHE is not set
1492
1493#
1459# CD-ROM/DVD Filesystems 1494# CD-ROM/DVD Filesystems
1460# 1495#
1461CONFIG_ISO9660_FS=m 1496CONFIG_ISO9660_FS=m
@@ -1507,6 +1542,7 @@ CONFIG_MISC_FILESYSTEMS=y
1507# CONFIG_ROMFS_FS is not set 1542# CONFIG_ROMFS_FS is not set
1508# CONFIG_SYSV_FS is not set 1543# CONFIG_SYSV_FS is not set
1509# CONFIG_UFS_FS is not set 1544# CONFIG_UFS_FS is not set
1545# CONFIG_NILFS2_FS is not set
1510CONFIG_NETWORK_FILESYSTEMS=y 1546CONFIG_NETWORK_FILESYSTEMS=y
1511CONFIG_NFS_FS=y 1547CONFIG_NFS_FS=y
1512CONFIG_NFS_V3=y 1548CONFIG_NFS_V3=y
@@ -1524,7 +1560,6 @@ CONFIG_NFS_ACL_SUPPORT=y
1524CONFIG_NFS_COMMON=y 1560CONFIG_NFS_COMMON=y
1525CONFIG_SUNRPC=y 1561CONFIG_SUNRPC=y
1526CONFIG_SUNRPC_GSS=y 1562CONFIG_SUNRPC_GSS=y
1527# CONFIG_SUNRPC_REGISTER_V4 is not set
1528CONFIG_RPCSEC_GSS_KRB5=y 1563CONFIG_RPCSEC_GSS_KRB5=y
1529# CONFIG_RPCSEC_GSS_SPKM3 is not set 1564# CONFIG_RPCSEC_GSS_SPKM3 is not set
1530# CONFIG_SMB_FS is not set 1565# CONFIG_SMB_FS is not set
@@ -1584,6 +1619,7 @@ CONFIG_NLS_ISO8859_1=m
1584# CONFIG_NLS_KOI8_U is not set 1619# CONFIG_NLS_KOI8_U is not set
1585CONFIG_NLS_UTF8=m 1620CONFIG_NLS_UTF8=m
1586# CONFIG_DLM is not set 1621# CONFIG_DLM is not set
1622# CONFIG_BINARY_PRINTF is not set
1587 1623
1588# 1624#
1589# Library routines 1625# Library routines
@@ -1597,15 +1633,18 @@ CONFIG_CRC_ITU_T=m
1597CONFIG_CRC32=y 1633CONFIG_CRC32=y
1598# CONFIG_CRC7 is not set 1634# CONFIG_CRC7 is not set
1599CONFIG_LIBCRC32C=m 1635CONFIG_LIBCRC32C=m
1600CONFIG_ZLIB_INFLATE=m 1636CONFIG_ZLIB_INFLATE=y
1601CONFIG_ZLIB_DEFLATE=m 1637CONFIG_ZLIB_DEFLATE=m
1638CONFIG_DECOMPRESS_GZIP=y
1639CONFIG_DECOMPRESS_BZIP2=y
1640CONFIG_DECOMPRESS_LZMA=y
1602CONFIG_TEXTSEARCH=y 1641CONFIG_TEXTSEARCH=y
1603CONFIG_TEXTSEARCH_KMP=m 1642CONFIG_TEXTSEARCH_KMP=m
1604CONFIG_PLIST=y
1605CONFIG_HAS_IOMEM=y 1643CONFIG_HAS_IOMEM=y
1606CONFIG_HAS_IOPORT=y 1644CONFIG_HAS_IOPORT=y
1607CONFIG_HAS_DMA=y 1645CONFIG_HAS_DMA=y
1608CONFIG_HAVE_LMB=y 1646CONFIG_HAVE_LMB=y
1647CONFIG_NLATTR=y
1609 1648
1610# 1649#
1611# Kernel hacking 1650# Kernel hacking
@@ -1623,6 +1662,9 @@ CONFIG_DEBUG_KERNEL=y
1623CONFIG_DETECT_SOFTLOCKUP=y 1662CONFIG_DETECT_SOFTLOCKUP=y
1624# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1663# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1625CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1664CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1665CONFIG_DETECT_HUNG_TASK=y
1666# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1667CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1626CONFIG_SCHED_DEBUG=y 1668CONFIG_SCHED_DEBUG=y
1627# CONFIG_SCHEDSTATS is not set 1669# CONFIG_SCHEDSTATS is not set
1628# CONFIG_TIMER_STATS is not set 1670# CONFIG_TIMER_STATS is not set
@@ -1652,9 +1694,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
1652# CONFIG_FAULT_INJECTION is not set 1694# CONFIG_FAULT_INJECTION is not set
1653# CONFIG_LATENCYTOP is not set 1695# CONFIG_LATENCYTOP is not set
1654CONFIG_SYSCTL_SYSCALL_CHECK=y 1696CONFIG_SYSCTL_SYSCALL_CHECK=y
1697# CONFIG_DEBUG_PAGEALLOC is not set
1655CONFIG_HAVE_FUNCTION_TRACER=y 1698CONFIG_HAVE_FUNCTION_TRACER=y
1699CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1656CONFIG_HAVE_DYNAMIC_FTRACE=y 1700CONFIG_HAVE_DYNAMIC_FTRACE=y
1657CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1701CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1702CONFIG_TRACING_SUPPORT=y
1658 1703
1659# 1704#
1660# Tracers 1705# Tracers
@@ -1662,17 +1707,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1662# CONFIG_FUNCTION_TRACER is not set 1707# CONFIG_FUNCTION_TRACER is not set
1663# CONFIG_SCHED_TRACER is not set 1708# CONFIG_SCHED_TRACER is not set
1664# CONFIG_CONTEXT_SWITCH_TRACER is not set 1709# CONFIG_CONTEXT_SWITCH_TRACER is not set
1710# CONFIG_EVENT_TRACER is not set
1665# CONFIG_BOOT_TRACER is not set 1711# CONFIG_BOOT_TRACER is not set
1666# CONFIG_TRACE_BRANCH_PROFILING is not set 1712# CONFIG_TRACE_BRANCH_PROFILING is not set
1667# CONFIG_STACK_TRACER is not set 1713# CONFIG_STACK_TRACER is not set
1668# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1714# CONFIG_KMEMTRACE is not set
1715# CONFIG_WORKQUEUE_TRACER is not set
1716# CONFIG_BLK_DEV_IO_TRACE is not set
1669# CONFIG_SAMPLES is not set 1717# CONFIG_SAMPLES is not set
1670CONFIG_HAVE_ARCH_KGDB=y 1718CONFIG_HAVE_ARCH_KGDB=y
1671# CONFIG_KGDB is not set 1719# CONFIG_KGDB is not set
1672CONFIG_PRINT_STACK_DEPTH=64 1720CONFIG_PRINT_STACK_DEPTH=64
1673# CONFIG_DEBUG_STACKOVERFLOW is not set 1721# CONFIG_DEBUG_STACKOVERFLOW is not set
1674# CONFIG_DEBUG_STACK_USAGE is not set 1722# CONFIG_DEBUG_STACK_USAGE is not set
1675# CONFIG_DEBUG_PAGEALLOC is not set
1676# CONFIG_CODE_PATCHING_SELFTEST is not set 1723# CONFIG_CODE_PATCHING_SELFTEST is not set
1677# CONFIG_FTR_FIXUP_SELFTEST is not set 1724# CONFIG_FTR_FIXUP_SELFTEST is not set
1678# CONFIG_MSI_BITMAP_SELFTEST is not set 1725# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1703,10 +1750,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1703CONFIG_CRYPTO_HASH=y 1750CONFIG_CRYPTO_HASH=y
1704CONFIG_CRYPTO_HASH2=y 1751CONFIG_CRYPTO_HASH2=y
1705CONFIG_CRYPTO_RNG2=y 1752CONFIG_CRYPTO_RNG2=y
1753CONFIG_CRYPTO_PCOMP=y
1706CONFIG_CRYPTO_MANAGER=y 1754CONFIG_CRYPTO_MANAGER=y
1707CONFIG_CRYPTO_MANAGER2=y 1755CONFIG_CRYPTO_MANAGER2=y
1708# CONFIG_CRYPTO_GF128MUL is not set 1756# CONFIG_CRYPTO_GF128MUL is not set
1709# CONFIG_CRYPTO_NULL is not set 1757# CONFIG_CRYPTO_NULL is not set
1758CONFIG_CRYPTO_WORKQUEUE=y
1710# CONFIG_CRYPTO_CRYPTD is not set 1759# CONFIG_CRYPTO_CRYPTD is not set
1711# CONFIG_CRYPTO_AUTHENC is not set 1760# CONFIG_CRYPTO_AUTHENC is not set
1712# CONFIG_CRYPTO_TEST is not set 1761# CONFIG_CRYPTO_TEST is not set
@@ -1776,6 +1825,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1776# Compression 1825# Compression
1777# 1826#
1778CONFIG_CRYPTO_DEFLATE=m 1827CONFIG_CRYPTO_DEFLATE=m
1828# CONFIG_CRYPTO_ZLIB is not set
1779# CONFIG_CRYPTO_LZO is not set 1829# CONFIG_CRYPTO_LZO is not set
1780 1830
1781# 1831#
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig
index c58c38d5b7a6..31e1df665157 100644
--- a/arch/powerpc/configs/mgcoge_defconfig
+++ b/arch/powerpc/configs/mgcoge_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:30 2009 4# Wed May 13 17:21:55 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -57,6 +58,7 @@ CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y 58CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
61 63
62# 64#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76CONFIG_IKCONFIG=y 87CONFIG_IKCONFIG=y
77CONFIG_IKCONFIG_PROC=y 88CONFIG_IKCONFIG_PROC=y
78CONFIG_LOG_BUF_SHIFT=14 89CONFIG_LOG_BUF_SHIFT=14
@@ -83,23 +94,25 @@ CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_NAMESPACES is not set 94# CONFIG_NAMESPACES is not set
84CONFIG_BLK_DEV_INITRD=y 95CONFIG_BLK_DEV_INITRD=y
85CONFIG_INITRAMFS_SOURCE="" 96CONFIG_INITRAMFS_SOURCE=""
97CONFIG_RD_GZIP=y
98# CONFIG_RD_BZIP2 is not set
99# CONFIG_RD_LZMA is not set
86CONFIG_CC_OPTIMIZE_FOR_SIZE=y 100CONFIG_CC_OPTIMIZE_FOR_SIZE=y
87CONFIG_SYSCTL=y 101CONFIG_SYSCTL=y
102CONFIG_ANON_INODES=y
88CONFIG_EMBEDDED=y 103CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 104CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 105CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 106CONFIG_KALLSYMS_ALL=y
92CONFIG_KALLSYMS_STRIP_GENERATED=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 107# CONFIG_KALLSYMS_EXTRA_PASS is not set
108# CONFIG_STRIP_ASM_SYMS is not set
94CONFIG_HOTPLUG=y 109CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 110CONFIG_PRINTK=y
96CONFIG_BUG=y 111CONFIG_BUG=y
97CONFIG_ELF_CORE=y 112CONFIG_ELF_CORE=y
98CONFIG_PCSPKR_PLATFORM=y 113CONFIG_PCSPKR_PLATFORM=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 114CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 115CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103CONFIG_EPOLL=y 116CONFIG_EPOLL=y
104CONFIG_SIGNALFD=y 117CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 118CONFIG_TIMERFD=y
@@ -108,10 +121,12 @@ CONFIG_SHMEM=y
108CONFIG_AIO=y 121CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 122CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 123CONFIG_PCI_QUIRKS=y
124CONFIG_COMPAT_BRK=y
111CONFIG_SLAB=y 125CONFIG_SLAB=y
112# CONFIG_SLUB is not set 126# CONFIG_SLUB is not set
113# CONFIG_SLOB is not set 127# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 128# CONFIG_PROFILING is not set
129# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 130CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 131CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y 132CONFIG_HAVE_IOREMAP_PROT=y
@@ -119,6 +134,7 @@ CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 134CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y 135CONFIG_HAVE_ARCH_TRACEHOOK=y
121CONFIG_HAVE_CLK=y 136CONFIG_HAVE_CLK=y
137# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 139CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 140CONFIG_RT_MUTEXES=y
@@ -126,7 +142,6 @@ CONFIG_BASE_SMALL=0
126# CONFIG_MODULES is not set 142# CONFIG_MODULES is not set
127CONFIG_BLOCK=y 143CONFIG_BLOCK=y
128# CONFIG_LBD is not set 144# CONFIG_LBD is not set
129# CONFIG_BLK_DEV_IO_TRACE is not set
130# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
131 146
132# 147#
@@ -141,18 +156,11 @@ CONFIG_DEFAULT_DEADLINE=y
141# CONFIG_DEFAULT_CFQ is not set 156# CONFIG_DEFAULT_CFQ is not set
142# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="deadline" 158CONFIG_DEFAULT_IOSCHED="deadline"
144CONFIG_CLASSIC_RCU=y
145# CONFIG_TREE_RCU is not set
146# CONFIG_PREEMPT_RCU is not set
147# CONFIG_TREE_RCU_TRACE is not set
148# CONFIG_PREEMPT_RCU_TRACE is not set
149# CONFIG_FREEZER is not set 159# CONFIG_FREEZER is not set
150 160
151# 161#
152# Platform support 162# Platform support
153# 163#
154CONFIG_PPC_MULTIPLATFORM=y
155CONFIG_CLASSIC32=y
156CONFIG_PPC_CHRP=y 164CONFIG_PPC_CHRP=y
157# CONFIG_MPC5121_ADS is not set 165# CONFIG_MPC5121_ADS is not set
158# CONFIG_MPC5121_GENERIC is not set 166# CONFIG_MPC5121_GENERIC is not set
@@ -171,7 +179,9 @@ CONFIG_8272=y
171# CONFIG_PPC_83xx is not set 179# CONFIG_PPC_83xx is not set
172# CONFIG_PPC_86xx is not set 180# CONFIG_PPC_86xx is not set
173# CONFIG_EMBEDDED6xx is not set 181# CONFIG_EMBEDDED6xx is not set
182# CONFIG_AMIGAONE is not set
174CONFIG_PPC_NATIVE=y 183CONFIG_PPC_NATIVE=y
184CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
175# CONFIG_UDBG_RTAS_CONSOLE is not set 185# CONFIG_UDBG_RTAS_CONSOLE is not set
176# CONFIG_IPIC is not set 186# CONFIG_IPIC is not set
177CONFIG_MPIC=y 187CONFIG_MPIC=y
@@ -231,9 +241,12 @@ CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_HAVE_MLOCK=y
245CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234CONFIG_PPC_4K_PAGES=y 246CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set 247# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set 248# CONFIG_PPC_64K_PAGES is not set
249# CONFIG_PPC_256K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -260,6 +273,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
260# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
261# CONFIG_PCI_DEBUG is not set 274# CONFIG_PCI_DEBUG is not set
262# CONFIG_PCI_STUB is not set 275# CONFIG_PCI_STUB is not set
276# CONFIG_PCI_IOV is not set
263# CONFIG_PCCARD is not set 277# CONFIG_PCCARD is not set
264# CONFIG_HOTPLUG_PCI is not set 278# CONFIG_HOTPLUG_PCI is not set
265# CONFIG_HAS_RAPIDIO is not set 279# CONFIG_HAS_RAPIDIO is not set
@@ -282,7 +296,6 @@ CONFIG_NET=y
282# 296#
283# Networking options 297# Networking options
284# 298#
285CONFIG_COMPAT_NET_DEV_OPS=y
286CONFIG_PACKET=y 299CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -344,6 +357,7 @@ CONFIG_NETFILTER_ADVANCED=y
344# CONFIG_LLC2 is not set 357# CONFIG_LLC2 is not set
345# CONFIG_IPX is not set 358# CONFIG_IPX is not set
346# CONFIG_ATALK is not set 359# CONFIG_ATALK is not set
360# CONFIG_PHONET is not set
347# CONFIG_NET_SCHED is not set 361# CONFIG_NET_SCHED is not set
348# CONFIG_DCB is not set 362# CONFIG_DCB is not set
349 363
@@ -355,7 +369,6 @@ CONFIG_NETFILTER_ADVANCED=y
355# CONFIG_CAN is not set 369# CONFIG_CAN is not set
356# CONFIG_IRDA is not set 370# CONFIG_IRDA is not set
357# CONFIG_BT is not set 371# CONFIG_BT is not set
358# CONFIG_PHONET is not set
359CONFIG_WIRELESS=y 372CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 373# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 374CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -464,7 +477,6 @@ CONFIG_MTD_PHYSMAP_OF=y
464# LPDDR flash memory drivers 477# LPDDR flash memory drivers
465# 478#
466# CONFIG_MTD_LPDDR is not set 479# CONFIG_MTD_LPDDR is not set
467# CONFIG_MTD_QINFO_PROBE is not set
468 480
469# 481#
470# UBI - Unsorted block images 482# UBI - Unsorted block images
@@ -517,6 +529,7 @@ CONFIG_HAVE_IDE=y
517# CONFIG_I2O is not set 529# CONFIG_I2O is not set
518# CONFIG_MACINTOSH_DRIVERS is not set 530# CONFIG_MACINTOSH_DRIVERS is not set
519CONFIG_NETDEVICES=y 531CONFIG_NETDEVICES=y
532CONFIG_COMPAT_NET_DEV_OPS=y
520# CONFIG_DUMMY is not set 533# CONFIG_DUMMY is not set
521# CONFIG_BONDING is not set 534# CONFIG_BONDING is not set
522# CONFIG_EQUALIZER is not set 535# CONFIG_EQUALIZER is not set
@@ -551,6 +564,8 @@ CONFIG_MII=y
551# CONFIG_SUNGEM is not set 564# CONFIG_SUNGEM is not set
552# CONFIG_CASSINI is not set 565# CONFIG_CASSINI is not set
553# CONFIG_NET_VENDOR_3COM is not set 566# CONFIG_NET_VENDOR_3COM is not set
567# CONFIG_ETHOC is not set
568# CONFIG_DNET is not set
554# CONFIG_NET_TULIP is not set 569# CONFIG_NET_TULIP is not set
555# CONFIG_HP100 is not set 570# CONFIG_HP100 is not set
556# CONFIG_IBM_NEW_EMAC_ZMII is not set 571# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -576,7 +591,6 @@ CONFIG_FS_ENET_HAS_SCC=y
576# 591#
577# CONFIG_WLAN_PRE80211 is not set 592# CONFIG_WLAN_PRE80211 is not set
578# CONFIG_WLAN_80211 is not set 593# CONFIG_WLAN_80211 is not set
579# CONFIG_IWLWIFI_LEDS is not set
580 594
581# 595#
582# Enable WiMAX (Networking options) to see the WiMAX drivers 596# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -631,6 +645,7 @@ CONFIG_LEGACY_PTY_COUNT=256
631# CONFIG_HVC_RTAS is not set 645# CONFIG_HVC_RTAS is not set
632# CONFIG_IPMI_HANDLER is not set 646# CONFIG_IPMI_HANDLER is not set
633CONFIG_HW_RANDOM=y 647CONFIG_HW_RANDOM=y
648# CONFIG_HW_RANDOM_TIMERIOMEM is not set
634# CONFIG_NVRAM is not set 649# CONFIG_NVRAM is not set
635# CONFIG_GEN_RTC is not set 650# CONFIG_GEN_RTC is not set
636# CONFIG_R3964 is not set 651# CONFIG_R3964 is not set
@@ -720,8 +735,10 @@ CONFIG_SSB_POSSIBLE=y
720# CONFIG_NEW_LEDS is not set 735# CONFIG_NEW_LEDS is not set
721# CONFIG_ACCESSIBILITY is not set 736# CONFIG_ACCESSIBILITY is not set
722# CONFIG_INFINIBAND is not set 737# CONFIG_INFINIBAND is not set
738# CONFIG_EDAC is not set
723# CONFIG_RTC_CLASS is not set 739# CONFIG_RTC_CLASS is not set
724# CONFIG_DMADEVICES is not set 740# CONFIG_DMADEVICES is not set
741# CONFIG_AUXDISPLAY is not set
725# CONFIG_UIO is not set 742# CONFIG_UIO is not set
726# CONFIG_STAGING is not set 743# CONFIG_STAGING is not set
727 744
@@ -732,6 +749,7 @@ CONFIG_EXT2_FS=y
732# CONFIG_EXT2_FS_XATTR is not set 749# CONFIG_EXT2_FS_XATTR is not set
733# CONFIG_EXT2_FS_XIP is not set 750# CONFIG_EXT2_FS_XIP is not set
734CONFIG_EXT3_FS=y 751CONFIG_EXT3_FS=y
752# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
735# CONFIG_EXT3_FS_XATTR is not set 753# CONFIG_EXT3_FS_XATTR is not set
736# CONFIG_EXT4_FS is not set 754# CONFIG_EXT4_FS is not set
737CONFIG_JBD=y 755CONFIG_JBD=y
@@ -751,6 +769,10 @@ CONFIG_AUTOFS4_FS=y
751# CONFIG_FUSE_FS is not set 769# CONFIG_FUSE_FS is not set
752 770
753# 771#
772# Caches
773#
774
775#
754# CD-ROM/DVD Filesystems 776# CD-ROM/DVD Filesystems
755# 777#
756# CONFIG_ISO9660_FS is not set 778# CONFIG_ISO9660_FS is not set
@@ -872,6 +894,7 @@ CONFIG_NLS_ISO8859_1=y
872# CONFIG_NLS_KOI8_R is not set 894# CONFIG_NLS_KOI8_R is not set
873# CONFIG_NLS_KOI8_U is not set 895# CONFIG_NLS_KOI8_U is not set
874CONFIG_NLS_UTF8=y 896CONFIG_NLS_UTF8=y
897# CONFIG_BINARY_PRINTF is not set
875 898
876# 899#
877# Library routines 900# Library routines
@@ -887,11 +910,12 @@ CONFIG_CRC32=y
887# CONFIG_LIBCRC32C is not set 910# CONFIG_LIBCRC32C is not set
888CONFIG_ZLIB_INFLATE=y 911CONFIG_ZLIB_INFLATE=y
889CONFIG_ZLIB_DEFLATE=y 912CONFIG_ZLIB_DEFLATE=y
890CONFIG_PLIST=y 913CONFIG_DECOMPRESS_GZIP=y
891CONFIG_HAS_IOMEM=y 914CONFIG_HAS_IOMEM=y
892CONFIG_HAS_IOPORT=y 915CONFIG_HAS_IOPORT=y
893CONFIG_HAS_DMA=y 916CONFIG_HAS_DMA=y
894CONFIG_HAVE_LMB=y 917CONFIG_HAVE_LMB=y
918CONFIG_NLATTR=y
895 919
896# 920#
897# Kernel hacking 921# Kernel hacking
@@ -907,6 +931,7 @@ CONFIG_DEBUG_FS=y
907CONFIG_DEBUG_KERNEL=y 931CONFIG_DEBUG_KERNEL=y
908# CONFIG_DEBUG_SHIRQ is not set 932# CONFIG_DEBUG_SHIRQ is not set
909# CONFIG_DETECT_SOFTLOCKUP is not set 933# CONFIG_DETECT_SOFTLOCKUP is not set
934# CONFIG_DETECT_HUNG_TASK is not set
910# CONFIG_SCHED_DEBUG is not set 935# CONFIG_SCHED_DEBUG is not set
911# CONFIG_SCHEDSTATS is not set 936# CONFIG_SCHEDSTATS is not set
912# CONFIG_TIMER_STATS is not set 937# CONFIG_TIMER_STATS is not set
@@ -935,9 +960,12 @@ CONFIG_DEBUG_INFO=y
935# CONFIG_FAULT_INJECTION is not set 960# CONFIG_FAULT_INJECTION is not set
936# CONFIG_LATENCYTOP is not set 961# CONFIG_LATENCYTOP is not set
937CONFIG_SYSCTL_SYSCALL_CHECK=y 962CONFIG_SYSCTL_SYSCALL_CHECK=y
963# CONFIG_DEBUG_PAGEALLOC is not set
938CONFIG_HAVE_FUNCTION_TRACER=y 964CONFIG_HAVE_FUNCTION_TRACER=y
965CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
939CONFIG_HAVE_DYNAMIC_FTRACE=y 966CONFIG_HAVE_DYNAMIC_FTRACE=y
940CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 967CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
968CONFIG_TRACING_SUPPORT=y
941 969
942# 970#
943# Tracers 971# Tracers
@@ -945,16 +973,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
945# CONFIG_FUNCTION_TRACER is not set 973# CONFIG_FUNCTION_TRACER is not set
946# CONFIG_SCHED_TRACER is not set 974# CONFIG_SCHED_TRACER is not set
947# CONFIG_CONTEXT_SWITCH_TRACER is not set 975# CONFIG_CONTEXT_SWITCH_TRACER is not set
976# CONFIG_EVENT_TRACER is not set
948# CONFIG_BOOT_TRACER is not set 977# CONFIG_BOOT_TRACER is not set
949# CONFIG_TRACE_BRANCH_PROFILING is not set 978# CONFIG_TRACE_BRANCH_PROFILING is not set
950# CONFIG_STACK_TRACER is not set 979# CONFIG_STACK_TRACER is not set
951# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 980# CONFIG_KMEMTRACE is not set
981# CONFIG_WORKQUEUE_TRACER is not set
982# CONFIG_BLK_DEV_IO_TRACE is not set
983# CONFIG_DYNAMIC_DEBUG is not set
952# CONFIG_SAMPLES is not set 984# CONFIG_SAMPLES is not set
953CONFIG_HAVE_ARCH_KGDB=y 985CONFIG_HAVE_ARCH_KGDB=y
954CONFIG_PRINT_STACK_DEPTH=64 986CONFIG_PRINT_STACK_DEPTH=64
955# CONFIG_DEBUG_STACKOVERFLOW is not set 987# CONFIG_DEBUG_STACKOVERFLOW is not set
956# CONFIG_DEBUG_STACK_USAGE is not set 988# CONFIG_DEBUG_STACK_USAGE is not set
957# CONFIG_DEBUG_PAGEALLOC is not set
958# CONFIG_CODE_PATCHING_SELFTEST is not set 989# CONFIG_CODE_PATCHING_SELFTEST is not set
959# CONFIG_FTR_FIXUP_SELFTEST is not set 990# CONFIG_FTR_FIXUP_SELFTEST is not set
960# CONFIG_MSI_BITMAP_SELFTEST is not set 991# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -986,9 +1017,11 @@ CONFIG_CRYPTO_BLKCIPHER2=y
986CONFIG_CRYPTO_HASH=y 1017CONFIG_CRYPTO_HASH=y
987CONFIG_CRYPTO_HASH2=y 1018CONFIG_CRYPTO_HASH2=y
988CONFIG_CRYPTO_RNG2=y 1019CONFIG_CRYPTO_RNG2=y
1020CONFIG_CRYPTO_PCOMP=y
989CONFIG_CRYPTO_MANAGER=y 1021CONFIG_CRYPTO_MANAGER=y
990CONFIG_CRYPTO_MANAGER2=y 1022CONFIG_CRYPTO_MANAGER2=y
991# CONFIG_CRYPTO_NULL is not set 1023# CONFIG_CRYPTO_NULL is not set
1024CONFIG_CRYPTO_WORKQUEUE=y
992# CONFIG_CRYPTO_CRYPTD is not set 1025# CONFIG_CRYPTO_CRYPTD is not set
993# CONFIG_CRYPTO_AUTHENC is not set 1026# CONFIG_CRYPTO_AUTHENC is not set
994 1027
@@ -1052,6 +1085,7 @@ CONFIG_CRYPTO_DES=y
1052# Compression 1085# Compression
1053# 1086#
1054# CONFIG_CRYPTO_DEFLATE is not set 1087# CONFIG_CRYPTO_DEFLATE is not set
1088# CONFIG_CRYPTO_ZLIB is not set
1055# CONFIG_CRYPTO_LZO is not set 1089# CONFIG_CRYPTO_LZO is not set
1056 1090
1057# 1091#
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig
index 297b5d5042be..24fa90792c54 100644
--- a/arch/powerpc/configs/mgsuvd_defconfig
+++ b/arch/powerpc/configs/mgsuvd_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:32 2009 4# Wed May 13 17:21:55 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -51,6 +51,7 @@ CONFIG_AUDIT_ARCH=y
51# CONFIG_DEFAULT_UIMAGE is not set 51# CONFIG_DEFAULT_UIMAGE is not set
52# CONFIG_PPC_DCR_NATIVE is not set 52# CONFIG_PPC_DCR_NATIVE is not set
53# CONFIG_PPC_DCR_MMIO is not set 53# CONFIG_PPC_DCR_MMIO is not set
54CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
54CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
55 56
56# 57#
@@ -68,6 +69,15 @@ CONFIG_SYSVIPC_SYSCTL=y
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
72
73#
74# RCU Subsystem
75#
76CONFIG_CLASSIC_RCU=y
77# CONFIG_TREE_RCU is not set
78# CONFIG_PREEMPT_RCU is not set
79# CONFIG_TREE_RCU_TRACE is not set
80# CONFIG_PREEMPT_RCU_TRACE is not set
71# CONFIG_IKCONFIG is not set 81# CONFIG_IKCONFIG is not set
72CONFIG_LOG_BUF_SHIFT=17 82CONFIG_LOG_BUF_SHIFT=17
73CONFIG_GROUP_SCHED=y 83CONFIG_GROUP_SCHED=y
@@ -82,20 +92,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_NAMESPACES is not set 92# CONFIG_NAMESPACES is not set
83CONFIG_BLK_DEV_INITRD=y 93CONFIG_BLK_DEV_INITRD=y
84CONFIG_INITRAMFS_SOURCE="" 94CONFIG_INITRAMFS_SOURCE=""
95CONFIG_RD_GZIP=y
96# CONFIG_RD_BZIP2 is not set
97# CONFIG_RD_LZMA is not set
85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 98# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
86CONFIG_SYSCTL=y 99CONFIG_SYSCTL=y
100CONFIG_ANON_INODES=y
87CONFIG_EMBEDDED=y 101CONFIG_EMBEDDED=y
88# CONFIG_SYSCTL_SYSCALL is not set 102# CONFIG_SYSCTL_SYSCALL is not set
89CONFIG_KALLSYMS=y 103CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 104# CONFIG_KALLSYMS_EXTRA_PASS is not set
105# CONFIG_STRIP_ASM_SYMS is not set
91# CONFIG_HOTPLUG is not set 106# CONFIG_HOTPLUG is not set
92CONFIG_PRINTK=y 107CONFIG_PRINTK=y
93# CONFIG_BUG is not set 108# CONFIG_BUG is not set
94CONFIG_ELF_CORE=y 109CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
96# CONFIG_BASE_FULL is not set 110# CONFIG_BASE_FULL is not set
97CONFIG_FUTEX=y 111CONFIG_FUTEX=y
98CONFIG_ANON_INODES=y
99# CONFIG_EPOLL is not set 112# CONFIG_EPOLL is not set
100CONFIG_SIGNALFD=y 113CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y 114CONFIG_TIMERFD=y
@@ -103,10 +116,12 @@ CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 116CONFIG_SHMEM=y
104CONFIG_AIO=y 117CONFIG_AIO=y
105# CONFIG_VM_EVENT_COUNTERS is not set 118# CONFIG_VM_EVENT_COUNTERS is not set
119CONFIG_COMPAT_BRK=y
106CONFIG_SLAB=y 120CONFIG_SLAB=y
107# CONFIG_SLUB is not set 121# CONFIG_SLUB is not set
108# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
124# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 125CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
112CONFIG_HAVE_IOREMAP_PROT=y 127CONFIG_HAVE_IOREMAP_PROT=y
@@ -114,6 +129,7 @@ CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 129CONFIG_HAVE_KRETPROBES=y
115CONFIG_HAVE_ARCH_TRACEHOOK=y 130CONFIG_HAVE_ARCH_TRACEHOOK=y
116CONFIG_HAVE_CLK=y 131CONFIG_HAVE_CLK=y
132# CONFIG_SLOW_WORK is not set
117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 134CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 135CONFIG_RT_MUTEXES=y
@@ -121,7 +137,6 @@ CONFIG_BASE_SMALL=1
121# CONFIG_MODULES is not set 137# CONFIG_MODULES is not set
122CONFIG_BLOCK=y 138CONFIG_BLOCK=y
123# CONFIG_LBD is not set 139# CONFIG_LBD is not set
124# CONFIG_BLK_DEV_IO_TRACE is not set
125# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
126# CONFIG_BLK_DEV_INTEGRITY is not set 141# CONFIG_BLK_DEV_INTEGRITY is not set
127 142
@@ -137,11 +152,6 @@ CONFIG_DEFAULT_AS=y
137# CONFIG_DEFAULT_CFQ is not set 152# CONFIG_DEFAULT_CFQ is not set
138# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
139CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="anticipatory"
140CONFIG_CLASSIC_RCU=y
141# CONFIG_TREE_RCU is not set
142# CONFIG_PREEMPT_RCU is not set
143# CONFIG_TREE_RCU_TRACE is not set
144# CONFIG_PREEMPT_RCU_TRACE is not set
145# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
146 156
147# 157#
@@ -232,9 +242,12 @@ CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 244CONFIG_UNEVICTABLE_LRU=y
245CONFIG_HAVE_MLOCK=y
246CONFIG_HAVE_MLOCKED_PAGE_BIT=y
235CONFIG_PPC_4K_PAGES=y 247CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set 248# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set 249# CONFIG_PPC_64K_PAGES is not set
250# CONFIG_PPC_256K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
239# CONFIG_PROC_DEVICETREE is not set 252# CONFIG_PROC_DEVICETREE is not set
240# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -268,14 +281,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
268CONFIG_KERNEL_START=0xc0000000 281CONFIG_KERNEL_START=0xc0000000
269CONFIG_PHYSICAL_START=0x00000000 282CONFIG_PHYSICAL_START=0x00000000
270CONFIG_TASK_SIZE=0x80000000 283CONFIG_TASK_SIZE=0x80000000
271CONFIG_CONSISTENT_START=0xfd000000
272CONFIG_CONSISTENT_SIZE=0x00200000
273CONFIG_NET=y 284CONFIG_NET=y
274 285
275# 286#
276# Networking options 287# Networking options
277# 288#
278CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 289CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -331,6 +341,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_LAPB is not set 341# CONFIG_LAPB is not set
332# CONFIG_ECONET is not set 342# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 343# CONFIG_WAN_ROUTER is not set
344# CONFIG_PHONET is not set
334# CONFIG_NET_SCHED is not set 345# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set 346# CONFIG_DCB is not set
336 347
@@ -343,7 +354,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_IRDA is not set 354# CONFIG_IRDA is not set
344# CONFIG_BT is not set 355# CONFIG_BT is not set
345# CONFIG_AF_RXRPC is not set 356# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set
347CONFIG_WIRELESS=y 357CONFIG_WIRELESS=y
348# CONFIG_CFG80211 is not set 358# CONFIG_CFG80211 is not set
349CONFIG_WIRELESS_OLD_REGULATORY=y 359CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -447,7 +457,6 @@ CONFIG_MTD_PHYSMAP_OF=y
447# LPDDR flash memory drivers 457# LPDDR flash memory drivers
448# 458#
449# CONFIG_MTD_LPDDR is not set 459# CONFIG_MTD_LPDDR is not set
450# CONFIG_MTD_QINFO_PROBE is not set
451 460
452# 461#
453# UBI - Unsorted block images 462# UBI - Unsorted block images
@@ -483,6 +492,7 @@ CONFIG_HAVE_IDE=y
483# CONFIG_MD is not set 492# CONFIG_MD is not set
484# CONFIG_MACINTOSH_DRIVERS is not set 493# CONFIG_MACINTOSH_DRIVERS is not set
485CONFIG_NETDEVICES=y 494CONFIG_NETDEVICES=y
495CONFIG_COMPAT_NET_DEV_OPS=y
486# CONFIG_DUMMY is not set 496# CONFIG_DUMMY is not set
487# CONFIG_BONDING is not set 497# CONFIG_BONDING is not set
488# CONFIG_MACVLAN is not set 498# CONFIG_MACVLAN is not set
@@ -511,6 +521,8 @@ CONFIG_FIXED_PHY=y
511# CONFIG_MDIO_BITBANG is not set 521# CONFIG_MDIO_BITBANG is not set
512CONFIG_NET_ETHERNET=y 522CONFIG_NET_ETHERNET=y
513CONFIG_MII=y 523CONFIG_MII=y
524# CONFIG_ETHOC is not set
525# CONFIG_DNET is not set
514# CONFIG_IBM_NEW_EMAC_ZMII is not set 526# CONFIG_IBM_NEW_EMAC_ZMII is not set
515# CONFIG_IBM_NEW_EMAC_RGMII is not set 527# CONFIG_IBM_NEW_EMAC_RGMII is not set
516# CONFIG_IBM_NEW_EMAC_TAH is not set 528# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -531,7 +543,6 @@ CONFIG_FS_ENET_HAS_SCC=y
531# 543#
532# CONFIG_WLAN_PRE80211 is not set 544# CONFIG_WLAN_PRE80211 is not set
533# CONFIG_WLAN_80211 is not set 545# CONFIG_WLAN_80211 is not set
534# CONFIG_IWLWIFI_LEDS is not set
535 546
536# 547#
537# Enable WiMAX (Networking options) to see the WiMAX drivers 548# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -582,6 +593,7 @@ CONFIG_UNIX98_PTYS=y
582# CONFIG_HVC_UDBG is not set 593# CONFIG_HVC_UDBG is not set
583# CONFIG_IPMI_HANDLER is not set 594# CONFIG_IPMI_HANDLER is not set
584CONFIG_HW_RANDOM=y 595CONFIG_HW_RANDOM=y
596# CONFIG_HW_RANDOM_TIMERIOMEM is not set
585# CONFIG_NVRAM is not set 597# CONFIG_NVRAM is not set
586CONFIG_GEN_RTC=y 598CONFIG_GEN_RTC=y
587# CONFIG_GEN_RTC_X is not set 599# CONFIG_GEN_RTC_X is not set
@@ -651,6 +663,7 @@ CONFIG_SSB_POSSIBLE=y
651# CONFIG_EDAC is not set 663# CONFIG_EDAC is not set
652# CONFIG_RTC_CLASS is not set 664# CONFIG_RTC_CLASS is not set
653# CONFIG_DMADEVICES is not set 665# CONFIG_DMADEVICES is not set
666# CONFIG_AUXDISPLAY is not set
654# CONFIG_UIO is not set 667# CONFIG_UIO is not set
655# CONFIG_STAGING is not set 668# CONFIG_STAGING is not set
656 669
@@ -663,6 +676,7 @@ CONFIG_EXT2_FS_XATTR=y
663# CONFIG_EXT2_FS_SECURITY is not set 676# CONFIG_EXT2_FS_SECURITY is not set
664# CONFIG_EXT2_FS_XIP is not set 677# CONFIG_EXT2_FS_XIP is not set
665CONFIG_EXT3_FS=y 678CONFIG_EXT3_FS=y
679# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
666CONFIG_EXT3_FS_XATTR=y 680CONFIG_EXT3_FS_XATTR=y
667# CONFIG_EXT3_FS_POSIX_ACL is not set 681# CONFIG_EXT3_FS_POSIX_ACL is not set
668# CONFIG_EXT3_FS_SECURITY is not set 682# CONFIG_EXT3_FS_SECURITY is not set
@@ -686,6 +700,11 @@ CONFIG_INOTIFY_USER=y
686# CONFIG_FUSE_FS is not set 700# CONFIG_FUSE_FS is not set
687 701
688# 702#
703# Caches
704#
705# CONFIG_FSCACHE is not set
706
707#
689# CD-ROM/DVD Filesystems 708# CD-ROM/DVD Filesystems
690# 709#
691# CONFIG_ISO9660_FS is not set 710# CONFIG_ISO9660_FS is not set
@@ -739,6 +758,7 @@ CONFIG_CRAMFS=y
739# CONFIG_ROMFS_FS is not set 758# CONFIG_ROMFS_FS is not set
740# CONFIG_SYSV_FS is not set 759# CONFIG_SYSV_FS is not set
741# CONFIG_UFS_FS is not set 760# CONFIG_UFS_FS is not set
761# CONFIG_NILFS2_FS is not set
742CONFIG_NETWORK_FILESYSTEMS=y 762CONFIG_NETWORK_FILESYSTEMS=y
743CONFIG_NFS_FS=y 763CONFIG_NFS_FS=y
744CONFIG_NFS_V3=y 764CONFIG_NFS_V3=y
@@ -750,7 +770,6 @@ CONFIG_LOCKD=y
750CONFIG_LOCKD_V4=y 770CONFIG_LOCKD_V4=y
751CONFIG_NFS_COMMON=y 771CONFIG_NFS_COMMON=y
752CONFIG_SUNRPC=y 772CONFIG_SUNRPC=y
753# CONFIG_SUNRPC_REGISTER_V4 is not set
754# CONFIG_RPCSEC_GSS_KRB5 is not set 773# CONFIG_RPCSEC_GSS_KRB5 is not set
755# CONFIG_RPCSEC_GSS_SPKM3 is not set 774# CONFIG_RPCSEC_GSS_SPKM3 is not set
756# CONFIG_SMB_FS is not set 775# CONFIG_SMB_FS is not set
@@ -782,6 +801,7 @@ CONFIG_MSDOS_PARTITION=y
782# CONFIG_SYSV68_PARTITION is not set 801# CONFIG_SYSV68_PARTITION is not set
783# CONFIG_NLS is not set 802# CONFIG_NLS is not set
784# CONFIG_DLM is not set 803# CONFIG_DLM is not set
804# CONFIG_BINARY_PRINTF is not set
785 805
786# 806#
787# Library routines 807# Library routines
@@ -797,11 +817,12 @@ CONFIG_CRC32=y
797# CONFIG_LIBCRC32C is not set 817# CONFIG_LIBCRC32C is not set
798CONFIG_ZLIB_INFLATE=y 818CONFIG_ZLIB_INFLATE=y
799CONFIG_ZLIB_DEFLATE=y 819CONFIG_ZLIB_DEFLATE=y
800CONFIG_PLIST=y 820CONFIG_DECOMPRESS_GZIP=y
801CONFIG_HAS_IOMEM=y 821CONFIG_HAS_IOMEM=y
802CONFIG_HAS_IOPORT=y 822CONFIG_HAS_IOPORT=y
803CONFIG_HAS_DMA=y 823CONFIG_HAS_DMA=y
804CONFIG_HAVE_LMB=y 824CONFIG_HAVE_LMB=y
825CONFIG_NLATTR=y
805 826
806# 827#
807# Kernel hacking 828# Kernel hacking
@@ -819,13 +840,25 @@ CONFIG_DEBUG_FS=y
819# CONFIG_RCU_CPU_STALL_DETECTOR is not set 840# CONFIG_RCU_CPU_STALL_DETECTOR is not set
820# CONFIG_LATENCYTOP is not set 841# CONFIG_LATENCYTOP is not set
821CONFIG_HAVE_FUNCTION_TRACER=y 842CONFIG_HAVE_FUNCTION_TRACER=y
843CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
822CONFIG_HAVE_DYNAMIC_FTRACE=y 844CONFIG_HAVE_DYNAMIC_FTRACE=y
823CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 845CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
846CONFIG_TRACING_SUPPORT=y
824 847
825# 848#
826# Tracers 849# Tracers
827# 850#
828# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 851# CONFIG_FUNCTION_TRACER is not set
852# CONFIG_SCHED_TRACER is not set
853# CONFIG_CONTEXT_SWITCH_TRACER is not set
854# CONFIG_EVENT_TRACER is not set
855# CONFIG_BOOT_TRACER is not set
856# CONFIG_TRACE_BRANCH_PROFILING is not set
857# CONFIG_STACK_TRACER is not set
858# CONFIG_KMEMTRACE is not set
859# CONFIG_WORKQUEUE_TRACER is not set
860# CONFIG_BLK_DEV_IO_TRACE is not set
861# CONFIG_DYNAMIC_DEBUG is not set
829# CONFIG_SAMPLES is not set 862# CONFIG_SAMPLES is not set
830CONFIG_HAVE_ARCH_KGDB=y 863CONFIG_HAVE_ARCH_KGDB=y
831CONFIG_PRINT_STACK_DEPTH=64 864CONFIG_PRINT_STACK_DEPTH=64
@@ -917,6 +950,7 @@ CONFIG_CRYPTO=y
917# Compression 950# Compression
918# 951#
919# CONFIG_CRYPTO_DEFLATE is not set 952# CONFIG_CRYPTO_DEFLATE is not set
953# CONFIG_CRYPTO_ZLIB is not set
920# CONFIG_CRYPTO_LZO is not set 954# CONFIG_CRYPTO_LZO is not set
921 955
922# 956#
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index 38712e861c46..642ab67c8431 100644
--- a/arch/powerpc/configs/mpc7448_hpc2_defconfig
+++ b/arch/powerpc/configs/mpc7448_hpc2_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:33 2009 4# Wed May 13 17:21:56 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18CONFIG_ALTIVEC=y 19CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -54,6 +55,7 @@ CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
55# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 60
59# 61#
@@ -71,6 +73,15 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 73# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 74# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76
77#
78# RCU Subsystem
79#
80CONFIG_CLASSIC_RCU=y
81# CONFIG_TREE_RCU is not set
82# CONFIG_PREEMPT_RCU is not set
83# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
74# CONFIG_IKCONFIG is not set 85# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 86CONFIG_LOG_BUF_SHIFT=14
76CONFIG_GROUP_SCHED=y 87CONFIG_GROUP_SCHED=y
@@ -85,20 +96,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_NAMESPACES is not set 96# CONFIG_NAMESPACES is not set
86CONFIG_BLK_DEV_INITRD=y 97CONFIG_BLK_DEV_INITRD=y
87CONFIG_INITRAMFS_SOURCE="" 98CONFIG_INITRAMFS_SOURCE=""
99CONFIG_RD_GZIP=y
100# CONFIG_RD_BZIP2 is not set
101# CONFIG_RD_LZMA is not set
88# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 102# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
89CONFIG_SYSCTL=y 103CONFIG_SYSCTL=y
104CONFIG_ANON_INODES=y
90CONFIG_EMBEDDED=y 105CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 106CONFIG_SYSCTL_SYSCALL=y
92CONFIG_KALLSYMS=y 107CONFIG_KALLSYMS=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 108# CONFIG_KALLSYMS_EXTRA_PASS is not set
109# CONFIG_STRIP_ASM_SYMS is not set
94CONFIG_HOTPLUG=y 110CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 111CONFIG_PRINTK=y
96CONFIG_BUG=y 112CONFIG_BUG=y
97CONFIG_ELF_CORE=y 113CONFIG_ELF_CORE=y
98CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 114CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 115CONFIG_FUTEX=y
101CONFIG_ANON_INODES=y
102CONFIG_EPOLL=y 116CONFIG_EPOLL=y
103CONFIG_SIGNALFD=y 117CONFIG_SIGNALFD=y
104CONFIG_TIMERFD=y 118CONFIG_TIMERFD=y
@@ -108,16 +122,19 @@ CONFIG_AIO=y
108CONFIG_VM_EVENT_COUNTERS=y 122CONFIG_VM_EVENT_COUNTERS=y
109CONFIG_PCI_QUIRKS=y 123CONFIG_PCI_QUIRKS=y
110CONFIG_SLUB_DEBUG=y 124CONFIG_SLUB_DEBUG=y
125CONFIG_COMPAT_BRK=y
111# CONFIG_SLAB is not set 126# CONFIG_SLAB is not set
112CONFIG_SLUB=y 127CONFIG_SLUB=y
113# CONFIG_SLOB is not set 128# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 129# CONFIG_PROFILING is not set
130# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 131CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 132CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y 133CONFIG_HAVE_IOREMAP_PROT=y
118CONFIG_HAVE_KPROBES=y 134CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 135CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y 136CONFIG_HAVE_ARCH_TRACEHOOK=y
137# CONFIG_SLOW_WORK is not set
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 139CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 140CONFIG_RT_MUTEXES=y
@@ -125,7 +142,6 @@ CONFIG_BASE_SMALL=0
125# CONFIG_MODULES is not set 142# CONFIG_MODULES is not set
126CONFIG_BLOCK=y 143CONFIG_BLOCK=y
127CONFIG_LBD=y 144CONFIG_LBD=y
128# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
130# CONFIG_BLK_DEV_INTEGRITY is not set 146# CONFIG_BLK_DEV_INTEGRITY is not set
131 147
@@ -141,18 +157,11 @@ CONFIG_DEFAULT_AS=y
141# CONFIG_DEFAULT_CFQ is not set 157# CONFIG_DEFAULT_CFQ is not set
142# CONFIG_DEFAULT_NOOP is not set 158# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="anticipatory" 159CONFIG_DEFAULT_IOSCHED="anticipatory"
144CONFIG_CLASSIC_RCU=y
145# CONFIG_TREE_RCU is not set
146# CONFIG_PREEMPT_RCU is not set
147# CONFIG_TREE_RCU_TRACE is not set
148# CONFIG_PREEMPT_RCU_TRACE is not set
149# CONFIG_FREEZER is not set 160# CONFIG_FREEZER is not set
150 161
151# 162#
152# Platform support 163# Platform support
153# 164#
154CONFIG_PPC_MULTIPLATFORM=y
155CONFIG_CLASSIC32=y
156# CONFIG_PPC_CHRP is not set 165# CONFIG_PPC_CHRP is not set
157# CONFIG_MPC5121_ADS is not set 166# CONFIG_MPC5121_ADS is not set
158# CONFIG_MPC5121_GENERIC is not set 167# CONFIG_MPC5121_GENERIC is not set
@@ -172,6 +181,8 @@ CONFIG_MPC7448HPC2=y
172# CONFIG_PPC_PRPMC2800 is not set 181# CONFIG_PPC_PRPMC2800 is not set
173# CONFIG_PPC_C2K is not set 182# CONFIG_PPC_C2K is not set
174CONFIG_TSI108_BRIDGE=y 183CONFIG_TSI108_BRIDGE=y
184# CONFIG_AMIGAONE is not set
185CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
175# CONFIG_IPIC is not set 186# CONFIG_IPIC is not set
176CONFIG_MPIC=y 187CONFIG_MPIC=y
177CONFIG_MPIC_WEIRD=y 188CONFIG_MPIC_WEIRD=y
@@ -230,9 +241,12 @@ CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
232CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_HAVE_MLOCK=y
245CONFIG_HAVE_MLOCKED_PAGE_BIT=y
233CONFIG_PPC_4K_PAGES=y 246CONFIG_PPC_4K_PAGES=y
234# CONFIG_PPC_16K_PAGES is not set 247# CONFIG_PPC_16K_PAGES is not set
235# CONFIG_PPC_64K_PAGES is not set 248# CONFIG_PPC_64K_PAGES is not set
249# CONFIG_PPC_256K_PAGES is not set
236CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
237CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
238# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +269,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
255# CONFIG_PCI_MSI is not set 269# CONFIG_PCI_MSI is not set
256# CONFIG_PCI_LEGACY is not set 270# CONFIG_PCI_LEGACY is not set
257# CONFIG_PCI_STUB is not set 271# CONFIG_PCI_STUB is not set
272# CONFIG_PCI_IOV is not set
258# CONFIG_PCCARD is not set 273# CONFIG_PCCARD is not set
259# CONFIG_HOTPLUG_PCI is not set 274# CONFIG_HOTPLUG_PCI is not set
260# CONFIG_HAS_RAPIDIO is not set 275# CONFIG_HAS_RAPIDIO is not set
@@ -277,7 +292,6 @@ CONFIG_NET=y
277# 292#
278# Networking options 293# Networking options
279# 294#
280CONFIG_COMPAT_NET_DEV_OPS=y
281CONFIG_PACKET=y 295CONFIG_PACKET=y
282# CONFIG_PACKET_MMAP is not set 296# CONFIG_PACKET_MMAP is not set
283CONFIG_UNIX=y 297CONFIG_UNIX=y
@@ -333,6 +347,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_LAPB is not set 347# CONFIG_LAPB is not set
334# CONFIG_ECONET is not set 348# CONFIG_ECONET is not set
335# CONFIG_WAN_ROUTER is not set 349# CONFIG_WAN_ROUTER is not set
350# CONFIG_PHONET is not set
336# CONFIG_NET_SCHED is not set 351# CONFIG_NET_SCHED is not set
337# CONFIG_DCB is not set 352# CONFIG_DCB is not set
338 353
@@ -345,7 +360,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_IRDA is not set 360# CONFIG_IRDA is not set
346# CONFIG_BT is not set 361# CONFIG_BT is not set
347# CONFIG_AF_RXRPC is not set 362# CONFIG_AF_RXRPC is not set
348# CONFIG_PHONET is not set
349CONFIG_WIRELESS=y 363CONFIG_WIRELESS=y
350# CONFIG_CFG80211 is not set 364# CONFIG_CFG80211 is not set
351CONFIG_WIRELESS_OLD_REGULATORY=y 365CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -392,12 +406,16 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
392# CONFIG_BLK_DEV_HD is not set 406# CONFIG_BLK_DEV_HD is not set
393CONFIG_MISC_DEVICES=y 407CONFIG_MISC_DEVICES=y
394# CONFIG_PHANTOM is not set 408# CONFIG_PHANTOM is not set
395# CONFIG_EEPROM_93CX6 is not set
396# CONFIG_SGI_IOC4 is not set 409# CONFIG_SGI_IOC4 is not set
397# CONFIG_TIFM_CORE is not set 410# CONFIG_TIFM_CORE is not set
398# CONFIG_ENCLOSURE_SERVICES is not set 411# CONFIG_ENCLOSURE_SERVICES is not set
399# CONFIG_HP_ILO is not set 412# CONFIG_HP_ILO is not set
400# CONFIG_C2PORT is not set 413# CONFIG_C2PORT is not set
414
415#
416# EEPROM support
417#
418# CONFIG_EEPROM_93CX6 is not set
401CONFIG_HAVE_IDE=y 419CONFIG_HAVE_IDE=y
402# CONFIG_IDE is not set 420# CONFIG_IDE is not set
403 421
@@ -454,9 +472,11 @@ CONFIG_SCSI_LOWLEVEL=y
454# CONFIG_MEGARAID_NEWGEN is not set 472# CONFIG_MEGARAID_NEWGEN is not set
455# CONFIG_MEGARAID_LEGACY is not set 473# CONFIG_MEGARAID_LEGACY is not set
456# CONFIG_MEGARAID_SAS is not set 474# CONFIG_MEGARAID_SAS is not set
475# CONFIG_SCSI_MPT2SAS is not set
457# CONFIG_SCSI_HPTIOP is not set 476# CONFIG_SCSI_HPTIOP is not set
458# CONFIG_SCSI_BUSLOGIC is not set 477# CONFIG_SCSI_BUSLOGIC is not set
459# CONFIG_LIBFC is not set 478# CONFIG_LIBFC is not set
479# CONFIG_LIBFCOE is not set
460# CONFIG_FCOE is not set 480# CONFIG_FCOE is not set
461# CONFIG_SCSI_DMX3191D is not set 481# CONFIG_SCSI_DMX3191D is not set
462# CONFIG_SCSI_EATA is not set 482# CONFIG_SCSI_EATA is not set
@@ -479,6 +499,7 @@ CONFIG_SCSI_LOWLEVEL=y
479# CONFIG_SCSI_DEBUG is not set 499# CONFIG_SCSI_DEBUG is not set
480# CONFIG_SCSI_SRP is not set 500# CONFIG_SCSI_SRP is not set
481# CONFIG_SCSI_DH is not set 501# CONFIG_SCSI_DH is not set
502# CONFIG_SCSI_OSD_INITIATOR is not set
482CONFIG_ATA=y 503CONFIG_ATA=y
483# CONFIG_ATA_NONSTANDARD is not set 504# CONFIG_ATA_NONSTANDARD is not set
484CONFIG_SATA_PMP=y 505CONFIG_SATA_PMP=y
@@ -554,6 +575,7 @@ CONFIG_SATA_MV=y
554# CONFIG_I2O is not set 575# CONFIG_I2O is not set
555# CONFIG_MACINTOSH_DRIVERS is not set 576# CONFIG_MACINTOSH_DRIVERS is not set
556CONFIG_NETDEVICES=y 577CONFIG_NETDEVICES=y
578CONFIG_COMPAT_NET_DEV_OPS=y
557# CONFIG_DUMMY is not set 579# CONFIG_DUMMY is not set
558# CONFIG_BONDING is not set 580# CONFIG_BONDING is not set
559# CONFIG_MACVLAN is not set 581# CONFIG_MACVLAN is not set
@@ -587,6 +609,8 @@ CONFIG_MII=y
587# CONFIG_SUNGEM is not set 609# CONFIG_SUNGEM is not set
588# CONFIG_CASSINI is not set 610# CONFIG_CASSINI is not set
589# CONFIG_NET_VENDOR_3COM is not set 611# CONFIG_NET_VENDOR_3COM is not set
612# CONFIG_ETHOC is not set
613# CONFIG_DNET is not set
590# CONFIG_NET_TULIP is not set 614# CONFIG_NET_TULIP is not set
591# CONFIG_HP100 is not set 615# CONFIG_HP100 is not set
592# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -628,6 +652,7 @@ CONFIG_NETDEV_1000=y
628# CONFIG_E1000E is not set 652# CONFIG_E1000E is not set
629# CONFIG_IP1000 is not set 653# CONFIG_IP1000 is not set
630# CONFIG_IGB is not set 654# CONFIG_IGB is not set
655# CONFIG_IGBVF is not set
631# CONFIG_NS83820 is not set 656# CONFIG_NS83820 is not set
632# CONFIG_HAMACHI is not set 657# CONFIG_HAMACHI is not set
633# CONFIG_YELLOWFIN is not set 658# CONFIG_YELLOWFIN is not set
@@ -639,10 +664,10 @@ CONFIG_NETDEV_1000=y
639# CONFIG_TIGON3 is not set 664# CONFIG_TIGON3 is not set
640# CONFIG_BNX2 is not set 665# CONFIG_BNX2 is not set
641CONFIG_TSI108_ETH=y 666CONFIG_TSI108_ETH=y
642# CONFIG_MV643XX_ETH is not set
643# CONFIG_QLA3XXX is not set 667# CONFIG_QLA3XXX is not set
644# CONFIG_ATL1 is not set 668# CONFIG_ATL1 is not set
645# CONFIG_ATL1E is not set 669# CONFIG_ATL1E is not set
670# CONFIG_ATL1C is not set
646# CONFIG_JME is not set 671# CONFIG_JME is not set
647CONFIG_NETDEV_10000=y 672CONFIG_NETDEV_10000=y
648# CONFIG_CHELSIO_T1 is not set 673# CONFIG_CHELSIO_T1 is not set
@@ -652,6 +677,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
652# CONFIG_IXGBE is not set 677# CONFIG_IXGBE is not set
653# CONFIG_IXGB is not set 678# CONFIG_IXGB is not set
654# CONFIG_S2IO is not set 679# CONFIG_S2IO is not set
680# CONFIG_VXGE is not set
655# CONFIG_MYRI10GE is not set 681# CONFIG_MYRI10GE is not set
656# CONFIG_NETXEN_NIC is not set 682# CONFIG_NETXEN_NIC is not set
657# CONFIG_NIU is not set 683# CONFIG_NIU is not set
@@ -661,6 +687,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
661# CONFIG_BNX2X is not set 687# CONFIG_BNX2X is not set
662# CONFIG_QLGE is not set 688# CONFIG_QLGE is not set
663# CONFIG_SFC is not set 689# CONFIG_SFC is not set
690# CONFIG_BE2NET is not set
664# CONFIG_TR is not set 691# CONFIG_TR is not set
665 692
666# 693#
@@ -668,7 +695,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
668# 695#
669# CONFIG_WLAN_PRE80211 is not set 696# CONFIG_WLAN_PRE80211 is not set
670# CONFIG_WLAN_80211 is not set 697# CONFIG_WLAN_80211 is not set
671# CONFIG_IWLWIFI_LEDS is not set
672 698
673# 699#
674# Enable WiMAX (Networking options) to see the WiMAX drivers 700# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -839,7 +865,6 @@ CONFIG_HID=y
839# 865#
840# Special HID drivers 866# Special HID drivers
841# 867#
842CONFIG_HID_COMPAT=y
843CONFIG_USB_SUPPORT=y 868CONFIG_USB_SUPPORT=y
844CONFIG_USB_ARCH_HAS_HCD=y 869CONFIG_USB_ARCH_HAS_HCD=y
845CONFIG_USB_ARCH_HAS_OHCI=y 870CONFIG_USB_ARCH_HAS_OHCI=y
@@ -853,7 +878,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
853# 878#
854 879
855# 880#
856# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 881# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
857# 882#
858# CONFIG_USB_GADGET is not set 883# CONFIG_USB_GADGET is not set
859 884
@@ -869,6 +894,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
869# CONFIG_EDAC is not set 894# CONFIG_EDAC is not set
870# CONFIG_RTC_CLASS is not set 895# CONFIG_RTC_CLASS is not set
871# CONFIG_DMADEVICES is not set 896# CONFIG_DMADEVICES is not set
897# CONFIG_AUXDISPLAY is not set
872# CONFIG_UIO is not set 898# CONFIG_UIO is not set
873# CONFIG_STAGING is not set 899# CONFIG_STAGING is not set
874 900
@@ -879,6 +905,7 @@ CONFIG_EXT2_FS=y
879# CONFIG_EXT2_FS_XATTR is not set 905# CONFIG_EXT2_FS_XATTR is not set
880# CONFIG_EXT2_FS_XIP is not set 906# CONFIG_EXT2_FS_XIP is not set
881CONFIG_EXT3_FS=y 907CONFIG_EXT3_FS=y
908# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
882CONFIG_EXT3_FS_XATTR=y 909CONFIG_EXT3_FS_XATTR=y
883# CONFIG_EXT3_FS_POSIX_ACL is not set 910# CONFIG_EXT3_FS_POSIX_ACL is not set
884# CONFIG_EXT3_FS_SECURITY is not set 911# CONFIG_EXT3_FS_SECURITY is not set
@@ -902,6 +929,11 @@ CONFIG_INOTIFY_USER=y
902# CONFIG_FUSE_FS is not set 929# CONFIG_FUSE_FS is not set
903 930
904# 931#
932# Caches
933#
934# CONFIG_FSCACHE is not set
935
936#
905# CD-ROM/DVD Filesystems 937# CD-ROM/DVD Filesystems
906# 938#
907# CONFIG_ISO9660_FS is not set 939# CONFIG_ISO9660_FS is not set
@@ -944,6 +976,7 @@ CONFIG_MISC_FILESYSTEMS=y
944# CONFIG_ROMFS_FS is not set 976# CONFIG_ROMFS_FS is not set
945# CONFIG_SYSV_FS is not set 977# CONFIG_SYSV_FS is not set
946# CONFIG_UFS_FS is not set 978# CONFIG_UFS_FS is not set
979# CONFIG_NILFS2_FS is not set
947CONFIG_NETWORK_FILESYSTEMS=y 980CONFIG_NETWORK_FILESYSTEMS=y
948CONFIG_NFS_FS=y 981CONFIG_NFS_FS=y
949# CONFIG_NFS_V3 is not set 982# CONFIG_NFS_V3 is not set
@@ -953,7 +986,6 @@ CONFIG_ROOT_NFS=y
953CONFIG_LOCKD=y 986CONFIG_LOCKD=y
954CONFIG_NFS_COMMON=y 987CONFIG_NFS_COMMON=y
955CONFIG_SUNRPC=y 988CONFIG_SUNRPC=y
956# CONFIG_SUNRPC_REGISTER_V4 is not set
957# CONFIG_RPCSEC_GSS_KRB5 is not set 989# CONFIG_RPCSEC_GSS_KRB5 is not set
958# CONFIG_RPCSEC_GSS_SPKM3 is not set 990# CONFIG_RPCSEC_GSS_SPKM3 is not set
959# CONFIG_SMB_FS is not set 991# CONFIG_SMB_FS is not set
@@ -985,6 +1017,7 @@ CONFIG_MSDOS_PARTITION=y
985# CONFIG_SYSV68_PARTITION is not set 1017# CONFIG_SYSV68_PARTITION is not set
986# CONFIG_NLS is not set 1018# CONFIG_NLS is not set
987# CONFIG_DLM is not set 1019# CONFIG_DLM is not set
1020# CONFIG_BINARY_PRINTF is not set
988 1021
989# 1022#
990# Library routines 1023# Library routines
@@ -998,11 +1031,13 @@ CONFIG_CRC_T10DIF=y
998CONFIG_CRC32=y 1031CONFIG_CRC32=y
999# CONFIG_CRC7 is not set 1032# CONFIG_CRC7 is not set
1000# CONFIG_LIBCRC32C is not set 1033# CONFIG_LIBCRC32C is not set
1001CONFIG_PLIST=y 1034CONFIG_ZLIB_INFLATE=y
1035CONFIG_DECOMPRESS_GZIP=y
1002CONFIG_HAS_IOMEM=y 1036CONFIG_HAS_IOMEM=y
1003CONFIG_HAS_IOPORT=y 1037CONFIG_HAS_IOPORT=y
1004CONFIG_HAS_DMA=y 1038CONFIG_HAS_DMA=y
1005CONFIG_HAVE_LMB=y 1039CONFIG_HAVE_LMB=y
1040CONFIG_NLATTR=y
1006 1041
1007# 1042#
1008# Kernel hacking 1043# Kernel hacking
@@ -1024,13 +1059,24 @@ CONFIG_FRAME_WARN=1024
1024# CONFIG_LATENCYTOP is not set 1059# CONFIG_LATENCYTOP is not set
1025CONFIG_SYSCTL_SYSCALL_CHECK=y 1060CONFIG_SYSCTL_SYSCALL_CHECK=y
1026CONFIG_HAVE_FUNCTION_TRACER=y 1061CONFIG_HAVE_FUNCTION_TRACER=y
1062CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1027CONFIG_HAVE_DYNAMIC_FTRACE=y 1063CONFIG_HAVE_DYNAMIC_FTRACE=y
1028CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1064CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1065CONFIG_TRACING_SUPPORT=y
1029 1066
1030# 1067#
1031# Tracers 1068# Tracers
1032# 1069#
1033# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1070# CONFIG_FUNCTION_TRACER is not set
1071# CONFIG_SCHED_TRACER is not set
1072# CONFIG_CONTEXT_SWITCH_TRACER is not set
1073# CONFIG_EVENT_TRACER is not set
1074# CONFIG_BOOT_TRACER is not set
1075# CONFIG_TRACE_BRANCH_PROFILING is not set
1076# CONFIG_STACK_TRACER is not set
1077# CONFIG_KMEMTRACE is not set
1078# CONFIG_WORKQUEUE_TRACER is not set
1079# CONFIG_BLK_DEV_IO_TRACE is not set
1034# CONFIG_SAMPLES is not set 1080# CONFIG_SAMPLES is not set
1035CONFIG_HAVE_ARCH_KGDB=y 1081CONFIG_HAVE_ARCH_KGDB=y
1036CONFIG_PRINT_STACK_DEPTH=64 1082CONFIG_PRINT_STACK_DEPTH=64
@@ -1122,6 +1168,7 @@ CONFIG_CRYPTO=y
1122# Compression 1168# Compression
1123# 1169#
1124# CONFIG_CRYPTO_DEFLATE is not set 1170# CONFIG_CRYPTO_DEFLATE is not set
1171# CONFIG_CRYPTO_ZLIB is not set
1125# CONFIG_CRYPTO_LZO is not set 1172# CONFIG_CRYPTO_LZO is not set
1126 1173
1127# 1174#
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index d85a43cb821f..cb966ca2ce89 100644
--- a/arch/powerpc/configs/mpc8272_ads_defconfig
+++ b/arch/powerpc/configs/mpc8272_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:35 2009 4# Wed May 13 17:21:57 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -55,6 +56,7 @@ CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59 61
60# 62#
@@ -71,6 +73,15 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 73# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 74# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76
77#
78# RCU Subsystem
79#
80CONFIG_CLASSIC_RCU=y
81# CONFIG_TREE_RCU is not set
82# CONFIG_PREEMPT_RCU is not set
83# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
74CONFIG_IKCONFIG=y 85CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 86CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 87CONFIG_LOG_BUF_SHIFT=14
@@ -82,20 +93,19 @@ CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_BLK_DEV_INITRD is not set 93# CONFIG_BLK_DEV_INITRD is not set
83CONFIG_CC_OPTIMIZE_FOR_SIZE=y 94CONFIG_CC_OPTIMIZE_FOR_SIZE=y
84CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
96CONFIG_ANON_INODES=y
85CONFIG_EMBEDDED=y 97CONFIG_EMBEDDED=y
86CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
87CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
88CONFIG_KALLSYMS_ALL=y 100CONFIG_KALLSYMS_ALL=y
89CONFIG_KALLSYMS_STRIP_GENERATED=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 101# CONFIG_KALLSYMS_EXTRA_PASS is not set
102# CONFIG_STRIP_ASM_SYMS is not set
91CONFIG_HOTPLUG=y 103CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 104CONFIG_PRINTK=y
93CONFIG_BUG=y 105CONFIG_BUG=y
94CONFIG_ELF_CORE=y 106CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
96CONFIG_BASE_FULL=y 107CONFIG_BASE_FULL=y
97CONFIG_FUTEX=y 108CONFIG_FUTEX=y
98CONFIG_ANON_INODES=y
99CONFIG_EPOLL=y 109CONFIG_EPOLL=y
100CONFIG_SIGNALFD=y 110CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y 111CONFIG_TIMERFD=y
@@ -105,10 +115,12 @@ CONFIG_AIO=y
105CONFIG_VM_EVENT_COUNTERS=y 115CONFIG_VM_EVENT_COUNTERS=y
106CONFIG_PCI_QUIRKS=y 116CONFIG_PCI_QUIRKS=y
107CONFIG_SLUB_DEBUG=y 117CONFIG_SLUB_DEBUG=y
118CONFIG_COMPAT_BRK=y
108# CONFIG_SLAB is not set 119# CONFIG_SLAB is not set
109CONFIG_SLUB=y 120CONFIG_SLUB=y
110# CONFIG_SLOB is not set 121# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set 122# CONFIG_PROFILING is not set
123# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 126CONFIG_HAVE_IOREMAP_PROT=y
@@ -116,6 +128,7 @@ CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 128CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 129CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y 130CONFIG_HAVE_CLK=y
131# CONFIG_SLOW_WORK is not set
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
121CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
@@ -123,7 +136,6 @@ CONFIG_BASE_SMALL=0
123# CONFIG_MODULES is not set 136# CONFIG_MODULES is not set
124CONFIG_BLOCK=y 137CONFIG_BLOCK=y
125# CONFIG_LBD is not set 138# CONFIG_LBD is not set
126# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
128 140
129# 141#
@@ -138,18 +150,11 @@ CONFIG_DEFAULT_AS=y
138# CONFIG_DEFAULT_CFQ is not set 150# CONFIG_DEFAULT_CFQ is not set
139# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
140CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
141CONFIG_CLASSIC_RCU=y
142# CONFIG_TREE_RCU is not set
143# CONFIG_PREEMPT_RCU is not set
144# CONFIG_TREE_RCU_TRACE is not set
145# CONFIG_PREEMPT_RCU_TRACE is not set
146# CONFIG_FREEZER is not set 153# CONFIG_FREEZER is not set
147 154
148# 155#
149# Platform support 156# Platform support
150# 157#
151CONFIG_PPC_MULTIPLATFORM=y
152CONFIG_CLASSIC32=y
153# CONFIG_PPC_CHRP is not set 158# CONFIG_PPC_CHRP is not set
154# CONFIG_MPC5121_ADS is not set 159# CONFIG_MPC5121_ADS is not set
155# CONFIG_MPC5121_GENERIC is not set 160# CONFIG_MPC5121_GENERIC is not set
@@ -169,6 +174,8 @@ CONFIG_PQ2_ADS_PCI_PIC=y
169# CONFIG_PPC_83xx is not set 174# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set 175# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set 176# CONFIG_EMBEDDED6xx is not set
177# CONFIG_AMIGAONE is not set
178CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
172# CONFIG_IPIC is not set 179# CONFIG_IPIC is not set
173# CONFIG_MPIC is not set 180# CONFIG_MPIC is not set
174# CONFIG_MPIC_WEIRD is not set 181# CONFIG_MPIC_WEIRD is not set
@@ -225,9 +232,12 @@ CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_HAVE_MLOCK=y
236CONFIG_HAVE_MLOCKED_PAGE_BIT=y
228CONFIG_PPC_4K_PAGES=y 237CONFIG_PPC_4K_PAGES=y
229# CONFIG_PPC_16K_PAGES is not set 238# CONFIG_PPC_16K_PAGES is not set
230# CONFIG_PPC_64K_PAGES is not set 239# CONFIG_PPC_64K_PAGES is not set
240# CONFIG_PPC_256K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -253,6 +263,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
254# CONFIG_PCI_DEBUG is not set 264# CONFIG_PCI_DEBUG is not set
255# CONFIG_PCI_STUB is not set 265# CONFIG_PCI_STUB is not set
266# CONFIG_PCI_IOV is not set
256# CONFIG_PCCARD is not set 267# CONFIG_PCCARD is not set
257# CONFIG_HOTPLUG_PCI is not set 268# CONFIG_HOTPLUG_PCI is not set
258# CONFIG_HAS_RAPIDIO is not set 269# CONFIG_HAS_RAPIDIO is not set
@@ -275,7 +286,6 @@ CONFIG_NET=y
275# 286#
276# Networking options 287# Networking options
277# 288#
278CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 289CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -356,6 +366,7 @@ CONFIG_NETFILTER_ADVANCED=y
356# CONFIG_LLC2 is not set 366# CONFIG_LLC2 is not set
357# CONFIG_IPX is not set 367# CONFIG_IPX is not set
358# CONFIG_ATALK is not set 368# CONFIG_ATALK is not set
369# CONFIG_PHONET is not set
359# CONFIG_NET_SCHED is not set 370# CONFIG_NET_SCHED is not set
360# CONFIG_DCB is not set 371# CONFIG_DCB is not set
361 372
@@ -367,7 +378,6 @@ CONFIG_NETFILTER_ADVANCED=y
367# CONFIG_CAN is not set 378# CONFIG_CAN is not set
368# CONFIG_IRDA is not set 379# CONFIG_IRDA is not set
369# CONFIG_BT is not set 380# CONFIG_BT is not set
370# CONFIG_PHONET is not set
371CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
372# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
373CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -472,7 +482,6 @@ CONFIG_MTD_PHYSMAP_OF=y
472# LPDDR flash memory drivers 482# LPDDR flash memory drivers
473# 483#
474# CONFIG_MTD_LPDDR is not set 484# CONFIG_MTD_LPDDR is not set
475# CONFIG_MTD_QINFO_PROBE is not set
476 485
477# 486#
478# UBI - Unsorted block images 487# UBI - Unsorted block images
@@ -521,6 +530,7 @@ CONFIG_HAVE_IDE=y
521# CONFIG_I2O is not set 530# CONFIG_I2O is not set
522# CONFIG_MACINTOSH_DRIVERS is not set 531# CONFIG_MACINTOSH_DRIVERS is not set
523CONFIG_NETDEVICES=y 532CONFIG_NETDEVICES=y
533CONFIG_COMPAT_NET_DEV_OPS=y
524# CONFIG_DUMMY is not set 534# CONFIG_DUMMY is not set
525# CONFIG_BONDING is not set 535# CONFIG_BONDING is not set
526# CONFIG_EQUALIZER is not set 536# CONFIG_EQUALIZER is not set
@@ -554,6 +564,8 @@ CONFIG_MII=y
554# CONFIG_SUNGEM is not set 564# CONFIG_SUNGEM is not set
555# CONFIG_CASSINI is not set 565# CONFIG_CASSINI is not set
556# CONFIG_NET_VENDOR_3COM is not set 566# CONFIG_NET_VENDOR_3COM is not set
567# CONFIG_ETHOC is not set
568# CONFIG_DNET is not set
557# CONFIG_NET_TULIP is not set 569# CONFIG_NET_TULIP is not set
558# CONFIG_HP100 is not set 570# CONFIG_HP100 is not set
559# CONFIG_IBM_NEW_EMAC_ZMII is not set 571# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -576,6 +588,7 @@ CONFIG_NETDEV_1000=y
576# CONFIG_E1000 is not set 588# CONFIG_E1000 is not set
577# CONFIG_E1000E is not set 589# CONFIG_E1000E is not set
578# CONFIG_IGB is not set 590# CONFIG_IGB is not set
591# CONFIG_IGBVF is not set
579# CONFIG_NS83820 is not set 592# CONFIG_NS83820 is not set
580# CONFIG_HAMACHI is not set 593# CONFIG_HAMACHI is not set
581# CONFIG_R8169 is not set 594# CONFIG_R8169 is not set
@@ -585,8 +598,8 @@ CONFIG_NETDEV_1000=y
585# CONFIG_VIA_VELOCITY is not set 598# CONFIG_VIA_VELOCITY is not set
586# CONFIG_TIGON3 is not set 599# CONFIG_TIGON3 is not set
587# CONFIG_BNX2 is not set 600# CONFIG_BNX2 is not set
601# CONFIG_FSL_PQ_MDIO is not set
588# CONFIG_GIANFAR is not set 602# CONFIG_GIANFAR is not set
589# CONFIG_MV643XX_ETH is not set
590# CONFIG_QLA3XXX is not set 603# CONFIG_QLA3XXX is not set
591# CONFIG_ATL1 is not set 604# CONFIG_ATL1 is not set
592# CONFIG_JME is not set 605# CONFIG_JME is not set
@@ -598,6 +611,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
598# CONFIG_IXGBE is not set 611# CONFIG_IXGBE is not set
599# CONFIG_IXGB is not set 612# CONFIG_IXGB is not set
600# CONFIG_S2IO is not set 613# CONFIG_S2IO is not set
614# CONFIG_VXGE is not set
601# CONFIG_MYRI10GE is not set 615# CONFIG_MYRI10GE is not set
602# CONFIG_NETXEN_NIC is not set 616# CONFIG_NETXEN_NIC is not set
603# CONFIG_NIU is not set 617# CONFIG_NIU is not set
@@ -607,6 +621,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
607# CONFIG_BNX2X is not set 621# CONFIG_BNX2X is not set
608# CONFIG_QLGE is not set 622# CONFIG_QLGE is not set
609# CONFIG_SFC is not set 623# CONFIG_SFC is not set
624# CONFIG_BE2NET is not set
610# CONFIG_TR is not set 625# CONFIG_TR is not set
611 626
612# 627#
@@ -614,7 +629,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
614# 629#
615# CONFIG_WLAN_PRE80211 is not set 630# CONFIG_WLAN_PRE80211 is not set
616# CONFIG_WLAN_80211 is not set 631# CONFIG_WLAN_80211 is not set
617# CONFIG_IWLWIFI_LEDS is not set
618 632
619# 633#
620# Enable WiMAX (Networking options) to see the WiMAX drivers 634# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -668,7 +682,6 @@ CONFIG_MOUSE_PS2=y
668CONFIG_MOUSE_PS2_ALPS=y 682CONFIG_MOUSE_PS2_ALPS=y
669CONFIG_MOUSE_PS2_LOGIPS2PP=y 683CONFIG_MOUSE_PS2_LOGIPS2PP=y
670CONFIG_MOUSE_PS2_SYNAPTICS=y 684CONFIG_MOUSE_PS2_SYNAPTICS=y
671CONFIG_MOUSE_PS2_LIFEBOOK=y
672CONFIG_MOUSE_PS2_TRACKPOINT=y 685CONFIG_MOUSE_PS2_TRACKPOINT=y
673# CONFIG_MOUSE_PS2_ELANTECH is not set 686# CONFIG_MOUSE_PS2_ELANTECH is not set
674# CONFIG_MOUSE_PS2_TOUCHKIT is not set 687# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -719,6 +732,7 @@ CONFIG_LEGACY_PTYS=y
719CONFIG_LEGACY_PTY_COUNT=256 732CONFIG_LEGACY_PTY_COUNT=256
720# CONFIG_IPMI_HANDLER is not set 733# CONFIG_IPMI_HANDLER is not set
721CONFIG_HW_RANDOM=y 734CONFIG_HW_RANDOM=y
735# CONFIG_HW_RANDOM_TIMERIOMEM is not set
722# CONFIG_NVRAM is not set 736# CONFIG_NVRAM is not set
723# CONFIG_GEN_RTC is not set 737# CONFIG_GEN_RTC is not set
724# CONFIG_R3964 is not set 738# CONFIG_R3964 is not set
@@ -809,8 +823,10 @@ CONFIG_DAB=y
809# CONFIG_NEW_LEDS is not set 823# CONFIG_NEW_LEDS is not set
810# CONFIG_ACCESSIBILITY is not set 824# CONFIG_ACCESSIBILITY is not set
811# CONFIG_INFINIBAND is not set 825# CONFIG_INFINIBAND is not set
826# CONFIG_EDAC is not set
812# CONFIG_RTC_CLASS is not set 827# CONFIG_RTC_CLASS is not set
813# CONFIG_DMADEVICES is not set 828# CONFIG_DMADEVICES is not set
829# CONFIG_AUXDISPLAY is not set
814# CONFIG_UIO is not set 830# CONFIG_UIO is not set
815# CONFIG_STAGING is not set 831# CONFIG_STAGING is not set
816 832
@@ -821,6 +837,7 @@ CONFIG_EXT2_FS=y
821# CONFIG_EXT2_FS_XATTR is not set 837# CONFIG_EXT2_FS_XATTR is not set
822# CONFIG_EXT2_FS_XIP is not set 838# CONFIG_EXT2_FS_XIP is not set
823CONFIG_EXT3_FS=y 839CONFIG_EXT3_FS=y
840# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
824CONFIG_EXT3_FS_XATTR=y 841CONFIG_EXT3_FS_XATTR=y
825# CONFIG_EXT3_FS_POSIX_ACL is not set 842# CONFIG_EXT3_FS_POSIX_ACL is not set
826# CONFIG_EXT3_FS_SECURITY is not set 843# CONFIG_EXT3_FS_SECURITY is not set
@@ -842,6 +859,10 @@ CONFIG_AUTOFS4_FS=y
842# CONFIG_FUSE_FS is not set 859# CONFIG_FUSE_FS is not set
843 860
844# 861#
862# Caches
863#
864
865#
845# CD-ROM/DVD Filesystems 866# CD-ROM/DVD Filesystems
846# 867#
847# CONFIG_ISO9660_FS is not set 868# CONFIG_ISO9660_FS is not set
@@ -956,6 +977,7 @@ CONFIG_NLS_ISO8859_1=y
956# CONFIG_NLS_KOI8_R is not set 977# CONFIG_NLS_KOI8_R is not set
957# CONFIG_NLS_KOI8_U is not set 978# CONFIG_NLS_KOI8_U is not set
958CONFIG_NLS_UTF8=y 979CONFIG_NLS_UTF8=y
980# CONFIG_BINARY_PRINTF is not set
959 981
960# 982#
961# Library routines 983# Library routines
@@ -971,11 +993,11 @@ CONFIG_CRC32=y
971# CONFIG_LIBCRC32C is not set 993# CONFIG_LIBCRC32C is not set
972CONFIG_ZLIB_INFLATE=y 994CONFIG_ZLIB_INFLATE=y
973CONFIG_ZLIB_DEFLATE=y 995CONFIG_ZLIB_DEFLATE=y
974CONFIG_PLIST=y
975CONFIG_HAS_IOMEM=y 996CONFIG_HAS_IOMEM=y
976CONFIG_HAS_IOPORT=y 997CONFIG_HAS_IOPORT=y
977CONFIG_HAS_DMA=y 998CONFIG_HAS_DMA=y
978CONFIG_HAVE_LMB=y 999CONFIG_HAVE_LMB=y
1000CONFIG_NLATTR=y
979 1001
980# 1002#
981# Kernel hacking 1003# Kernel hacking
@@ -993,6 +1015,9 @@ CONFIG_DEBUG_KERNEL=y
993CONFIG_DETECT_SOFTLOCKUP=y 1015CONFIG_DETECT_SOFTLOCKUP=y
994# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1016# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
995CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1017CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1018CONFIG_DETECT_HUNG_TASK=y
1019# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1020CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
996CONFIG_SCHED_DEBUG=y 1021CONFIG_SCHED_DEBUG=y
997# CONFIG_SCHEDSTATS is not set 1022# CONFIG_SCHEDSTATS is not set
998# CONFIG_TIMER_STATS is not set 1023# CONFIG_TIMER_STATS is not set
@@ -1022,9 +1047,12 @@ CONFIG_DEBUG_INFO=y
1022# CONFIG_FAULT_INJECTION is not set 1047# CONFIG_FAULT_INJECTION is not set
1023# CONFIG_LATENCYTOP is not set 1048# CONFIG_LATENCYTOP is not set
1024CONFIG_SYSCTL_SYSCALL_CHECK=y 1049CONFIG_SYSCTL_SYSCALL_CHECK=y
1050# CONFIG_DEBUG_PAGEALLOC is not set
1025CONFIG_HAVE_FUNCTION_TRACER=y 1051CONFIG_HAVE_FUNCTION_TRACER=y
1052CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1026CONFIG_HAVE_DYNAMIC_FTRACE=y 1053CONFIG_HAVE_DYNAMIC_FTRACE=y
1027CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1054CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1055CONFIG_TRACING_SUPPORT=y
1028 1056
1029# 1057#
1030# Tracers 1058# Tracers
@@ -1032,16 +1060,18 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1032# CONFIG_FUNCTION_TRACER is not set 1060# CONFIG_FUNCTION_TRACER is not set
1033# CONFIG_SCHED_TRACER is not set 1061# CONFIG_SCHED_TRACER is not set
1034# CONFIG_CONTEXT_SWITCH_TRACER is not set 1062# CONFIG_CONTEXT_SWITCH_TRACER is not set
1063# CONFIG_EVENT_TRACER is not set
1035# CONFIG_BOOT_TRACER is not set 1064# CONFIG_BOOT_TRACER is not set
1036# CONFIG_TRACE_BRANCH_PROFILING is not set 1065# CONFIG_TRACE_BRANCH_PROFILING is not set
1037# CONFIG_STACK_TRACER is not set 1066# CONFIG_STACK_TRACER is not set
1038# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1067# CONFIG_KMEMTRACE is not set
1068# CONFIG_WORKQUEUE_TRACER is not set
1069# CONFIG_BLK_DEV_IO_TRACE is not set
1039# CONFIG_SAMPLES is not set 1070# CONFIG_SAMPLES is not set
1040CONFIG_HAVE_ARCH_KGDB=y 1071CONFIG_HAVE_ARCH_KGDB=y
1041CONFIG_PRINT_STACK_DEPTH=64 1072CONFIG_PRINT_STACK_DEPTH=64
1042# CONFIG_DEBUG_STACKOVERFLOW is not set 1073# CONFIG_DEBUG_STACKOVERFLOW is not set
1043# CONFIG_DEBUG_STACK_USAGE is not set 1074# CONFIG_DEBUG_STACK_USAGE is not set
1044# CONFIG_DEBUG_PAGEALLOC is not set
1045# CONFIG_CODE_PATCHING_SELFTEST is not set 1075# CONFIG_CODE_PATCHING_SELFTEST is not set
1046# CONFIG_FTR_FIXUP_SELFTEST is not set 1076# CONFIG_FTR_FIXUP_SELFTEST is not set
1047# CONFIG_MSI_BITMAP_SELFTEST is not set 1077# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1072,9 +1102,11 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1072CONFIG_CRYPTO_HASH=y 1102CONFIG_CRYPTO_HASH=y
1073CONFIG_CRYPTO_HASH2=y 1103CONFIG_CRYPTO_HASH2=y
1074CONFIG_CRYPTO_RNG2=y 1104CONFIG_CRYPTO_RNG2=y
1105CONFIG_CRYPTO_PCOMP=y
1075CONFIG_CRYPTO_MANAGER=y 1106CONFIG_CRYPTO_MANAGER=y
1076CONFIG_CRYPTO_MANAGER2=y 1107CONFIG_CRYPTO_MANAGER2=y
1077# CONFIG_CRYPTO_NULL is not set 1108# CONFIG_CRYPTO_NULL is not set
1109CONFIG_CRYPTO_WORKQUEUE=y
1078# CONFIG_CRYPTO_CRYPTD is not set 1110# CONFIG_CRYPTO_CRYPTD is not set
1079# CONFIG_CRYPTO_AUTHENC is not set 1111# CONFIG_CRYPTO_AUTHENC is not set
1080 1112
@@ -1138,6 +1170,7 @@ CONFIG_CRYPTO_DES=y
1138# Compression 1170# Compression
1139# 1171#
1140# CONFIG_CRYPTO_DEFLATE is not set 1172# CONFIG_CRYPTO_DEFLATE is not set
1173# CONFIG_CRYPTO_ZLIB is not set
1141# CONFIG_CRYPTO_LZO is not set 1174# CONFIG_CRYPTO_LZO is not set
1142 1175
1143# 1176#
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index 45f03cad8db6..433c303eb82b 100644
--- a/arch/powerpc/configs/mpc83xx_defconfig
+++ b/arch/powerpc/configs/mpc83xx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:36 2009 4# Wed May 13 17:21:58 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -58,6 +59,7 @@ CONFIG_REDBOOT=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 59CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,20 +100,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_EXTRA_PASS is not set 112# CONFIG_KALLSYMS_EXTRA_PASS is not set
113# CONFIG_STRIP_ASM_SYMS is not set
98CONFIG_HOTPLUG=y 114CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 115CONFIG_PRINTK=y
100CONFIG_BUG=y 116CONFIG_BUG=y
101CONFIG_ELF_CORE=y 117CONFIG_ELF_CORE=y
102CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 118CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 119CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106# CONFIG_EPOLL is not set 120# CONFIG_EPOLL is not set
107CONFIG_SIGNALFD=y 121CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 122CONFIG_TIMERFD=y
@@ -111,10 +125,12 @@ CONFIG_SHMEM=y
111CONFIG_AIO=y 125CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 126CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 127CONFIG_PCI_QUIRKS=y
128CONFIG_COMPAT_BRK=y
114CONFIG_SLAB=y 129CONFIG_SLAB=y
115# CONFIG_SLUB is not set 130# CONFIG_SLUB is not set
116# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
133# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 135# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,6 +138,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 138CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
141# CONFIG_SLOW_WORK is not set
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 142# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 143CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 144CONFIG_RT_MUTEXES=y
@@ -134,7 +151,6 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_SRCVERSION_ALL is not set 151# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_BLOCK=y 152CONFIG_BLOCK=y
136# CONFIG_LBD is not set 153# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_BLK_DEV_BSG is not set 154# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 155# CONFIG_BLK_DEV_INTEGRITY is not set
140 156
@@ -150,18 +166,11 @@ CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_CFQ is not set 166# CONFIG_DEFAULT_CFQ is not set
151# CONFIG_DEFAULT_NOOP is not set 167# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 168CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y
154# CONFIG_TREE_RCU is not set
155# CONFIG_PREEMPT_RCU is not set
156# CONFIG_TREE_RCU_TRACE is not set
157# CONFIG_PREEMPT_RCU_TRACE is not set
158# CONFIG_FREEZER is not set 169# CONFIG_FREEZER is not set
159 170
160# 171#
161# Platform support 172# Platform support
162# 173#
163CONFIG_PPC_MULTIPLATFORM=y
164CONFIG_CLASSIC32=y
165# CONFIG_PPC_CHRP is not set 174# CONFIG_PPC_CHRP is not set
166# CONFIG_MPC5121_ADS is not set 175# CONFIG_MPC5121_ADS is not set
167# CONFIG_MPC5121_GENERIC is not set 176# CONFIG_MPC5121_GENERIC is not set
@@ -189,6 +198,8 @@ CONFIG_PPC_MPC834x=y
189CONFIG_PPC_MPC837x=y 198CONFIG_PPC_MPC837x=y
190# CONFIG_PPC_86xx is not set 199# CONFIG_PPC_86xx is not set
191# CONFIG_EMBEDDED6xx is not set 200# CONFIG_EMBEDDED6xx is not set
201# CONFIG_AMIGAONE is not set
202CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
192CONFIG_IPIC=y 203CONFIG_IPIC=y
193# CONFIG_MPIC is not set 204# CONFIG_MPIC is not set
194# CONFIG_MPIC_WEIRD is not set 205# CONFIG_MPIC_WEIRD is not set
@@ -251,9 +262,12 @@ CONFIG_ZONE_DMA_FLAG=1
251CONFIG_BOUNCE=y 262CONFIG_BOUNCE=y
252CONFIG_VIRT_TO_BUS=y 263CONFIG_VIRT_TO_BUS=y
253CONFIG_UNEVICTABLE_LRU=y 264CONFIG_UNEVICTABLE_LRU=y
265CONFIG_HAVE_MLOCK=y
266CONFIG_HAVE_MLOCKED_PAGE_BIT=y
254CONFIG_PPC_4K_PAGES=y 267CONFIG_PPC_4K_PAGES=y
255# CONFIG_PPC_16K_PAGES is not set 268# CONFIG_PPC_16K_PAGES is not set
256# CONFIG_PPC_64K_PAGES is not set 269# CONFIG_PPC_64K_PAGES is not set
270# CONFIG_PPC_256K_PAGES is not set
257CONFIG_FORCE_MAX_ZONEORDER=11 271CONFIG_FORCE_MAX_ZONEORDER=11
258CONFIG_PROC_DEVICETREE=y 272CONFIG_PROC_DEVICETREE=y
259# CONFIG_CMDLINE_BOOL is not set 273# CONFIG_CMDLINE_BOOL is not set
@@ -281,6 +295,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
281# CONFIG_PCI_MSI is not set 295# CONFIG_PCI_MSI is not set
282# CONFIG_PCI_LEGACY is not set 296# CONFIG_PCI_LEGACY is not set
283# CONFIG_PCI_STUB is not set 297# CONFIG_PCI_STUB is not set
298# CONFIG_PCI_IOV is not set
284# CONFIG_PCCARD is not set 299# CONFIG_PCCARD is not set
285# CONFIG_HOTPLUG_PCI is not set 300# CONFIG_HOTPLUG_PCI is not set
286# CONFIG_HAS_RAPIDIO is not set 301# CONFIG_HAS_RAPIDIO is not set
@@ -303,7 +318,6 @@ CONFIG_NET=y
303# 318#
304# Networking options 319# Networking options
305# 320#
306CONFIG_COMPAT_NET_DEV_OPS=y
307CONFIG_PACKET=y 321CONFIG_PACKET=y
308# CONFIG_PACKET_MMAP is not set 322# CONFIG_PACKET_MMAP is not set
309CONFIG_UNIX=y 323CONFIG_UNIX=y
@@ -359,6 +373,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_LAPB is not set 373# CONFIG_LAPB is not set
360# CONFIG_ECONET is not set 374# CONFIG_ECONET is not set
361# CONFIG_WAN_ROUTER is not set 375# CONFIG_WAN_ROUTER is not set
376# CONFIG_PHONET is not set
362# CONFIG_NET_SCHED is not set 377# CONFIG_NET_SCHED is not set
363# CONFIG_DCB is not set 378# CONFIG_DCB is not set
364 379
@@ -371,7 +386,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
371# CONFIG_IRDA is not set 386# CONFIG_IRDA is not set
372# CONFIG_BT is not set 387# CONFIG_BT is not set
373# CONFIG_AF_RXRPC is not set 388# CONFIG_AF_RXRPC is not set
374# CONFIG_PHONET is not set
375CONFIG_WIRELESS=y 389CONFIG_WIRELESS=y
376# CONFIG_CFG80211 is not set 390# CONFIG_CFG80211 is not set
377CONFIG_WIRELESS_OLD_REGULATORY=y 391CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -485,7 +499,6 @@ CONFIG_MTD_NAND_FSL_ELBC=y
485# LPDDR flash memory drivers 499# LPDDR flash memory drivers
486# 500#
487# CONFIG_MTD_LPDDR is not set 501# CONFIG_MTD_LPDDR is not set
488# CONFIG_MTD_QINFO_PROBE is not set
489 502
490# 503#
491# UBI - Unsorted block images 504# UBI - Unsorted block images
@@ -516,13 +529,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
516# CONFIG_BLK_DEV_HD is not set 529# CONFIG_BLK_DEV_HD is not set
517CONFIG_MISC_DEVICES=y 530CONFIG_MISC_DEVICES=y
518# CONFIG_PHANTOM is not set 531# CONFIG_PHANTOM is not set
519# CONFIG_EEPROM_93CX6 is not set
520# CONFIG_SGI_IOC4 is not set 532# CONFIG_SGI_IOC4 is not set
521# CONFIG_TIFM_CORE is not set 533# CONFIG_TIFM_CORE is not set
522# CONFIG_ICS932S401 is not set 534# CONFIG_ICS932S401 is not set
523# CONFIG_ENCLOSURE_SERVICES is not set 535# CONFIG_ENCLOSURE_SERVICES is not set
524# CONFIG_HP_ILO is not set 536# CONFIG_HP_ILO is not set
537# CONFIG_ISL29003 is not set
525# CONFIG_C2PORT is not set 538# CONFIG_C2PORT is not set
539
540#
541# EEPROM support
542#
543# CONFIG_EEPROM_AT24 is not set
544# CONFIG_EEPROM_LEGACY is not set
545# CONFIG_EEPROM_93CX6 is not set
526CONFIG_HAVE_IDE=y 546CONFIG_HAVE_IDE=y
527# CONFIG_IDE is not set 547# CONFIG_IDE is not set
528 548
@@ -580,9 +600,11 @@ CONFIG_SCSI_LOWLEVEL=y
580# CONFIG_MEGARAID_NEWGEN is not set 600# CONFIG_MEGARAID_NEWGEN is not set
581# CONFIG_MEGARAID_LEGACY is not set 601# CONFIG_MEGARAID_LEGACY is not set
582# CONFIG_MEGARAID_SAS is not set 602# CONFIG_MEGARAID_SAS is not set
603# CONFIG_SCSI_MPT2SAS is not set
583# CONFIG_SCSI_HPTIOP is not set 604# CONFIG_SCSI_HPTIOP is not set
584# CONFIG_SCSI_BUSLOGIC is not set 605# CONFIG_SCSI_BUSLOGIC is not set
585# CONFIG_LIBFC is not set 606# CONFIG_LIBFC is not set
607# CONFIG_LIBFCOE is not set
586# CONFIG_FCOE is not set 608# CONFIG_FCOE is not set
587# CONFIG_SCSI_DMX3191D is not set 609# CONFIG_SCSI_DMX3191D is not set
588# CONFIG_SCSI_EATA is not set 610# CONFIG_SCSI_EATA is not set
@@ -605,6 +627,7 @@ CONFIG_SCSI_LOWLEVEL=y
605# CONFIG_SCSI_DEBUG is not set 627# CONFIG_SCSI_DEBUG is not set
606# CONFIG_SCSI_SRP is not set 628# CONFIG_SCSI_SRP is not set
607# CONFIG_SCSI_DH is not set 629# CONFIG_SCSI_DH is not set
630# CONFIG_SCSI_OSD_INITIATOR is not set
608CONFIG_ATA=y 631CONFIG_ATA=y
609# CONFIG_ATA_NONSTANDARD is not set 632# CONFIG_ATA_NONSTANDARD is not set
610CONFIG_SATA_PMP=y 633CONFIG_SATA_PMP=y
@@ -681,6 +704,7 @@ CONFIG_ATA_SFF=y
681# CONFIG_I2O is not set 704# CONFIG_I2O is not set
682# CONFIG_MACINTOSH_DRIVERS is not set 705# CONFIG_MACINTOSH_DRIVERS is not set
683CONFIG_NETDEVICES=y 706CONFIG_NETDEVICES=y
707CONFIG_COMPAT_NET_DEV_OPS=y
684# CONFIG_DUMMY is not set 708# CONFIG_DUMMY is not set
685# CONFIG_BONDING is not set 709# CONFIG_BONDING is not set
686# CONFIG_MACVLAN is not set 710# CONFIG_MACVLAN is not set
@@ -714,6 +738,8 @@ CONFIG_MII=y
714# CONFIG_SUNGEM is not set 738# CONFIG_SUNGEM is not set
715# CONFIG_CASSINI is not set 739# CONFIG_CASSINI is not set
716# CONFIG_NET_VENDOR_3COM is not set 740# CONFIG_NET_VENDOR_3COM is not set
741# CONFIG_ETHOC is not set
742# CONFIG_DNET is not set
717# CONFIG_NET_TULIP is not set 743# CONFIG_NET_TULIP is not set
718# CONFIG_HP100 is not set 744# CONFIG_HP100 is not set
719# CONFIG_IBM_NEW_EMAC_ZMII is not set 745# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -733,6 +759,7 @@ CONFIG_NETDEV_1000=y
733# CONFIG_E1000E is not set 759# CONFIG_E1000E is not set
734# CONFIG_IP1000 is not set 760# CONFIG_IP1000 is not set
735# CONFIG_IGB is not set 761# CONFIG_IGB is not set
762# CONFIG_IGBVF is not set
736# CONFIG_NS83820 is not set 763# CONFIG_NS83820 is not set
737# CONFIG_HAMACHI is not set 764# CONFIG_HAMACHI is not set
738# CONFIG_YELLOWFIN is not set 765# CONFIG_YELLOWFIN is not set
@@ -743,14 +770,15 @@ CONFIG_NETDEV_1000=y
743# CONFIG_VIA_VELOCITY is not set 770# CONFIG_VIA_VELOCITY is not set
744# CONFIG_TIGON3 is not set 771# CONFIG_TIGON3 is not set
745# CONFIG_BNX2 is not set 772# CONFIG_BNX2 is not set
773CONFIG_FSL_PQ_MDIO=y
746CONFIG_GIANFAR=y 774CONFIG_GIANFAR=y
747CONFIG_UCC_GETH=y 775CONFIG_UCC_GETH=y
748# CONFIG_UGETH_MAGIC_PACKET is not set 776# CONFIG_UGETH_MAGIC_PACKET is not set
749# CONFIG_UGETH_TX_ON_DEMAND is not set 777# CONFIG_UGETH_TX_ON_DEMAND is not set
750# CONFIG_MV643XX_ETH is not set
751# CONFIG_QLA3XXX is not set 778# CONFIG_QLA3XXX is not set
752# CONFIG_ATL1 is not set 779# CONFIG_ATL1 is not set
753# CONFIG_ATL1E is not set 780# CONFIG_ATL1E is not set
781# CONFIG_ATL1C is not set
754# CONFIG_JME is not set 782# CONFIG_JME is not set
755CONFIG_NETDEV_10000=y 783CONFIG_NETDEV_10000=y
756# CONFIG_CHELSIO_T1 is not set 784# CONFIG_CHELSIO_T1 is not set
@@ -760,6 +788,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
760# CONFIG_IXGBE is not set 788# CONFIG_IXGBE is not set
761# CONFIG_IXGB is not set 789# CONFIG_IXGB is not set
762# CONFIG_S2IO is not set 790# CONFIG_S2IO is not set
791# CONFIG_VXGE is not set
763# CONFIG_MYRI10GE is not set 792# CONFIG_MYRI10GE is not set
764# CONFIG_NETXEN_NIC is not set 793# CONFIG_NETXEN_NIC is not set
765# CONFIG_NIU is not set 794# CONFIG_NIU is not set
@@ -769,6 +798,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
769# CONFIG_BNX2X is not set 798# CONFIG_BNX2X is not set
770# CONFIG_QLGE is not set 799# CONFIG_QLGE is not set
771# CONFIG_SFC is not set 800# CONFIG_SFC is not set
801# CONFIG_BE2NET is not set
772# CONFIG_TR is not set 802# CONFIG_TR is not set
773 803
774# 804#
@@ -776,7 +806,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
776# 806#
777# CONFIG_WLAN_PRE80211 is not set 807# CONFIG_WLAN_PRE80211 is not set
778# CONFIG_WLAN_80211 is not set 808# CONFIG_WLAN_80211 is not set
779# CONFIG_IWLWIFI_LEDS is not set
780 809
781# 810#
782# Enable WiMAX (Networking options) to see the WiMAX drivers 811# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -867,6 +896,7 @@ CONFIG_LEGACY_PTY_COUNT=256
867# CONFIG_HVC_UDBG is not set 896# CONFIG_HVC_UDBG is not set
868# CONFIG_IPMI_HANDLER is not set 897# CONFIG_IPMI_HANDLER is not set
869CONFIG_HW_RANDOM=y 898CONFIG_HW_RANDOM=y
899# CONFIG_HW_RANDOM_TIMERIOMEM is not set
870# CONFIG_NVRAM is not set 900# CONFIG_NVRAM is not set
871CONFIG_GEN_RTC=y 901CONFIG_GEN_RTC=y
872# CONFIG_GEN_RTC_X is not set 902# CONFIG_GEN_RTC_X is not set
@@ -932,12 +962,9 @@ CONFIG_I2C_MPC=y
932# Miscellaneous I2C Chip support 962# Miscellaneous I2C Chip support
933# 963#
934# CONFIG_DS1682 is not set 964# CONFIG_DS1682 is not set
935# CONFIG_EEPROM_AT24 is not set
936# CONFIG_EEPROM_LEGACY is not set
937# CONFIG_SENSORS_PCF8574 is not set 965# CONFIG_SENSORS_PCF8574 is not set
938# CONFIG_PCF8575 is not set 966# CONFIG_PCF8575 is not set
939# CONFIG_SENSORS_PCA9539 is not set 967# CONFIG_SENSORS_PCA9539 is not set
940# CONFIG_SENSORS_PCF8591 is not set
941# CONFIG_SENSORS_MAX6875 is not set 968# CONFIG_SENSORS_MAX6875 is not set
942# CONFIG_SENSORS_TSL2550 is not set 969# CONFIG_SENSORS_TSL2550 is not set
943# CONFIG_I2C_DEBUG_CORE is not set 970# CONFIG_I2C_DEBUG_CORE is not set
@@ -992,6 +1019,7 @@ CONFIG_HWMON=y
992# CONFIG_SENSORS_F71805F is not set 1019# CONFIG_SENSORS_F71805F is not set
993# CONFIG_SENSORS_F71882FG is not set 1020# CONFIG_SENSORS_F71882FG is not set
994# CONFIG_SENSORS_F75375S is not set 1021# CONFIG_SENSORS_F75375S is not set
1022# CONFIG_SENSORS_G760A is not set
995# CONFIG_SENSORS_GL518SM is not set 1023# CONFIG_SENSORS_GL518SM is not set
996# CONFIG_SENSORS_GL520SM is not set 1024# CONFIG_SENSORS_GL520SM is not set
997# CONFIG_SENSORS_IT87 is not set 1025# CONFIG_SENSORS_IT87 is not set
@@ -1006,11 +1034,15 @@ CONFIG_HWMON=y
1006# CONFIG_SENSORS_LM90 is not set 1034# CONFIG_SENSORS_LM90 is not set
1007# CONFIG_SENSORS_LM92 is not set 1035# CONFIG_SENSORS_LM92 is not set
1008# CONFIG_SENSORS_LM93 is not set 1036# CONFIG_SENSORS_LM93 is not set
1037# CONFIG_SENSORS_LTC4215 is not set
1009# CONFIG_SENSORS_LTC4245 is not set 1038# CONFIG_SENSORS_LTC4245 is not set
1039# CONFIG_SENSORS_LM95241 is not set
1010# CONFIG_SENSORS_MAX1619 is not set 1040# CONFIG_SENSORS_MAX1619 is not set
1011# CONFIG_SENSORS_MAX6650 is not set 1041# CONFIG_SENSORS_MAX6650 is not set
1012# CONFIG_SENSORS_PC87360 is not set 1042# CONFIG_SENSORS_PC87360 is not set
1013# CONFIG_SENSORS_PC87427 is not set 1043# CONFIG_SENSORS_PC87427 is not set
1044# CONFIG_SENSORS_PCF8591 is not set
1045# CONFIG_SENSORS_SHT15 is not set
1014# CONFIG_SENSORS_SIS5595 is not set 1046# CONFIG_SENSORS_SIS5595 is not set
1015# CONFIG_SENSORS_DME1737 is not set 1047# CONFIG_SENSORS_DME1737 is not set
1016# CONFIG_SENSORS_SMSC47M1 is not set 1048# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1121,15 +1153,17 @@ CONFIG_USB_HID=y
1121# 1153#
1122# Special HID drivers 1154# Special HID drivers
1123# 1155#
1124CONFIG_HID_COMPAT=y
1125CONFIG_HID_A4TECH=y 1156CONFIG_HID_A4TECH=y
1126CONFIG_HID_APPLE=y 1157CONFIG_HID_APPLE=y
1127CONFIG_HID_BELKIN=y 1158CONFIG_HID_BELKIN=y
1128CONFIG_HID_CHERRY=y 1159CONFIG_HID_CHERRY=y
1129CONFIG_HID_CHICONY=y 1160CONFIG_HID_CHICONY=y
1130CONFIG_HID_CYPRESS=y 1161CONFIG_HID_CYPRESS=y
1162# CONFIG_DRAGONRISE_FF is not set
1131CONFIG_HID_EZKEY=y 1163CONFIG_HID_EZKEY=y
1164# CONFIG_HID_KYE is not set
1132CONFIG_HID_GYRATION=y 1165CONFIG_HID_GYRATION=y
1166# CONFIG_HID_KENSINGTON is not set
1133CONFIG_HID_LOGITECH=y 1167CONFIG_HID_LOGITECH=y
1134# CONFIG_LOGITECH_FF is not set 1168# CONFIG_LOGITECH_FF is not set
1135# CONFIG_LOGIRUMBLEPAD2_FF is not set 1169# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1181,6 +1215,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1181# CONFIG_USB_ISP1760_HCD is not set 1215# CONFIG_USB_ISP1760_HCD is not set
1182# CONFIG_USB_OHCI_HCD is not set 1216# CONFIG_USB_OHCI_HCD is not set
1183# CONFIG_USB_UHCI_HCD is not set 1217# CONFIG_USB_UHCI_HCD is not set
1218# CONFIG_USB_FHCI_HCD is not set
1184# CONFIG_USB_SL811_HCD is not set 1219# CONFIG_USB_SL811_HCD is not set
1185# CONFIG_USB_R8A66597_HCD is not set 1220# CONFIG_USB_R8A66597_HCD is not set
1186# CONFIG_USB_WHCI_HCD is not set 1221# CONFIG_USB_WHCI_HCD is not set
@@ -1195,11 +1230,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1195# CONFIG_USB_TMC is not set 1230# CONFIG_USB_TMC is not set
1196 1231
1197# 1232#
1198# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1233# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1199# 1234#
1200 1235
1201# 1236#
1202# see USB_STORAGE Help for more information 1237# also be needed; see USB_STORAGE Help for more info
1203# 1238#
1204# CONFIG_USB_STORAGE is not set 1239# CONFIG_USB_STORAGE is not set
1205# CONFIG_USB_LIBUSUAL is not set 1240# CONFIG_USB_LIBUSUAL is not set
@@ -1229,7 +1264,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1229# CONFIG_USB_LED is not set 1264# CONFIG_USB_LED is not set
1230# CONFIG_USB_CYPRESS_CY7C63 is not set 1265# CONFIG_USB_CYPRESS_CY7C63 is not set
1231# CONFIG_USB_CYTHERM is not set 1266# CONFIG_USB_CYTHERM is not set
1232# CONFIG_USB_PHIDGET is not set
1233# CONFIG_USB_IDMOUSE is not set 1267# CONFIG_USB_IDMOUSE is not set
1234# CONFIG_USB_FTDI_ELAN is not set 1268# CONFIG_USB_FTDI_ELAN is not set
1235# CONFIG_USB_APPLEDISPLAY is not set 1269# CONFIG_USB_APPLEDISPLAY is not set
@@ -1245,6 +1279,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1245# OTG and related infrastructure 1279# OTG and related infrastructure
1246# 1280#
1247# CONFIG_USB_GPIO_VBUS is not set 1281# CONFIG_USB_GPIO_VBUS is not set
1282# CONFIG_NOP_USB_XCEIV is not set
1248# CONFIG_UWB is not set 1283# CONFIG_UWB is not set
1249# CONFIG_MMC is not set 1284# CONFIG_MMC is not set
1250# CONFIG_MEMSTICK is not set 1285# CONFIG_MEMSTICK is not set
@@ -1254,6 +1289,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1254# CONFIG_EDAC is not set 1289# CONFIG_EDAC is not set
1255# CONFIG_RTC_CLASS is not set 1290# CONFIG_RTC_CLASS is not set
1256# CONFIG_DMADEVICES is not set 1291# CONFIG_DMADEVICES is not set
1292# CONFIG_AUXDISPLAY is not set
1257# CONFIG_UIO is not set 1293# CONFIG_UIO is not set
1258# CONFIG_STAGING is not set 1294# CONFIG_STAGING is not set
1259 1295
@@ -1264,6 +1300,7 @@ CONFIG_EXT2_FS=y
1264# CONFIG_EXT2_FS_XATTR is not set 1300# CONFIG_EXT2_FS_XATTR is not set
1265# CONFIG_EXT2_FS_XIP is not set 1301# CONFIG_EXT2_FS_XIP is not set
1266CONFIG_EXT3_FS=y 1302CONFIG_EXT3_FS=y
1303# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1267CONFIG_EXT3_FS_XATTR=y 1304CONFIG_EXT3_FS_XATTR=y
1268# CONFIG_EXT3_FS_POSIX_ACL is not set 1305# CONFIG_EXT3_FS_POSIX_ACL is not set
1269# CONFIG_EXT3_FS_SECURITY is not set 1306# CONFIG_EXT3_FS_SECURITY is not set
@@ -1286,6 +1323,11 @@ CONFIG_INOTIFY_USER=y
1286# CONFIG_FUSE_FS is not set 1323# CONFIG_FUSE_FS is not set
1287 1324
1288# 1325#
1326# Caches
1327#
1328# CONFIG_FSCACHE is not set
1329
1330#
1289# CD-ROM/DVD Filesystems 1331# CD-ROM/DVD Filesystems
1290# 1332#
1291# CONFIG_ISO9660_FS is not set 1333# CONFIG_ISO9660_FS is not set
@@ -1329,6 +1371,7 @@ CONFIG_MISC_FILESYSTEMS=y
1329# CONFIG_ROMFS_FS is not set 1371# CONFIG_ROMFS_FS is not set
1330# CONFIG_SYSV_FS is not set 1372# CONFIG_SYSV_FS is not set
1331# CONFIG_UFS_FS is not set 1373# CONFIG_UFS_FS is not set
1374# CONFIG_NILFS2_FS is not set
1332CONFIG_NETWORK_FILESYSTEMS=y 1375CONFIG_NETWORK_FILESYSTEMS=y
1333CONFIG_NFS_FS=y 1376CONFIG_NFS_FS=y
1334CONFIG_NFS_V3=y 1377CONFIG_NFS_V3=y
@@ -1341,7 +1384,6 @@ CONFIG_LOCKD_V4=y
1341CONFIG_NFS_COMMON=y 1384CONFIG_NFS_COMMON=y
1342CONFIG_SUNRPC=y 1385CONFIG_SUNRPC=y
1343CONFIG_SUNRPC_GSS=y 1386CONFIG_SUNRPC_GSS=y
1344# CONFIG_SUNRPC_REGISTER_V4 is not set
1345CONFIG_RPCSEC_GSS_KRB5=y 1387CONFIG_RPCSEC_GSS_KRB5=y
1346# CONFIG_RPCSEC_GSS_SPKM3 is not set 1388# CONFIG_RPCSEC_GSS_SPKM3 is not set
1347# CONFIG_SMB_FS is not set 1389# CONFIG_SMB_FS is not set
@@ -1375,6 +1417,7 @@ CONFIG_MSDOS_PARTITION=y
1375# CONFIG_DLM is not set 1417# CONFIG_DLM is not set
1376CONFIG_UCC_FAST=y 1418CONFIG_UCC_FAST=y
1377CONFIG_UCC=y 1419CONFIG_UCC=y
1420# CONFIG_BINARY_PRINTF is not set
1378 1421
1379# 1422#
1380# Library routines 1423# Library routines
@@ -1388,11 +1431,13 @@ CONFIG_CRC_T10DIF=y
1388CONFIG_CRC32=y 1431CONFIG_CRC32=y
1389# CONFIG_CRC7 is not set 1432# CONFIG_CRC7 is not set
1390# CONFIG_LIBCRC32C is not set 1433# CONFIG_LIBCRC32C is not set
1391CONFIG_PLIST=y 1434CONFIG_ZLIB_INFLATE=y
1435CONFIG_DECOMPRESS_GZIP=y
1392CONFIG_HAS_IOMEM=y 1436CONFIG_HAS_IOMEM=y
1393CONFIG_HAS_IOPORT=y 1437CONFIG_HAS_IOPORT=y
1394CONFIG_HAS_DMA=y 1438CONFIG_HAS_DMA=y
1395CONFIG_HAVE_LMB=y 1439CONFIG_HAVE_LMB=y
1440CONFIG_NLATTR=y
1396 1441
1397# 1442#
1398# Kernel hacking 1443# Kernel hacking
@@ -1412,13 +1457,24 @@ CONFIG_FRAME_WARN=1024
1412# CONFIG_LATENCYTOP is not set 1457# CONFIG_LATENCYTOP is not set
1413CONFIG_SYSCTL_SYSCALL_CHECK=y 1458CONFIG_SYSCTL_SYSCALL_CHECK=y
1414CONFIG_HAVE_FUNCTION_TRACER=y 1459CONFIG_HAVE_FUNCTION_TRACER=y
1460CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1415CONFIG_HAVE_DYNAMIC_FTRACE=y 1461CONFIG_HAVE_DYNAMIC_FTRACE=y
1416CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1462CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1463CONFIG_TRACING_SUPPORT=y
1417 1464
1418# 1465#
1419# Tracers 1466# Tracers
1420# 1467#
1421# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1468# CONFIG_FUNCTION_TRACER is not set
1469# CONFIG_SCHED_TRACER is not set
1470# CONFIG_CONTEXT_SWITCH_TRACER is not set
1471# CONFIG_EVENT_TRACER is not set
1472# CONFIG_BOOT_TRACER is not set
1473# CONFIG_TRACE_BRANCH_PROFILING is not set
1474# CONFIG_STACK_TRACER is not set
1475# CONFIG_KMEMTRACE is not set
1476# CONFIG_WORKQUEUE_TRACER is not set
1477# CONFIG_BLK_DEV_IO_TRACE is not set
1422# CONFIG_SAMPLES is not set 1478# CONFIG_SAMPLES is not set
1423CONFIG_HAVE_ARCH_KGDB=y 1479CONFIG_HAVE_ARCH_KGDB=y
1424CONFIG_PRINT_STACK_DEPTH=64 1480CONFIG_PRINT_STACK_DEPTH=64
@@ -1448,10 +1504,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1448CONFIG_CRYPTO_HASH=y 1504CONFIG_CRYPTO_HASH=y
1449CONFIG_CRYPTO_HASH2=y 1505CONFIG_CRYPTO_HASH2=y
1450CONFIG_CRYPTO_RNG2=y 1506CONFIG_CRYPTO_RNG2=y
1507CONFIG_CRYPTO_PCOMP=y
1451CONFIG_CRYPTO_MANAGER=y 1508CONFIG_CRYPTO_MANAGER=y
1452CONFIG_CRYPTO_MANAGER2=y 1509CONFIG_CRYPTO_MANAGER2=y
1453# CONFIG_CRYPTO_GF128MUL is not set 1510# CONFIG_CRYPTO_GF128MUL is not set
1454# CONFIG_CRYPTO_NULL is not set 1511# CONFIG_CRYPTO_NULL is not set
1512CONFIG_CRYPTO_WORKQUEUE=y
1455# CONFIG_CRYPTO_CRYPTD is not set 1513# CONFIG_CRYPTO_CRYPTD is not set
1456CONFIG_CRYPTO_AUTHENC=y 1514CONFIG_CRYPTO_AUTHENC=y
1457# CONFIG_CRYPTO_TEST is not set 1515# CONFIG_CRYPTO_TEST is not set
@@ -1520,6 +1578,7 @@ CONFIG_CRYPTO_DES=y
1520# Compression 1578# Compression
1521# 1579#
1522# CONFIG_CRYPTO_DEFLATE is not set 1580# CONFIG_CRYPTO_DEFLATE is not set
1581# CONFIG_CRYPTO_ZLIB is not set
1523# CONFIG_CRYPTO_LZO is not set 1582# CONFIG_CRYPTO_LZO is not set
1524 1583
1525# 1584#
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 1793d08e9c01..3add6f62b21e 100644
--- a/arch/powerpc/configs/mpc866_ads_defconfig
+++ b/arch/powerpc/configs/mpc866_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:38 2009 4# Wed May 13 17:22:00 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -51,6 +51,7 @@ CONFIG_AUDIT_ARCH=y
51# CONFIG_DEFAULT_UIMAGE is not set 51# CONFIG_DEFAULT_UIMAGE is not set
52# CONFIG_PPC_DCR_NATIVE is not set 52# CONFIG_PPC_DCR_NATIVE is not set
53# CONFIG_PPC_DCR_MMIO is not set 53# CONFIG_PPC_DCR_MMIO is not set
54CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
54CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
55 56
56# 57#
@@ -68,6 +69,15 @@ CONFIG_SYSVIPC_SYSCTL=y
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
72
73#
74# RCU Subsystem
75#
76CONFIG_CLASSIC_RCU=y
77# CONFIG_TREE_RCU is not set
78# CONFIG_PREEMPT_RCU is not set
79# CONFIG_TREE_RCU_TRACE is not set
80# CONFIG_PREEMPT_RCU_TRACE is not set
71# CONFIG_IKCONFIG is not set 81# CONFIG_IKCONFIG is not set
72CONFIG_LOG_BUF_SHIFT=14 82CONFIG_LOG_BUF_SHIFT=14
73CONFIG_GROUP_SCHED=y 83CONFIG_GROUP_SCHED=y
@@ -83,18 +93,18 @@ CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_BLK_DEV_INITRD is not set 93# CONFIG_BLK_DEV_INITRD is not set
84# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 94# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
85CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
96CONFIG_ANON_INODES=y
86CONFIG_EMBEDDED=y 97CONFIG_EMBEDDED=y
87# CONFIG_SYSCTL_SYSCALL is not set 98# CONFIG_SYSCTL_SYSCALL is not set
88CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
89# CONFIG_KALLSYMS_EXTRA_PASS is not set 100# CONFIG_KALLSYMS_EXTRA_PASS is not set
101# CONFIG_STRIP_ASM_SYMS is not set
90# CONFIG_HOTPLUG is not set 102# CONFIG_HOTPLUG is not set
91CONFIG_PRINTK=y 103CONFIG_PRINTK=y
92# CONFIG_BUG is not set 104# CONFIG_BUG is not set
93CONFIG_ELF_CORE=y 105CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
95# CONFIG_BASE_FULL is not set 106# CONFIG_BASE_FULL is not set
96CONFIG_FUTEX=y 107CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y
98# CONFIG_EPOLL is not set 108# CONFIG_EPOLL is not set
99CONFIG_SIGNALFD=y 109CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
@@ -103,10 +113,12 @@ CONFIG_SHMEM=y
103CONFIG_AIO=y 113CONFIG_AIO=y
104# CONFIG_VM_EVENT_COUNTERS is not set 114# CONFIG_VM_EVENT_COUNTERS is not set
105CONFIG_SLUB_DEBUG=y 115CONFIG_SLUB_DEBUG=y
116CONFIG_COMPAT_BRK=y
106# CONFIG_SLAB is not set 117# CONFIG_SLAB is not set
107CONFIG_SLUB=y 118CONFIG_SLUB=y
108# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
112CONFIG_HAVE_IOREMAP_PROT=y 124CONFIG_HAVE_IOREMAP_PROT=y
@@ -114,6 +126,7 @@ CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
115CONFIG_HAVE_ARCH_TRACEHOOK=y 127CONFIG_HAVE_ARCH_TRACEHOOK=y
116CONFIG_HAVE_CLK=y 128CONFIG_HAVE_CLK=y
129# CONFIG_SLOW_WORK is not set
117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
@@ -121,7 +134,6 @@ CONFIG_BASE_SMALL=1
121# CONFIG_MODULES is not set 134# CONFIG_MODULES is not set
122CONFIG_BLOCK=y 135CONFIG_BLOCK=y
123# CONFIG_LBD is not set 136# CONFIG_LBD is not set
124# CONFIG_BLK_DEV_IO_TRACE is not set
125# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
126# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
127 139
@@ -137,11 +149,6 @@ CONFIG_DEFAULT_AS=y
137# CONFIG_DEFAULT_CFQ is not set 149# CONFIG_DEFAULT_CFQ is not set
138# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
139CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
140CONFIG_CLASSIC_RCU=y
141# CONFIG_TREE_RCU is not set
142# CONFIG_PREEMPT_RCU is not set
143# CONFIG_TREE_RCU_TRACE is not set
144# CONFIG_PREEMPT_RCU_TRACE is not set
145# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
146 153
147# 154#
@@ -232,9 +239,12 @@ CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 240CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 241CONFIG_UNEVICTABLE_LRU=y
242CONFIG_HAVE_MLOCK=y
243CONFIG_HAVE_MLOCKED_PAGE_BIT=y
235CONFIG_PPC_4K_PAGES=y 244CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set 245# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set 246# CONFIG_PPC_64K_PAGES is not set
247# CONFIG_PPC_256K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 248CONFIG_FORCE_MAX_ZONEORDER=11
239# CONFIG_PROC_DEVICETREE is not set 249# CONFIG_PROC_DEVICETREE is not set
240# CONFIG_CMDLINE_BOOL is not set 250# CONFIG_CMDLINE_BOOL is not set
@@ -268,14 +278,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
268CONFIG_KERNEL_START=0xc0000000 278CONFIG_KERNEL_START=0xc0000000
269CONFIG_PHYSICAL_START=0x00000000 279CONFIG_PHYSICAL_START=0x00000000
270CONFIG_TASK_SIZE=0x80000000 280CONFIG_TASK_SIZE=0x80000000
271CONFIG_CONSISTENT_START=0xfd000000
272CONFIG_CONSISTENT_SIZE=0x00200000
273CONFIG_NET=y 281CONFIG_NET=y
274 282
275# 283#
276# Networking options 284# Networking options
277# 285#
278CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 286CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 287# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 288CONFIG_UNIX=y
@@ -331,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_LAPB is not set 338# CONFIG_LAPB is not set
332# CONFIG_ECONET is not set 339# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 340# CONFIG_WAN_ROUTER is not set
341# CONFIG_PHONET is not set
334# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set 343# CONFIG_DCB is not set
336 344
@@ -343,7 +351,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_IRDA is not set 351# CONFIG_IRDA is not set
344# CONFIG_BT is not set 352# CONFIG_BT is not set
345# CONFIG_AF_RXRPC is not set 353# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set
347CONFIG_WIRELESS=y 354CONFIG_WIRELESS=y
348# CONFIG_CFG80211 is not set 355# CONFIG_CFG80211 is not set
349CONFIG_WIRELESS_OLD_REGULATORY=y 356CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -379,9 +386,13 @@ CONFIG_BLK_DEV_LOOP=y
379# CONFIG_ATA_OVER_ETH is not set 386# CONFIG_ATA_OVER_ETH is not set
380# CONFIG_BLK_DEV_HD is not set 387# CONFIG_BLK_DEV_HD is not set
381CONFIG_MISC_DEVICES=y 388CONFIG_MISC_DEVICES=y
382# CONFIG_EEPROM_93CX6 is not set
383# CONFIG_ENCLOSURE_SERVICES is not set 389# CONFIG_ENCLOSURE_SERVICES is not set
384# CONFIG_C2PORT is not set 390# CONFIG_C2PORT is not set
391
392#
393# EEPROM support
394#
395# CONFIG_EEPROM_93CX6 is not set
385CONFIG_HAVE_IDE=y 396CONFIG_HAVE_IDE=y
386# CONFIG_IDE is not set 397# CONFIG_IDE is not set
387 398
@@ -396,6 +407,7 @@ CONFIG_HAVE_IDE=y
396# CONFIG_MD is not set 407# CONFIG_MD is not set
397# CONFIG_MACINTOSH_DRIVERS is not set 408# CONFIG_MACINTOSH_DRIVERS is not set
398CONFIG_NETDEVICES=y 409CONFIG_NETDEVICES=y
410CONFIG_COMPAT_NET_DEV_OPS=y
399# CONFIG_DUMMY is not set 411# CONFIG_DUMMY is not set
400# CONFIG_BONDING is not set 412# CONFIG_BONDING is not set
401# CONFIG_MACVLAN is not set 413# CONFIG_MACVLAN is not set
@@ -424,6 +436,8 @@ CONFIG_FIXED_PHY=y
424# CONFIG_MDIO_BITBANG is not set 436# CONFIG_MDIO_BITBANG is not set
425CONFIG_NET_ETHERNET=y 437CONFIG_NET_ETHERNET=y
426CONFIG_MII=y 438CONFIG_MII=y
439# CONFIG_ETHOC is not set
440# CONFIG_DNET is not set
427# CONFIG_IBM_NEW_EMAC_ZMII is not set 441# CONFIG_IBM_NEW_EMAC_ZMII is not set
428# CONFIG_IBM_NEW_EMAC_RGMII is not set 442# CONFIG_IBM_NEW_EMAC_RGMII is not set
429# CONFIG_IBM_NEW_EMAC_TAH is not set 443# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -437,6 +451,7 @@ CONFIG_FS_ENET_HAS_SCC=y
437CONFIG_FS_ENET_HAS_FEC=y 451CONFIG_FS_ENET_HAS_FEC=y
438CONFIG_FS_ENET_MDIO_FEC=y 452CONFIG_FS_ENET_MDIO_FEC=y
439CONFIG_NETDEV_1000=y 453CONFIG_NETDEV_1000=y
454# CONFIG_FSL_PQ_MDIO is not set
440# CONFIG_GIANFAR is not set 455# CONFIG_GIANFAR is not set
441CONFIG_NETDEV_10000=y 456CONFIG_NETDEV_10000=y
442 457
@@ -445,7 +460,6 @@ CONFIG_NETDEV_10000=y
445# 460#
446# CONFIG_WLAN_PRE80211 is not set 461# CONFIG_WLAN_PRE80211 is not set
447# CONFIG_WLAN_80211 is not set 462# CONFIG_WLAN_80211 is not set
448# CONFIG_IWLWIFI_LEDS is not set
449 463
450# 464#
451# Enable WiMAX (Networking options) to see the WiMAX drivers 465# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -492,7 +506,6 @@ CONFIG_MOUSE_PS2=y
492CONFIG_MOUSE_PS2_ALPS=y 506CONFIG_MOUSE_PS2_ALPS=y
493CONFIG_MOUSE_PS2_LOGIPS2PP=y 507CONFIG_MOUSE_PS2_LOGIPS2PP=y
494CONFIG_MOUSE_PS2_SYNAPTICS=y 508CONFIG_MOUSE_PS2_SYNAPTICS=y
495CONFIG_MOUSE_PS2_LIFEBOOK=y
496CONFIG_MOUSE_PS2_TRACKPOINT=y 509CONFIG_MOUSE_PS2_TRACKPOINT=y
497# CONFIG_MOUSE_PS2_ELANTECH is not set 510# CONFIG_MOUSE_PS2_ELANTECH is not set
498# CONFIG_MOUSE_PS2_TOUCHKIT is not set 511# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -540,6 +553,7 @@ CONFIG_UNIX98_PTYS=y
540# CONFIG_HVC_UDBG is not set 553# CONFIG_HVC_UDBG is not set
541# CONFIG_IPMI_HANDLER is not set 554# CONFIG_IPMI_HANDLER is not set
542CONFIG_HW_RANDOM=y 555CONFIG_HW_RANDOM=y
556# CONFIG_HW_RANDOM_TIMERIOMEM is not set
543# CONFIG_NVRAM is not set 557# CONFIG_NVRAM is not set
544CONFIG_GEN_RTC=y 558CONFIG_GEN_RTC=y
545# CONFIG_GEN_RTC_X is not set 559# CONFIG_GEN_RTC_X is not set
@@ -622,7 +636,6 @@ CONFIG_HID=y
622# 636#
623# Special HID drivers 637# Special HID drivers
624# 638#
625CONFIG_HID_COMPAT=y
626CONFIG_USB_SUPPORT=y 639CONFIG_USB_SUPPORT=y
627# CONFIG_USB_ARCH_HAS_HCD is not set 640# CONFIG_USB_ARCH_HAS_HCD is not set
628# CONFIG_USB_ARCH_HAS_OHCI is not set 641# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -635,7 +648,7 @@ CONFIG_USB_SUPPORT=y
635# 648#
636 649
637# 650#
638# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 651# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
639# 652#
640# CONFIG_USB_GADGET is not set 653# CONFIG_USB_GADGET is not set
641 654
@@ -649,6 +662,7 @@ CONFIG_USB_SUPPORT=y
649# CONFIG_EDAC is not set 662# CONFIG_EDAC is not set
650# CONFIG_RTC_CLASS is not set 663# CONFIG_RTC_CLASS is not set
651# CONFIG_DMADEVICES is not set 664# CONFIG_DMADEVICES is not set
665# CONFIG_AUXDISPLAY is not set
652# CONFIG_UIO is not set 666# CONFIG_UIO is not set
653# CONFIG_STAGING is not set 667# CONFIG_STAGING is not set
654 668
@@ -661,6 +675,7 @@ CONFIG_EXT2_FS_XATTR=y
661# CONFIG_EXT2_FS_SECURITY is not set 675# CONFIG_EXT2_FS_SECURITY is not set
662# CONFIG_EXT2_FS_XIP is not set 676# CONFIG_EXT2_FS_XIP is not set
663CONFIG_EXT3_FS=y 677CONFIG_EXT3_FS=y
678# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
664CONFIG_EXT3_FS_XATTR=y 679CONFIG_EXT3_FS_XATTR=y
665# CONFIG_EXT3_FS_POSIX_ACL is not set 680# CONFIG_EXT3_FS_POSIX_ACL is not set
666# CONFIG_EXT3_FS_SECURITY is not set 681# CONFIG_EXT3_FS_SECURITY is not set
@@ -683,6 +698,11 @@ CONFIG_INOTIFY_USER=y
683# CONFIG_FUSE_FS is not set 698# CONFIG_FUSE_FS is not set
684 699
685# 700#
701# Caches
702#
703# CONFIG_FSCACHE is not set
704
705#
686# CD-ROM/DVD Filesystems 706# CD-ROM/DVD Filesystems
687# 707#
688# CONFIG_ISO9660_FS is not set 708# CONFIG_ISO9660_FS is not set
@@ -725,6 +745,7 @@ CONFIG_CRAMFS=y
725# CONFIG_ROMFS_FS is not set 745# CONFIG_ROMFS_FS is not set
726# CONFIG_SYSV_FS is not set 746# CONFIG_SYSV_FS is not set
727# CONFIG_UFS_FS is not set 747# CONFIG_UFS_FS is not set
748# CONFIG_NILFS2_FS is not set
728CONFIG_NETWORK_FILESYSTEMS=y 749CONFIG_NETWORK_FILESYSTEMS=y
729CONFIG_NFS_FS=y 750CONFIG_NFS_FS=y
730CONFIG_NFS_V3=y 751CONFIG_NFS_V3=y
@@ -736,7 +757,6 @@ CONFIG_LOCKD=y
736CONFIG_LOCKD_V4=y 757CONFIG_LOCKD_V4=y
737CONFIG_NFS_COMMON=y 758CONFIG_NFS_COMMON=y
738CONFIG_SUNRPC=y 759CONFIG_SUNRPC=y
739# CONFIG_SUNRPC_REGISTER_V4 is not set
740# CONFIG_RPCSEC_GSS_KRB5 is not set 760# CONFIG_RPCSEC_GSS_KRB5 is not set
741# CONFIG_RPCSEC_GSS_SPKM3 is not set 761# CONFIG_RPCSEC_GSS_SPKM3 is not set
742# CONFIG_SMB_FS is not set 762# CONFIG_SMB_FS is not set
@@ -768,6 +788,7 @@ CONFIG_MSDOS_PARTITION=y
768# CONFIG_SYSV68_PARTITION is not set 788# CONFIG_SYSV68_PARTITION is not set
769# CONFIG_NLS is not set 789# CONFIG_NLS is not set
770# CONFIG_DLM is not set 790# CONFIG_DLM is not set
791# CONFIG_BINARY_PRINTF is not set
771 792
772# 793#
773# Library routines 794# Library routines
@@ -782,11 +803,11 @@ CONFIG_CRC32=y
782# CONFIG_CRC7 is not set 803# CONFIG_CRC7 is not set
783# CONFIG_LIBCRC32C is not set 804# CONFIG_LIBCRC32C is not set
784CONFIG_ZLIB_INFLATE=y 805CONFIG_ZLIB_INFLATE=y
785CONFIG_PLIST=y
786CONFIG_HAS_IOMEM=y 806CONFIG_HAS_IOMEM=y
787CONFIG_HAS_IOPORT=y 807CONFIG_HAS_IOPORT=y
788CONFIG_HAS_DMA=y 808CONFIG_HAS_DMA=y
789CONFIG_HAVE_LMB=y 809CONFIG_HAVE_LMB=y
810CONFIG_NLATTR=y
790 811
791# 812#
792# Kernel hacking 813# Kernel hacking
@@ -806,13 +827,24 @@ CONFIG_FRAME_WARN=1024
806# CONFIG_RCU_CPU_STALL_DETECTOR is not set 827# CONFIG_RCU_CPU_STALL_DETECTOR is not set
807# CONFIG_LATENCYTOP is not set 828# CONFIG_LATENCYTOP is not set
808CONFIG_HAVE_FUNCTION_TRACER=y 829CONFIG_HAVE_FUNCTION_TRACER=y
830CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
809CONFIG_HAVE_DYNAMIC_FTRACE=y 831CONFIG_HAVE_DYNAMIC_FTRACE=y
810CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 832CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
833CONFIG_TRACING_SUPPORT=y
811 834
812# 835#
813# Tracers 836# Tracers
814# 837#
815# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 838# CONFIG_FUNCTION_TRACER is not set
839# CONFIG_SCHED_TRACER is not set
840# CONFIG_CONTEXT_SWITCH_TRACER is not set
841# CONFIG_EVENT_TRACER is not set
842# CONFIG_BOOT_TRACER is not set
843# CONFIG_TRACE_BRANCH_PROFILING is not set
844# CONFIG_STACK_TRACER is not set
845# CONFIG_KMEMTRACE is not set
846# CONFIG_WORKQUEUE_TRACER is not set
847# CONFIG_BLK_DEV_IO_TRACE is not set
816# CONFIG_SAMPLES is not set 848# CONFIG_SAMPLES is not set
817CONFIG_HAVE_ARCH_KGDB=y 849CONFIG_HAVE_ARCH_KGDB=y
818CONFIG_PRINT_STACK_DEPTH=64 850CONFIG_PRINT_STACK_DEPTH=64
@@ -903,6 +935,7 @@ CONFIG_CRYPTO=y
903# Compression 935# Compression
904# 936#
905# CONFIG_CRYPTO_DEFLATE is not set 937# CONFIG_CRYPTO_DEFLATE is not set
938# CONFIG_CRYPTO_ZLIB is not set
906# CONFIG_CRYPTO_LZO is not set 939# CONFIG_CRYPTO_LZO is not set
907 940
908# 941#
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig
index adc756e1f252..5bb1b8eb0b49 100644
--- a/arch/powerpc/configs/mpc86xx_defconfig
+++ b/arch/powerpc/configs/mpc86xx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:39 2009 4# Wed May 13 17:22:00 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -57,6 +58,7 @@ CONFIG_GENERIC_BUG=y
57CONFIG_DEFAULT_UIMAGE=y 58CONFIG_DEFAULT_UIMAGE=y
58# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
61 63
62# 64#
@@ -71,11 +73,21 @@ CONFIG_SWAP=y
71CONFIG_SYSVIPC=y 73CONFIG_SYSVIPC=y
72CONFIG_SYSVIPC_SYSCTL=y 74CONFIG_SYSVIPC_SYSCTL=y
73CONFIG_POSIX_MQUEUE=y 75CONFIG_POSIX_MQUEUE=y
76CONFIG_POSIX_MQUEUE_SYSCTL=y
74CONFIG_BSD_PROCESS_ACCT=y 77CONFIG_BSD_PROCESS_ACCT=y
75# CONFIG_BSD_PROCESS_ACCT_V3 is not set 78# CONFIG_BSD_PROCESS_ACCT_V3 is not set
76# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
77CONFIG_AUDIT=y 80CONFIG_AUDIT=y
78# CONFIG_AUDITSYSCALL is not set 81# CONFIG_AUDITSYSCALL is not set
82
83#
84# RCU Subsystem
85#
86CONFIG_CLASSIC_RCU=y
87# CONFIG_TREE_RCU is not set
88# CONFIG_PREEMPT_RCU is not set
89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_PREEMPT_RCU_TRACE is not set
79CONFIG_IKCONFIG=y 91CONFIG_IKCONFIG=y
80CONFIG_IKCONFIG_PROC=y 92CONFIG_IKCONFIG_PROC=y
81CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
@@ -91,22 +103,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
91# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
92CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
93CONFIG_INITRAMFS_SOURCE="" 105CONFIG_INITRAMFS_SOURCE=""
106CONFIG_RD_GZIP=y
107# CONFIG_RD_BZIP2 is not set
108# CONFIG_RD_LZMA is not set
94# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
95CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
111CONFIG_ANON_INODES=y
96CONFIG_EMBEDDED=y 112CONFIG_EMBEDDED=y
97CONFIG_SYSCTL_SYSCALL=y 113CONFIG_SYSCTL_SYSCALL=y
98CONFIG_KALLSYMS=y 114CONFIG_KALLSYMS=y
99CONFIG_KALLSYMS_ALL=y 115CONFIG_KALLSYMS_ALL=y
100CONFIG_KALLSYMS_STRIP_GENERATED=y
101CONFIG_KALLSYMS_EXTRA_PASS=y 116CONFIG_KALLSYMS_EXTRA_PASS=y
117# CONFIG_STRIP_ASM_SYMS is not set
102CONFIG_HOTPLUG=y 118CONFIG_HOTPLUG=y
103CONFIG_PRINTK=y 119CONFIG_PRINTK=y
104CONFIG_BUG=y 120CONFIG_BUG=y
105CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
106CONFIG_COMPAT_BRK=y
107CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
108CONFIG_FUTEX=y 123CONFIG_FUTEX=y
109CONFIG_ANON_INODES=y
110CONFIG_EPOLL=y 124CONFIG_EPOLL=y
111CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
112CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
@@ -116,10 +130,12 @@ CONFIG_AIO=y
116CONFIG_VM_EVENT_COUNTERS=y 130CONFIG_VM_EVENT_COUNTERS=y
117CONFIG_PCI_QUIRKS=y 131CONFIG_PCI_QUIRKS=y
118CONFIG_SLUB_DEBUG=y 132CONFIG_SLUB_DEBUG=y
133CONFIG_COMPAT_BRK=y
119# CONFIG_SLAB is not set 134# CONFIG_SLAB is not set
120CONFIG_SLUB=y 135CONFIG_SLUB=y
121# CONFIG_SLOB is not set 136# CONFIG_SLOB is not set
122# CONFIG_PROFILING is not set 137# CONFIG_PROFILING is not set
138# CONFIG_MARKERS is not set
123CONFIG_HAVE_OPROFILE=y 139CONFIG_HAVE_OPROFILE=y
124# CONFIG_KPROBES is not set 140# CONFIG_KPROBES is not set
125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 141CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -128,6 +144,7 @@ CONFIG_HAVE_KPROBES=y
128CONFIG_HAVE_KRETPROBES=y 144CONFIG_HAVE_KRETPROBES=y
129CONFIG_HAVE_ARCH_TRACEHOOK=y 145CONFIG_HAVE_ARCH_TRACEHOOK=y
130CONFIG_USE_GENERIC_SMP_HELPERS=y 146CONFIG_USE_GENERIC_SMP_HELPERS=y
147# CONFIG_SLOW_WORK is not set
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 148# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 149CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 150CONFIG_RT_MUTEXES=y
@@ -141,7 +158,6 @@ CONFIG_MODVERSIONS=y
141CONFIG_STOP_MACHINE=y 158CONFIG_STOP_MACHINE=y
142CONFIG_BLOCK=y 159CONFIG_BLOCK=y
143CONFIG_LBD=y 160CONFIG_LBD=y
144# CONFIG_BLK_DEV_IO_TRACE is not set
145# CONFIG_BLK_DEV_BSG is not set 161# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set 162# CONFIG_BLK_DEV_INTEGRITY is not set
147 163
@@ -157,18 +173,11 @@ CONFIG_IOSCHED_CFQ=y
157CONFIG_DEFAULT_CFQ=y 173CONFIG_DEFAULT_CFQ=y
158# CONFIG_DEFAULT_NOOP is not set 174# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="cfq" 175CONFIG_DEFAULT_IOSCHED="cfq"
160CONFIG_CLASSIC_RCU=y
161# CONFIG_TREE_RCU is not set
162# CONFIG_PREEMPT_RCU is not set
163# CONFIG_TREE_RCU_TRACE is not set
164# CONFIG_PREEMPT_RCU_TRACE is not set
165# CONFIG_FREEZER is not set 176# CONFIG_FREEZER is not set
166 177
167# 178#
168# Platform support 179# Platform support
169# 180#
170CONFIG_PPC_MULTIPLATFORM=y
171CONFIG_CLASSIC32=y
172# CONFIG_PPC_CHRP is not set 181# CONFIG_PPC_CHRP is not set
173# CONFIG_MPC5121_ADS is not set 182# CONFIG_MPC5121_ADS is not set
174# CONFIG_MPC5121_GENERIC is not set 183# CONFIG_MPC5121_GENERIC is not set
@@ -183,9 +192,12 @@ CONFIG_PPC_86xx=y
183CONFIG_MPC8641_HPCN=y 192CONFIG_MPC8641_HPCN=y
184CONFIG_SBC8641D=y 193CONFIG_SBC8641D=y
185CONFIG_MPC8610_HPCD=y 194CONFIG_MPC8610_HPCD=y
195# CONFIG_GEF_PPC9A is not set
196# CONFIG_GEF_SBC310 is not set
186CONFIG_GEF_SBC610=y 197CONFIG_GEF_SBC610=y
187CONFIG_MPC8641=y 198CONFIG_MPC8641=y
188CONFIG_MPC8610=y 199CONFIG_MPC8610=y
200CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
189# CONFIG_IPIC is not set 201# CONFIG_IPIC is not set
190CONFIG_MPIC=y 202CONFIG_MPIC=y
191# CONFIG_MPIC_WEIRD is not set 203# CONFIG_MPIC_WEIRD is not set
@@ -247,9 +259,12 @@ CONFIG_ZONE_DMA_FLAG=1
247CONFIG_BOUNCE=y 259CONFIG_BOUNCE=y
248CONFIG_VIRT_TO_BUS=y 260CONFIG_VIRT_TO_BUS=y
249CONFIG_UNEVICTABLE_LRU=y 261CONFIG_UNEVICTABLE_LRU=y
262CONFIG_HAVE_MLOCK=y
263CONFIG_HAVE_MLOCKED_PAGE_BIT=y
250CONFIG_PPC_4K_PAGES=y 264CONFIG_PPC_4K_PAGES=y
251# CONFIG_PPC_16K_PAGES is not set 265# CONFIG_PPC_16K_PAGES is not set
252# CONFIG_PPC_64K_PAGES is not set 266# CONFIG_PPC_64K_PAGES is not set
267# CONFIG_PPC_256K_PAGES is not set
253CONFIG_FORCE_MAX_ZONEORDER=11 268CONFIG_FORCE_MAX_ZONEORDER=11
254CONFIG_PROC_DEVICETREE=y 269CONFIG_PROC_DEVICETREE=y
255# CONFIG_CMDLINE_BOOL is not set 270# CONFIG_CMDLINE_BOOL is not set
@@ -276,6 +291,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
276# CONFIG_PCI_LEGACY is not set 291# CONFIG_PCI_LEGACY is not set
277# CONFIG_PCI_DEBUG is not set 292# CONFIG_PCI_DEBUG is not set
278# CONFIG_PCI_STUB is not set 293# CONFIG_PCI_STUB is not set
294# CONFIG_PCI_IOV is not set
279# CONFIG_PCCARD is not set 295# CONFIG_PCCARD is not set
280# CONFIG_HOTPLUG_PCI is not set 296# CONFIG_HOTPLUG_PCI is not set
281CONFIG_HAS_RAPIDIO=y 297CONFIG_HAS_RAPIDIO=y
@@ -299,7 +315,6 @@ CONFIG_NET=y
299# 315#
300# Networking options 316# Networking options
301# 317#
302CONFIG_COMPAT_NET_DEV_OPS=y
303CONFIG_PACKET=y 318CONFIG_PACKET=y
304# CONFIG_PACKET_MMAP is not set 319# CONFIG_PACKET_MMAP is not set
305CONFIG_UNIX=y 320CONFIG_UNIX=y
@@ -387,6 +402,7 @@ CONFIG_SCTP_HMAC_MD5=y
387# CONFIG_LAPB is not set 402# CONFIG_LAPB is not set
388# CONFIG_ECONET is not set 403# CONFIG_ECONET is not set
389# CONFIG_WAN_ROUTER is not set 404# CONFIG_WAN_ROUTER is not set
405# CONFIG_PHONET is not set
390# CONFIG_NET_SCHED is not set 406# CONFIG_NET_SCHED is not set
391# CONFIG_DCB is not set 407# CONFIG_DCB is not set
392 408
@@ -399,7 +415,6 @@ CONFIG_SCTP_HMAC_MD5=y
399# CONFIG_IRDA is not set 415# CONFIG_IRDA is not set
400# CONFIG_BT is not set 416# CONFIG_BT is not set
401# CONFIG_AF_RXRPC is not set 417# CONFIG_AF_RXRPC is not set
402# CONFIG_PHONET is not set
403CONFIG_FIB_RULES=y 418CONFIG_FIB_RULES=y
404CONFIG_WIRELESS=y 419CONFIG_WIRELESS=y
405# CONFIG_CFG80211 is not set 420# CONFIG_CFG80211 is not set
@@ -454,13 +469,20 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
454# CONFIG_BLK_DEV_HD is not set 469# CONFIG_BLK_DEV_HD is not set
455CONFIG_MISC_DEVICES=y 470CONFIG_MISC_DEVICES=y
456# CONFIG_PHANTOM is not set 471# CONFIG_PHANTOM is not set
457# CONFIG_EEPROM_93CX6 is not set
458# CONFIG_SGI_IOC4 is not set 472# CONFIG_SGI_IOC4 is not set
459# CONFIG_TIFM_CORE is not set 473# CONFIG_TIFM_CORE is not set
460# CONFIG_ICS932S401 is not set 474# CONFIG_ICS932S401 is not set
461# CONFIG_ENCLOSURE_SERVICES is not set 475# CONFIG_ENCLOSURE_SERVICES is not set
462# CONFIG_HP_ILO is not set 476# CONFIG_HP_ILO is not set
477# CONFIG_ISL29003 is not set
463# CONFIG_C2PORT is not set 478# CONFIG_C2PORT is not set
479
480#
481# EEPROM support
482#
483# CONFIG_EEPROM_AT24 is not set
484CONFIG_EEPROM_LEGACY=y
485# CONFIG_EEPROM_93CX6 is not set
464CONFIG_HAVE_IDE=y 486CONFIG_HAVE_IDE=y
465# CONFIG_IDE is not set 487# CONFIG_IDE is not set
466 488
@@ -519,9 +541,11 @@ CONFIG_SCSI_LOWLEVEL=y
519# CONFIG_MEGARAID_NEWGEN is not set 541# CONFIG_MEGARAID_NEWGEN is not set
520# CONFIG_MEGARAID_LEGACY is not set 542# CONFIG_MEGARAID_LEGACY is not set
521# CONFIG_MEGARAID_SAS is not set 543# CONFIG_MEGARAID_SAS is not set
544# CONFIG_SCSI_MPT2SAS is not set
522# CONFIG_SCSI_HPTIOP is not set 545# CONFIG_SCSI_HPTIOP is not set
523# CONFIG_SCSI_BUSLOGIC is not set 546# CONFIG_SCSI_BUSLOGIC is not set
524# CONFIG_LIBFC is not set 547# CONFIG_LIBFC is not set
548# CONFIG_LIBFCOE is not set
525# CONFIG_FCOE is not set 549# CONFIG_FCOE is not set
526# CONFIG_SCSI_DMX3191D is not set 550# CONFIG_SCSI_DMX3191D is not set
527# CONFIG_SCSI_EATA is not set 551# CONFIG_SCSI_EATA is not set
@@ -544,6 +568,7 @@ CONFIG_SCSI_LOWLEVEL=y
544# CONFIG_SCSI_DEBUG is not set 568# CONFIG_SCSI_DEBUG is not set
545# CONFIG_SCSI_SRP is not set 569# CONFIG_SCSI_SRP is not set
546# CONFIG_SCSI_DH is not set 570# CONFIG_SCSI_DH is not set
571# CONFIG_SCSI_OSD_INITIATOR is not set
547CONFIG_ATA=y 572CONFIG_ATA=y
548# CONFIG_ATA_NONSTANDARD is not set 573# CONFIG_ATA_NONSTANDARD is not set
549CONFIG_SATA_PMP=y 574CONFIG_SATA_PMP=y
@@ -620,6 +645,7 @@ CONFIG_PATA_ALI=y
620# CONFIG_I2O is not set 645# CONFIG_I2O is not set
621# CONFIG_MACINTOSH_DRIVERS is not set 646# CONFIG_MACINTOSH_DRIVERS is not set
622CONFIG_NETDEVICES=y 647CONFIG_NETDEVICES=y
648CONFIG_COMPAT_NET_DEV_OPS=y
623CONFIG_DUMMY=y 649CONFIG_DUMMY=y
624# CONFIG_BONDING is not set 650# CONFIG_BONDING is not set
625# CONFIG_MACVLAN is not set 651# CONFIG_MACVLAN is not set
@@ -653,6 +679,8 @@ CONFIG_MII=y
653# CONFIG_SUNGEM is not set 679# CONFIG_SUNGEM is not set
654# CONFIG_CASSINI is not set 680# CONFIG_CASSINI is not set
655# CONFIG_NET_VENDOR_3COM is not set 681# CONFIG_NET_VENDOR_3COM is not set
682# CONFIG_ETHOC is not set
683# CONFIG_DNET is not set
656# CONFIG_NET_TULIP is not set 684# CONFIG_NET_TULIP is not set
657# CONFIG_HP100 is not set 685# CONFIG_HP100 is not set
658# CONFIG_IBM_NEW_EMAC_ZMII is not set 686# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -672,6 +700,7 @@ CONFIG_NETDEV_1000=y
672# CONFIG_E1000E is not set 700# CONFIG_E1000E is not set
673# CONFIG_IP1000 is not set 701# CONFIG_IP1000 is not set
674# CONFIG_IGB is not set 702# CONFIG_IGB is not set
703# CONFIG_IGBVF is not set
675# CONFIG_NS83820 is not set 704# CONFIG_NS83820 is not set
676# CONFIG_HAMACHI is not set 705# CONFIG_HAMACHI is not set
677# CONFIG_YELLOWFIN is not set 706# CONFIG_YELLOWFIN is not set
@@ -682,11 +711,12 @@ CONFIG_NETDEV_1000=y
682# CONFIG_VIA_VELOCITY is not set 711# CONFIG_VIA_VELOCITY is not set
683# CONFIG_TIGON3 is not set 712# CONFIG_TIGON3 is not set
684# CONFIG_BNX2 is not set 713# CONFIG_BNX2 is not set
714CONFIG_FSL_PQ_MDIO=y
685CONFIG_GIANFAR=y 715CONFIG_GIANFAR=y
686# CONFIG_MV643XX_ETH is not set
687# CONFIG_QLA3XXX is not set 716# CONFIG_QLA3XXX is not set
688# CONFIG_ATL1 is not set 717# CONFIG_ATL1 is not set
689# CONFIG_ATL1E is not set 718# CONFIG_ATL1E is not set
719# CONFIG_ATL1C is not set
690# CONFIG_JME is not set 720# CONFIG_JME is not set
691CONFIG_NETDEV_10000=y 721CONFIG_NETDEV_10000=y
692# CONFIG_CHELSIO_T1 is not set 722# CONFIG_CHELSIO_T1 is not set
@@ -696,6 +726,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
696# CONFIG_IXGBE is not set 726# CONFIG_IXGBE is not set
697# CONFIG_IXGB is not set 727# CONFIG_IXGB is not set
698# CONFIG_S2IO is not set 728# CONFIG_S2IO is not set
729# CONFIG_VXGE is not set
699# CONFIG_MYRI10GE is not set 730# CONFIG_MYRI10GE is not set
700# CONFIG_NETXEN_NIC is not set 731# CONFIG_NETXEN_NIC is not set
701# CONFIG_NIU is not set 732# CONFIG_NIU is not set
@@ -705,6 +736,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
705# CONFIG_BNX2X is not set 736# CONFIG_BNX2X is not set
706# CONFIG_QLGE is not set 737# CONFIG_QLGE is not set
707# CONFIG_SFC is not set 738# CONFIG_SFC is not set
739# CONFIG_BE2NET is not set
708# CONFIG_TR is not set 740# CONFIG_TR is not set
709 741
710# 742#
@@ -712,7 +744,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
712# 744#
713# CONFIG_WLAN_PRE80211 is not set 745# CONFIG_WLAN_PRE80211 is not set
714# CONFIG_WLAN_80211 is not set 746# CONFIG_WLAN_80211 is not set
715# CONFIG_IWLWIFI_LEDS is not set
716 747
717# 748#
718# Enable WiMAX (Networking options) to see the WiMAX drivers 749# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -879,12 +910,9 @@ CONFIG_I2C_MPC=y
879# Miscellaneous I2C Chip support 910# Miscellaneous I2C Chip support
880# 911#
881# CONFIG_DS1682 is not set 912# CONFIG_DS1682 is not set
882# CONFIG_EEPROM_AT24 is not set
883CONFIG_EEPROM_LEGACY=y
884# CONFIG_SENSORS_PCF8574 is not set 913# CONFIG_SENSORS_PCF8574 is not set
885# CONFIG_PCF8575 is not set 914# CONFIG_PCF8575 is not set
886# CONFIG_SENSORS_PCA9539 is not set 915# CONFIG_SENSORS_PCA9539 is not set
887# CONFIG_SENSORS_PCF8591 is not set
888# CONFIG_SENSORS_MAX6875 is not set 916# CONFIG_SENSORS_MAX6875 is not set
889# CONFIG_SENSORS_TSL2550 is not set 917# CONFIG_SENSORS_TSL2550 is not set
890# CONFIG_I2C_DEBUG_CORE is not set 918# CONFIG_I2C_DEBUG_CORE is not set
@@ -963,7 +991,7 @@ CONFIG_VIDEO_MEDIA=m
963# 991#
964# CONFIG_MEDIA_ATTACH is not set 992# CONFIG_MEDIA_ATTACH is not set
965CONFIG_MEDIA_TUNER=m 993CONFIG_MEDIA_TUNER=m
966# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set 994# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
967CONFIG_MEDIA_TUNER_SIMPLE=m 995CONFIG_MEDIA_TUNER_SIMPLE=m
968CONFIG_MEDIA_TUNER_TDA8290=m 996CONFIG_MEDIA_TUNER_TDA8290=m
969CONFIG_MEDIA_TUNER_TDA9887=m 997CONFIG_MEDIA_TUNER_TDA9887=m
@@ -972,6 +1000,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
972CONFIG_MEDIA_TUNER_MT20XX=m 1000CONFIG_MEDIA_TUNER_MT20XX=m
973CONFIG_MEDIA_TUNER_XC2028=m 1001CONFIG_MEDIA_TUNER_XC2028=m
974CONFIG_MEDIA_TUNER_XC5000=m 1002CONFIG_MEDIA_TUNER_XC5000=m
1003CONFIG_MEDIA_TUNER_MC44S803=m
975# CONFIG_DVB_DYNAMIC_MINORS is not set 1004# CONFIG_DVB_DYNAMIC_MINORS is not set
976CONFIG_DVB_CAPTURE_DRIVERS=y 1005CONFIG_DVB_CAPTURE_DRIVERS=y
977 1006
@@ -1011,103 +1040,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1011# 1040#
1012# Supported DVB Frontends 1041# Supported DVB Frontends
1013# 1042#
1014
1015#
1016# Customise DVB Frontends
1017#
1018# CONFIG_DVB_FE_CUSTOMISE is not set 1043# CONFIG_DVB_FE_CUSTOMISE is not set
1019
1020#
1021# Multistandard (satellite) frontends
1022#
1023# CONFIG_DVB_STB0899 is not set
1024# CONFIG_DVB_STB6100 is not set
1025
1026#
1027# DVB-S (satellite) frontends
1028#
1029# CONFIG_DVB_CX24110 is not set
1030# CONFIG_DVB_CX24123 is not set
1031# CONFIG_DVB_MT312 is not set
1032# CONFIG_DVB_S5H1420 is not set
1033# CONFIG_DVB_STV0288 is not set
1034# CONFIG_DVB_STB6000 is not set
1035# CONFIG_DVB_STV0299 is not set
1036# CONFIG_DVB_TDA8083 is not set
1037# CONFIG_DVB_TDA10086 is not set
1038# CONFIG_DVB_TDA8261 is not set
1039# CONFIG_DVB_VES1X93 is not set
1040# CONFIG_DVB_TUNER_ITD1000 is not set
1041# CONFIG_DVB_TUNER_CX24113 is not set
1042# CONFIG_DVB_TDA826X is not set
1043# CONFIG_DVB_TUA6100 is not set
1044# CONFIG_DVB_CX24116 is not set
1045# CONFIG_DVB_SI21XX is not set
1046
1047#
1048# DVB-T (terrestrial) frontends
1049#
1050# CONFIG_DVB_SP8870 is not set
1051# CONFIG_DVB_SP887X is not set
1052# CONFIG_DVB_CX22700 is not set
1053# CONFIG_DVB_CX22702 is not set
1054# CONFIG_DVB_DRX397XD is not set
1055# CONFIG_DVB_L64781 is not set
1056# CONFIG_DVB_TDA1004X is not set
1057# CONFIG_DVB_NXT6000 is not set
1058# CONFIG_DVB_MT352 is not set
1059# CONFIG_DVB_ZL10353 is not set
1060# CONFIG_DVB_DIB3000MB is not set
1061# CONFIG_DVB_DIB3000MC is not set
1062# CONFIG_DVB_DIB7000M is not set
1063# CONFIG_DVB_DIB7000P is not set
1064# CONFIG_DVB_TDA10048 is not set
1065
1066#
1067# DVB-C (cable) frontends
1068#
1069# CONFIG_DVB_VES1820 is not set
1070# CONFIG_DVB_TDA10021 is not set
1071# CONFIG_DVB_TDA10023 is not set
1072# CONFIG_DVB_STV0297 is not set
1073
1074#
1075# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
1076#
1077# CONFIG_DVB_NXT200X is not set
1078# CONFIG_DVB_OR51211 is not set
1079# CONFIG_DVB_OR51132 is not set
1080# CONFIG_DVB_BCM3510 is not set
1081# CONFIG_DVB_LGDT330X is not set
1082# CONFIG_DVB_LGDT3304 is not set
1083# CONFIG_DVB_S5H1409 is not set
1084# CONFIG_DVB_AU8522 is not set
1085# CONFIG_DVB_S5H1411 is not set
1086
1087#
1088# ISDB-T (terrestrial) frontends
1089#
1090# CONFIG_DVB_S921 is not set
1091
1092#
1093# Digital terrestrial only tuners/PLL
1094#
1095# CONFIG_DVB_PLL is not set
1096# CONFIG_DVB_TUNER_DIB0070 is not set
1097
1098#
1099# SEC control devices for DVB-S
1100#
1101# CONFIG_DVB_LNBP21 is not set
1102# CONFIG_DVB_ISL6405 is not set
1103# CONFIG_DVB_ISL6421 is not set
1104# CONFIG_DVB_LGS8GL5 is not set
1105
1106#
1107# Tools to develop new frontends
1108#
1109# CONFIG_DVB_DUMMY_FE is not set
1110# CONFIG_DVB_AF9013 is not set
1111CONFIG_DAB=y 1044CONFIG_DAB=y
1112# CONFIG_USB_DABUSB is not set 1045# CONFIG_USB_DABUSB is not set
1113 1046
@@ -1187,6 +1120,8 @@ CONFIG_SND_PCI=y
1187# CONFIG_SND_INDIGO is not set 1120# CONFIG_SND_INDIGO is not set
1188# CONFIG_SND_INDIGOIO is not set 1121# CONFIG_SND_INDIGOIO is not set
1189# CONFIG_SND_INDIGODJ is not set 1122# CONFIG_SND_INDIGODJ is not set
1123# CONFIG_SND_INDIGOIOX is not set
1124# CONFIG_SND_INDIGODJX is not set
1190# CONFIG_SND_EMU10K1 is not set 1125# CONFIG_SND_EMU10K1 is not set
1191# CONFIG_SND_EMU10K1X is not set 1126# CONFIG_SND_EMU10K1X is not set
1192# CONFIG_SND_ENS1370 is not set 1127# CONFIG_SND_ENS1370 is not set
@@ -1241,15 +1176,17 @@ CONFIG_USB_HID=y
1241# 1176#
1242# Special HID drivers 1177# Special HID drivers
1243# 1178#
1244CONFIG_HID_COMPAT=y
1245CONFIG_HID_A4TECH=y 1179CONFIG_HID_A4TECH=y
1246CONFIG_HID_APPLE=y 1180CONFIG_HID_APPLE=y
1247CONFIG_HID_BELKIN=y 1181CONFIG_HID_BELKIN=y
1248CONFIG_HID_CHERRY=y 1182CONFIG_HID_CHERRY=y
1249CONFIG_HID_CHICONY=y 1183CONFIG_HID_CHICONY=y
1250CONFIG_HID_CYPRESS=y 1184CONFIG_HID_CYPRESS=y
1185# CONFIG_DRAGONRISE_FF is not set
1251CONFIG_HID_EZKEY=y 1186CONFIG_HID_EZKEY=y
1187# CONFIG_HID_KYE is not set
1252CONFIG_HID_GYRATION=y 1188CONFIG_HID_GYRATION=y
1189# CONFIG_HID_KENSINGTON is not set
1253CONFIG_HID_LOGITECH=y 1190CONFIG_HID_LOGITECH=y
1254# CONFIG_LOGITECH_FF is not set 1191# CONFIG_LOGITECH_FF is not set
1255# CONFIG_LOGIRUMBLEPAD2_FF is not set 1192# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1322,11 +1259,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1322# CONFIG_USB_TMC is not set 1259# CONFIG_USB_TMC is not set
1323 1260
1324# 1261#
1325# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1262# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1326# 1263#
1327 1264
1328# 1265#
1329# see USB_STORAGE Help for more information 1266# also be needed; see USB_STORAGE Help for more info
1330# 1267#
1331CONFIG_USB_STORAGE=y 1268CONFIG_USB_STORAGE=y
1332# CONFIG_USB_STORAGE_DEBUG is not set 1269# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1368,7 +1305,6 @@ CONFIG_USB_STORAGE=y
1368# CONFIG_USB_LED is not set 1305# CONFIG_USB_LED is not set
1369# CONFIG_USB_CYPRESS_CY7C63 is not set 1306# CONFIG_USB_CYPRESS_CY7C63 is not set
1370# CONFIG_USB_CYTHERM is not set 1307# CONFIG_USB_CYTHERM is not set
1371# CONFIG_USB_PHIDGET is not set
1372# CONFIG_USB_IDMOUSE is not set 1308# CONFIG_USB_IDMOUSE is not set
1373# CONFIG_USB_FTDI_ELAN is not set 1309# CONFIG_USB_FTDI_ELAN is not set
1374# CONFIG_USB_APPLEDISPLAY is not set 1310# CONFIG_USB_APPLEDISPLAY is not set
@@ -1385,6 +1321,7 @@ CONFIG_USB_STORAGE=y
1385# OTG and related infrastructure 1321# OTG and related infrastructure
1386# 1322#
1387# CONFIG_USB_GPIO_VBUS is not set 1323# CONFIG_USB_GPIO_VBUS is not set
1324# CONFIG_NOP_USB_XCEIV is not set
1388# CONFIG_UWB is not set 1325# CONFIG_UWB is not set
1389# CONFIG_MMC is not set 1326# CONFIG_MMC is not set
1390# CONFIG_MEMSTICK is not set 1327# CONFIG_MEMSTICK is not set
@@ -1446,8 +1383,9 @@ CONFIG_RTC_DRV_CMOS=y
1446# 1383#
1447# on-CPU RTC drivers 1384# on-CPU RTC drivers
1448# 1385#
1449# CONFIG_RTC_DRV_PPC is not set 1386# CONFIG_RTC_DRV_GENERIC is not set
1450# CONFIG_DMADEVICES is not set 1387# CONFIG_DMADEVICES is not set
1388# CONFIG_AUXDISPLAY is not set
1451# CONFIG_UIO is not set 1389# CONFIG_UIO is not set
1452# CONFIG_STAGING is not set 1390# CONFIG_STAGING is not set
1453 1391
@@ -1458,6 +1396,7 @@ CONFIG_EXT2_FS=y
1458# CONFIG_EXT2_FS_XATTR is not set 1396# CONFIG_EXT2_FS_XATTR is not set
1459# CONFIG_EXT2_FS_XIP is not set 1397# CONFIG_EXT2_FS_XIP is not set
1460CONFIG_EXT3_FS=y 1398CONFIG_EXT3_FS=y
1399# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1461CONFIG_EXT3_FS_XATTR=y 1400CONFIG_EXT3_FS_XATTR=y
1462# CONFIG_EXT3_FS_POSIX_ACL is not set 1401# CONFIG_EXT3_FS_POSIX_ACL is not set
1463# CONFIG_EXT3_FS_SECURITY is not set 1402# CONFIG_EXT3_FS_SECURITY is not set
@@ -1481,6 +1420,11 @@ CONFIG_INOTIFY_USER=y
1481# CONFIG_FUSE_FS is not set 1420# CONFIG_FUSE_FS is not set
1482 1421
1483# 1422#
1423# Caches
1424#
1425# CONFIG_FSCACHE is not set
1426
1427#
1484# CD-ROM/DVD Filesystems 1428# CD-ROM/DVD Filesystems
1485# 1429#
1486CONFIG_ISO9660_FS=m 1430CONFIG_ISO9660_FS=m
@@ -1535,6 +1479,7 @@ CONFIG_SYSV_FS=m
1535CONFIG_UFS_FS=m 1479CONFIG_UFS_FS=m
1536# CONFIG_UFS_FS_WRITE is not set 1480# CONFIG_UFS_FS_WRITE is not set
1537# CONFIG_UFS_DEBUG is not set 1481# CONFIG_UFS_DEBUG is not set
1482# CONFIG_NILFS2_FS is not set
1538CONFIG_NETWORK_FILESYSTEMS=y 1483CONFIG_NETWORK_FILESYSTEMS=y
1539CONFIG_NFS_FS=y 1484CONFIG_NFS_FS=y
1540CONFIG_NFS_V3=y 1485CONFIG_NFS_V3=y
@@ -1550,7 +1495,6 @@ CONFIG_EXPORTFS=y
1550CONFIG_NFS_COMMON=y 1495CONFIG_NFS_COMMON=y
1551CONFIG_SUNRPC=y 1496CONFIG_SUNRPC=y
1552CONFIG_SUNRPC_GSS=y 1497CONFIG_SUNRPC_GSS=y
1553# CONFIG_SUNRPC_REGISTER_V4 is not set
1554CONFIG_RPCSEC_GSS_KRB5=y 1498CONFIG_RPCSEC_GSS_KRB5=y
1555# CONFIG_RPCSEC_GSS_SPKM3 is not set 1499# CONFIG_RPCSEC_GSS_SPKM3 is not set
1556# CONFIG_SMB_FS is not set 1500# CONFIG_SMB_FS is not set
@@ -1621,6 +1565,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1621# CONFIG_NLS_KOI8_U is not set 1565# CONFIG_NLS_KOI8_U is not set
1622CONFIG_NLS_UTF8=m 1566CONFIG_NLS_UTF8=m
1623# CONFIG_DLM is not set 1567# CONFIG_DLM is not set
1568# CONFIG_BINARY_PRINTF is not set
1624 1569
1625# 1570#
1626# Library routines 1571# Library routines
@@ -1635,11 +1580,12 @@ CONFIG_CRC32=y
1635# CONFIG_CRC7 is not set 1580# CONFIG_CRC7 is not set
1636CONFIG_LIBCRC32C=m 1581CONFIG_LIBCRC32C=m
1637CONFIG_ZLIB_INFLATE=y 1582CONFIG_ZLIB_INFLATE=y
1638CONFIG_PLIST=y 1583CONFIG_DECOMPRESS_GZIP=y
1639CONFIG_HAS_IOMEM=y 1584CONFIG_HAS_IOMEM=y
1640CONFIG_HAS_IOPORT=y 1585CONFIG_HAS_IOPORT=y
1641CONFIG_HAS_DMA=y 1586CONFIG_HAS_DMA=y
1642CONFIG_HAVE_LMB=y 1587CONFIG_HAVE_LMB=y
1588CONFIG_NLATTR=y
1643 1589
1644# 1590#
1645# Kernel hacking 1591# Kernel hacking
@@ -1657,6 +1603,9 @@ CONFIG_DEBUG_KERNEL=y
1657CONFIG_DETECT_SOFTLOCKUP=y 1603CONFIG_DETECT_SOFTLOCKUP=y
1658# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1604# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1659CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1605CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1606CONFIG_DETECT_HUNG_TASK=y
1607# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1608CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1660CONFIG_SCHED_DEBUG=y 1609CONFIG_SCHED_DEBUG=y
1661# CONFIG_SCHEDSTATS is not set 1610# CONFIG_SCHEDSTATS is not set
1662# CONFIG_TIMER_STATS is not set 1611# CONFIG_TIMER_STATS is not set
@@ -1687,9 +1636,12 @@ CONFIG_DEBUG_INFO=y
1687# CONFIG_FAULT_INJECTION is not set 1636# CONFIG_FAULT_INJECTION is not set
1688# CONFIG_LATENCYTOP is not set 1637# CONFIG_LATENCYTOP is not set
1689CONFIG_SYSCTL_SYSCALL_CHECK=y 1638CONFIG_SYSCTL_SYSCALL_CHECK=y
1639# CONFIG_DEBUG_PAGEALLOC is not set
1690CONFIG_HAVE_FUNCTION_TRACER=y 1640CONFIG_HAVE_FUNCTION_TRACER=y
1641CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1691CONFIG_HAVE_DYNAMIC_FTRACE=y 1642CONFIG_HAVE_DYNAMIC_FTRACE=y
1692CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1643CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1644CONFIG_TRACING_SUPPORT=y
1693 1645
1694# 1646#
1695# Tracers 1647# Tracers
@@ -1697,17 +1649,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1697# CONFIG_FUNCTION_TRACER is not set 1649# CONFIG_FUNCTION_TRACER is not set
1698# CONFIG_SCHED_TRACER is not set 1650# CONFIG_SCHED_TRACER is not set
1699# CONFIG_CONTEXT_SWITCH_TRACER is not set 1651# CONFIG_CONTEXT_SWITCH_TRACER is not set
1652# CONFIG_EVENT_TRACER is not set
1700# CONFIG_BOOT_TRACER is not set 1653# CONFIG_BOOT_TRACER is not set
1701# CONFIG_TRACE_BRANCH_PROFILING is not set 1654# CONFIG_TRACE_BRANCH_PROFILING is not set
1702# CONFIG_STACK_TRACER is not set 1655# CONFIG_STACK_TRACER is not set
1703# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1656# CONFIG_KMEMTRACE is not set
1657# CONFIG_WORKQUEUE_TRACER is not set
1658# CONFIG_BLK_DEV_IO_TRACE is not set
1704# CONFIG_SAMPLES is not set 1659# CONFIG_SAMPLES is not set
1705CONFIG_HAVE_ARCH_KGDB=y 1660CONFIG_HAVE_ARCH_KGDB=y
1706# CONFIG_KGDB is not set 1661# CONFIG_KGDB is not set
1707CONFIG_PRINT_STACK_DEPTH=64 1662CONFIG_PRINT_STACK_DEPTH=64
1708# CONFIG_DEBUG_STACKOVERFLOW is not set 1663# CONFIG_DEBUG_STACKOVERFLOW is not set
1709# CONFIG_DEBUG_STACK_USAGE is not set 1664# CONFIG_DEBUG_STACK_USAGE is not set
1710# CONFIG_DEBUG_PAGEALLOC is not set
1711# CONFIG_CODE_PATCHING_SELFTEST is not set 1665# CONFIG_CODE_PATCHING_SELFTEST is not set
1712# CONFIG_FTR_FIXUP_SELFTEST is not set 1666# CONFIG_FTR_FIXUP_SELFTEST is not set
1713# CONFIG_MSI_BITMAP_SELFTEST is not set 1667# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1738,10 +1692,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1738CONFIG_CRYPTO_HASH=y 1692CONFIG_CRYPTO_HASH=y
1739CONFIG_CRYPTO_HASH2=y 1693CONFIG_CRYPTO_HASH2=y
1740CONFIG_CRYPTO_RNG2=y 1694CONFIG_CRYPTO_RNG2=y
1695CONFIG_CRYPTO_PCOMP=y
1741CONFIG_CRYPTO_MANAGER=y 1696CONFIG_CRYPTO_MANAGER=y
1742CONFIG_CRYPTO_MANAGER2=y 1697CONFIG_CRYPTO_MANAGER2=y
1743# CONFIG_CRYPTO_GF128MUL is not set 1698# CONFIG_CRYPTO_GF128MUL is not set
1744# CONFIG_CRYPTO_NULL is not set 1699# CONFIG_CRYPTO_NULL is not set
1700CONFIG_CRYPTO_WORKQUEUE=y
1745# CONFIG_CRYPTO_CRYPTD is not set 1701# CONFIG_CRYPTO_CRYPTD is not set
1746# CONFIG_CRYPTO_AUTHENC is not set 1702# CONFIG_CRYPTO_AUTHENC is not set
1747# CONFIG_CRYPTO_TEST is not set 1703# CONFIG_CRYPTO_TEST is not set
@@ -1810,6 +1766,7 @@ CONFIG_CRYPTO_DES=y
1810# Compression 1766# Compression
1811# 1767#
1812# CONFIG_CRYPTO_DEFLATE is not set 1768# CONFIG_CRYPTO_DEFLATE is not set
1769# CONFIG_CRYPTO_ZLIB is not set
1813# CONFIG_CRYPTO_LZO is not set 1770# CONFIG_CRYPTO_LZO is not set
1814 1771
1815# 1772#
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index 4b76321c0ec4..42e64ebc279d 100644
--- a/arch/powerpc/configs/mpc885_ads_defconfig
+++ b/arch/powerpc/configs/mpc885_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:41 2009 4# Wed May 13 17:22:01 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -52,6 +52,7 @@ CONFIG_GENERIC_BUG=y
52# CONFIG_DEFAULT_UIMAGE is not set 52# CONFIG_DEFAULT_UIMAGE is not set
53# CONFIG_PPC_DCR_NATIVE is not set 53# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 54# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
56 57
57# 58#
@@ -69,6 +70,15 @@ CONFIG_SYSVIPC_SYSCTL=y
69# CONFIG_BSD_PROCESS_ACCT is not set 70# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
73
74#
75# RCU Subsystem
76#
77CONFIG_CLASSIC_RCU=y
78# CONFIG_TREE_RCU is not set
79# CONFIG_PREEMPT_RCU is not set
80# CONFIG_TREE_RCU_TRACE is not set
81# CONFIG_PREEMPT_RCU_TRACE is not set
72# CONFIG_IKCONFIG is not set 82# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 83CONFIG_LOG_BUF_SHIFT=14
74CONFIG_GROUP_SCHED=y 84CONFIG_GROUP_SCHED=y
@@ -84,19 +94,19 @@ CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_BLK_DEV_INITRD is not set 94# CONFIG_BLK_DEV_INITRD is not set
85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 95# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
86CONFIG_SYSCTL=y 96CONFIG_SYSCTL=y
97CONFIG_ANON_INODES=y
87CONFIG_EMBEDDED=y 98CONFIG_EMBEDDED=y
88# CONFIG_SYSCTL_SYSCALL is not set 99# CONFIG_SYSCTL_SYSCALL is not set
89CONFIG_KALLSYMS=y 100CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_ALL is not set 101# CONFIG_KALLSYMS_ALL is not set
91# CONFIG_KALLSYMS_EXTRA_PASS is not set 102# CONFIG_KALLSYMS_EXTRA_PASS is not set
103# CONFIG_STRIP_ASM_SYMS is not set
92CONFIG_HOTPLUG=y 104CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 105CONFIG_PRINTK=y
94CONFIG_BUG=y 106CONFIG_BUG=y
95# CONFIG_ELF_CORE is not set 107# CONFIG_ELF_CORE is not set
96CONFIG_COMPAT_BRK=y
97# CONFIG_BASE_FULL is not set 108# CONFIG_BASE_FULL is not set
98# CONFIG_FUTEX is not set 109# CONFIG_FUTEX is not set
99CONFIG_ANON_INODES=y
100CONFIG_EPOLL=y 110CONFIG_EPOLL=y
101CONFIG_SIGNALFD=y 111CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 112CONFIG_TIMERFD=y
@@ -105,10 +115,12 @@ CONFIG_SHMEM=y
105CONFIG_AIO=y 115CONFIG_AIO=y
106# CONFIG_VM_EVENT_COUNTERS is not set 116# CONFIG_VM_EVENT_COUNTERS is not set
107CONFIG_SLUB_DEBUG=y 117CONFIG_SLUB_DEBUG=y
118CONFIG_COMPAT_BRK=y
108# CONFIG_SLAB is not set 119# CONFIG_SLAB is not set
109CONFIG_SLUB=y 120CONFIG_SLUB=y
110# CONFIG_SLOB is not set 121# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set 122# CONFIG_PROFILING is not set
123# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 126CONFIG_HAVE_IOREMAP_PROT=y
@@ -116,13 +128,13 @@ CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 128CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 129CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y 130CONFIG_HAVE_CLK=y
131# CONFIG_SLOW_WORK is not set
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
121CONFIG_BASE_SMALL=1 134CONFIG_BASE_SMALL=1
122# CONFIG_MODULES is not set 135# CONFIG_MODULES is not set
123CONFIG_BLOCK=y 136CONFIG_BLOCK=y
124# CONFIG_LBD is not set 137# CONFIG_LBD is not set
125# CONFIG_BLK_DEV_IO_TRACE is not set
126# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
127# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
128 140
@@ -138,11 +150,6 @@ CONFIG_DEFAULT_DEADLINE=y
138# CONFIG_DEFAULT_CFQ is not set 150# CONFIG_DEFAULT_CFQ is not set
139# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
140CONFIG_DEFAULT_IOSCHED="deadline" 152CONFIG_DEFAULT_IOSCHED="deadline"
141CONFIG_CLASSIC_RCU=y
142# CONFIG_TREE_RCU is not set
143# CONFIG_PREEMPT_RCU is not set
144# CONFIG_TREE_RCU_TRACE is not set
145# CONFIG_PREEMPT_RCU_TRACE is not set
146# CONFIG_FREEZER is not set 153# CONFIG_FREEZER is not set
147 154
148# 155#
@@ -240,9 +247,12 @@ CONFIG_ZONE_DMA_FLAG=1
240CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
241CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
242CONFIG_UNEVICTABLE_LRU=y 249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_HAVE_MLOCK=y
251CONFIG_HAVE_MLOCKED_PAGE_BIT=y
243CONFIG_PPC_4K_PAGES=y 252CONFIG_PPC_4K_PAGES=y
244# CONFIG_PPC_16K_PAGES is not set 253# CONFIG_PPC_16K_PAGES is not set
245# CONFIG_PPC_64K_PAGES is not set 254# CONFIG_PPC_64K_PAGES is not set
255# CONFIG_PPC_256K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 256CONFIG_FORCE_MAX_ZONEORDER=11
247CONFIG_PROC_DEVICETREE=y 257CONFIG_PROC_DEVICETREE=y
248# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
@@ -277,14 +287,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
277CONFIG_KERNEL_START=0xc0000000 287CONFIG_KERNEL_START=0xc0000000
278CONFIG_PHYSICAL_START=0x00000000 288CONFIG_PHYSICAL_START=0x00000000
279CONFIG_TASK_SIZE=0x80000000 289CONFIG_TASK_SIZE=0x80000000
280CONFIG_CONSISTENT_START=0xfd000000
281CONFIG_CONSISTENT_SIZE=0x00200000
282CONFIG_NET=y 290CONFIG_NET=y
283 291
284# 292#
285# Networking options 293# Networking options
286# 294#
287CONFIG_COMPAT_NET_DEV_OPS=y
288CONFIG_PACKET=y 295CONFIG_PACKET=y
289# CONFIG_PACKET_MMAP is not set 296# CONFIG_PACKET_MMAP is not set
290CONFIG_UNIX=y 297CONFIG_UNIX=y
@@ -335,6 +342,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
335# CONFIG_LAPB is not set 342# CONFIG_LAPB is not set
336# CONFIG_ECONET is not set 343# CONFIG_ECONET is not set
337# CONFIG_WAN_ROUTER is not set 344# CONFIG_WAN_ROUTER is not set
345# CONFIG_PHONET is not set
338# CONFIG_NET_SCHED is not set 346# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set 347# CONFIG_DCB is not set
340 348
@@ -347,7 +355,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
347# CONFIG_IRDA is not set 355# CONFIG_IRDA is not set
348# CONFIG_BT is not set 356# CONFIG_BT is not set
349# CONFIG_AF_RXRPC is not set 357# CONFIG_AF_RXRPC is not set
350# CONFIG_PHONET is not set
351CONFIG_WIRELESS=y 358CONFIG_WIRELESS=y
352# CONFIG_CFG80211 is not set 359# CONFIG_CFG80211 is not set
353CONFIG_WIRELESS_OLD_REGULATORY=y 360CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -450,7 +457,6 @@ CONFIG_MTD_PHYSMAP_OF=y
450# LPDDR flash memory drivers 457# LPDDR flash memory drivers
451# 458#
452# CONFIG_MTD_LPDDR is not set 459# CONFIG_MTD_LPDDR is not set
453# CONFIG_MTD_QINFO_PROBE is not set
454 460
455# 461#
456# UBI - Unsorted block images 462# UBI - Unsorted block images
@@ -474,6 +480,7 @@ CONFIG_HAVE_IDE=y
474# CONFIG_MD is not set 480# CONFIG_MD is not set
475# CONFIG_MACINTOSH_DRIVERS is not set 481# CONFIG_MACINTOSH_DRIVERS is not set
476CONFIG_NETDEVICES=y 482CONFIG_NETDEVICES=y
483CONFIG_COMPAT_NET_DEV_OPS=y
477# CONFIG_DUMMY is not set 484# CONFIG_DUMMY is not set
478# CONFIG_BONDING is not set 485# CONFIG_BONDING is not set
479# CONFIG_MACVLAN is not set 486# CONFIG_MACVLAN is not set
@@ -502,6 +509,8 @@ CONFIG_DAVICOM_PHY=y
502# CONFIG_MDIO_BITBANG is not set 509# CONFIG_MDIO_BITBANG is not set
503CONFIG_NET_ETHERNET=y 510CONFIG_NET_ETHERNET=y
504CONFIG_MII=y 511CONFIG_MII=y
512# CONFIG_ETHOC is not set
513# CONFIG_DNET is not set
505# CONFIG_IBM_NEW_EMAC_ZMII is not set 514# CONFIG_IBM_NEW_EMAC_ZMII is not set
506# CONFIG_IBM_NEW_EMAC_RGMII is not set 515# CONFIG_IBM_NEW_EMAC_RGMII is not set
507# CONFIG_IBM_NEW_EMAC_TAH is not set 516# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -522,7 +531,6 @@ CONFIG_FS_ENET_MDIO_FEC=y
522# 531#
523# CONFIG_WLAN_PRE80211 is not set 532# CONFIG_WLAN_PRE80211 is not set
524# CONFIG_WLAN_80211 is not set 533# CONFIG_WLAN_80211 is not set
525# CONFIG_IWLWIFI_LEDS is not set
526 534
527# 535#
528# Enable WiMAX (Networking options) to see the WiMAX drivers 536# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -573,6 +581,7 @@ CONFIG_UNIX98_PTYS=y
573# CONFIG_HVC_UDBG is not set 581# CONFIG_HVC_UDBG is not set
574# CONFIG_IPMI_HANDLER is not set 582# CONFIG_IPMI_HANDLER is not set
575CONFIG_HW_RANDOM=y 583CONFIG_HW_RANDOM=y
584# CONFIG_HW_RANDOM_TIMERIOMEM is not set
576# CONFIG_NVRAM is not set 585# CONFIG_NVRAM is not set
577CONFIG_GEN_RTC=y 586CONFIG_GEN_RTC=y
578# CONFIG_GEN_RTC_X is not set 587# CONFIG_GEN_RTC_X is not set
@@ -642,6 +651,7 @@ CONFIG_DAB=y
642# CONFIG_EDAC is not set 651# CONFIG_EDAC is not set
643# CONFIG_RTC_CLASS is not set 652# CONFIG_RTC_CLASS is not set
644# CONFIG_DMADEVICES is not set 653# CONFIG_DMADEVICES is not set
654# CONFIG_AUXDISPLAY is not set
645# CONFIG_UIO is not set 655# CONFIG_UIO is not set
646# CONFIG_STAGING is not set 656# CONFIG_STAGING is not set
647 657
@@ -666,6 +676,11 @@ CONFIG_FILE_LOCKING=y
666# CONFIG_FUSE_FS is not set 676# CONFIG_FUSE_FS is not set
667 677
668# 678#
679# Caches
680#
681# CONFIG_FSCACHE is not set
682
683#
669# CD-ROM/DVD Filesystems 684# CD-ROM/DVD Filesystems
670# 685#
671# CONFIG_ISO9660_FS is not set 686# CONFIG_ISO9660_FS is not set
@@ -709,6 +724,7 @@ CONFIG_CRAMFS=y
709# CONFIG_ROMFS_FS is not set 724# CONFIG_ROMFS_FS is not set
710# CONFIG_SYSV_FS is not set 725# CONFIG_SYSV_FS is not set
711# CONFIG_UFS_FS is not set 726# CONFIG_UFS_FS is not set
727# CONFIG_NILFS2_FS is not set
712CONFIG_NETWORK_FILESYSTEMS=y 728CONFIG_NETWORK_FILESYSTEMS=y
713CONFIG_NFS_FS=y 729CONFIG_NFS_FS=y
714CONFIG_NFS_V3=y 730CONFIG_NFS_V3=y
@@ -720,7 +736,6 @@ CONFIG_LOCKD=y
720CONFIG_LOCKD_V4=y 736CONFIG_LOCKD_V4=y
721CONFIG_NFS_COMMON=y 737CONFIG_NFS_COMMON=y
722CONFIG_SUNRPC=y 738CONFIG_SUNRPC=y
723# CONFIG_SUNRPC_REGISTER_V4 is not set
724# CONFIG_RPCSEC_GSS_KRB5 is not set 739# CONFIG_RPCSEC_GSS_KRB5 is not set
725# CONFIG_RPCSEC_GSS_SPKM3 is not set 740# CONFIG_RPCSEC_GSS_SPKM3 is not set
726# CONFIG_SMB_FS is not set 741# CONFIG_SMB_FS is not set
@@ -752,6 +767,7 @@ CONFIG_MSDOS_PARTITION=y
752# CONFIG_SYSV68_PARTITION is not set 767# CONFIG_SYSV68_PARTITION is not set
753# CONFIG_NLS is not set 768# CONFIG_NLS is not set
754# CONFIG_DLM is not set 769# CONFIG_DLM is not set
770# CONFIG_BINARY_PRINTF is not set
755 771
756# 772#
757# Library routines 773# Library routines
@@ -769,6 +785,7 @@ CONFIG_HAS_IOMEM=y
769CONFIG_HAS_IOPORT=y 785CONFIG_HAS_IOPORT=y
770CONFIG_HAS_DMA=y 786CONFIG_HAS_DMA=y
771CONFIG_HAVE_LMB=y 787CONFIG_HAVE_LMB=y
788CONFIG_NLATTR=y
772 789
773# 790#
774# Kernel hacking 791# Kernel hacking
@@ -786,6 +803,9 @@ CONFIG_DEBUG_KERNEL=y
786CONFIG_DETECT_SOFTLOCKUP=y 803CONFIG_DETECT_SOFTLOCKUP=y
787# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 804# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
788CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 805CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
806CONFIG_DETECT_HUNG_TASK=y
807# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
808CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
789CONFIG_SCHED_DEBUG=y 809CONFIG_SCHED_DEBUG=y
790# CONFIG_SCHEDSTATS is not set 810# CONFIG_SCHEDSTATS is not set
791# CONFIG_TIMER_STATS is not set 811# CONFIG_TIMER_STATS is not set
@@ -812,9 +832,12 @@ CONFIG_DEBUG_INFO=y
812# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 832# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
813# CONFIG_FAULT_INJECTION is not set 833# CONFIG_FAULT_INJECTION is not set
814# CONFIG_LATENCYTOP is not set 834# CONFIG_LATENCYTOP is not set
835# CONFIG_DEBUG_PAGEALLOC is not set
815CONFIG_HAVE_FUNCTION_TRACER=y 836CONFIG_HAVE_FUNCTION_TRACER=y
837CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
816CONFIG_HAVE_DYNAMIC_FTRACE=y 838CONFIG_HAVE_DYNAMIC_FTRACE=y
817CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 839CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
840CONFIG_TRACING_SUPPORT=y
818 841
819# 842#
820# Tracers 843# Tracers
@@ -822,17 +845,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
822# CONFIG_FUNCTION_TRACER is not set 845# CONFIG_FUNCTION_TRACER is not set
823# CONFIG_SCHED_TRACER is not set 846# CONFIG_SCHED_TRACER is not set
824# CONFIG_CONTEXT_SWITCH_TRACER is not set 847# CONFIG_CONTEXT_SWITCH_TRACER is not set
848# CONFIG_EVENT_TRACER is not set
825# CONFIG_BOOT_TRACER is not set 849# CONFIG_BOOT_TRACER is not set
826# CONFIG_TRACE_BRANCH_PROFILING is not set 850# CONFIG_TRACE_BRANCH_PROFILING is not set
827# CONFIG_STACK_TRACER is not set 851# CONFIG_STACK_TRACER is not set
828# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 852# CONFIG_KMEMTRACE is not set
853# CONFIG_WORKQUEUE_TRACER is not set
854# CONFIG_BLK_DEV_IO_TRACE is not set
829# CONFIG_SAMPLES is not set 855# CONFIG_SAMPLES is not set
830CONFIG_HAVE_ARCH_KGDB=y 856CONFIG_HAVE_ARCH_KGDB=y
831# CONFIG_KGDB is not set 857# CONFIG_KGDB is not set
832CONFIG_PRINT_STACK_DEPTH=64 858CONFIG_PRINT_STACK_DEPTH=64
833# CONFIG_DEBUG_STACKOVERFLOW is not set 859# CONFIG_DEBUG_STACKOVERFLOW is not set
834# CONFIG_DEBUG_STACK_USAGE is not set 860# CONFIG_DEBUG_STACK_USAGE is not set
835# CONFIG_DEBUG_PAGEALLOC is not set
836# CONFIG_CODE_PATCHING_SELFTEST is not set 861# CONFIG_CODE_PATCHING_SELFTEST is not set
837# CONFIG_FTR_FIXUP_SELFTEST is not set 862# CONFIG_FTR_FIXUP_SELFTEST is not set
838# CONFIG_MSI_BITMAP_SELFTEST is not set 863# CONFIG_MSI_BITMAP_SELFTEST is not set
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index 5339bb44cce9..ea8870a34482 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.28-rc3 3# Linux kernel version: 2.6.30-rc7
4# Tue Nov 11 19:36:51 2008 4# Mon May 25 14:53:25 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18CONFIG_ALTIVEC=y 19CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -43,7 +44,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 44CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 46CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 47CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
49CONFIG_OF=y 50CONFIG_OF=y
@@ -52,12 +53,14 @@ CONFIG_OF=y
52CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
53CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
54CONFIG_SYS_SUPPORTS_APM_EMULATION=y 55CONFIG_SYS_SUPPORTS_APM_EMULATION=y
56CONFIG_DTC=y
55# CONFIG_DEFAULT_UIMAGE is not set 57# CONFIG_DEFAULT_UIMAGE is not set
56CONFIG_HIBERNATE_32=y 58CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y 59CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 60CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 65
63# 66#
@@ -72,14 +75,24 @@ CONFIG_SWAP=y
72CONFIG_SYSVIPC=y 75CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y 76CONFIG_SYSVIPC_SYSCTL=y
74CONFIG_POSIX_MQUEUE=y 77CONFIG_POSIX_MQUEUE=y
78CONFIG_POSIX_MQUEUE_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 79# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 80# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 81# CONFIG_AUDIT is not set
82
83#
84# RCU Subsystem
85#
86CONFIG_CLASSIC_RCU=y
87# CONFIG_TREE_RCU is not set
88# CONFIG_PREEMPT_RCU is not set
89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_PREEMPT_RCU_TRACE is not set
78CONFIG_IKCONFIG=y 91CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 92CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_CGROUPS is not set
82# CONFIG_GROUP_SCHED is not set 94# CONFIG_GROUP_SCHED is not set
95# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 96CONFIG_SYSFS_DEPRECATED=y
84CONFIG_SYSFS_DEPRECATED_V2=y 97CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 98# CONFIG_RELAY is not set
@@ -88,23 +101,27 @@ CONFIG_NAMESPACES=y
88# CONFIG_IPC_NS is not set 101# CONFIG_IPC_NS is not set
89# CONFIG_USER_NS is not set 102# CONFIG_USER_NS is not set
90# CONFIG_PID_NS is not set 103# CONFIG_PID_NS is not set
104# CONFIG_NET_NS is not set
91CONFIG_BLK_DEV_INITRD=y 105CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 106CONFIG_INITRAMFS_SOURCE=""
107CONFIG_RD_GZIP=y
108CONFIG_RD_BZIP2=y
109CONFIG_RD_LZMA=y
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
112CONFIG_ANON_INODES=y
95# CONFIG_EMBEDDED is not set 113# CONFIG_EMBEDDED is not set
96CONFIG_SYSCTL_SYSCALL=y 114CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 115CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 116CONFIG_KALLSYMS_ALL=y
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 117# CONFIG_KALLSYMS_EXTRA_PASS is not set
118# CONFIG_STRIP_ASM_SYMS is not set
100CONFIG_HOTPLUG=y 119CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 120CONFIG_PRINTK=y
102CONFIG_BUG=y 121CONFIG_BUG=y
103CONFIG_ELF_CORE=y 122CONFIG_ELF_CORE=y
104# CONFIG_COMPAT_BRK is not set
105CONFIG_BASE_FULL=y 123CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 124CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 125CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 126CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 127CONFIG_TIMERFD=y
@@ -114,10 +131,12 @@ CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 131CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y 132CONFIG_PCI_QUIRKS=y
116CONFIG_SLUB_DEBUG=y 133CONFIG_SLUB_DEBUG=y
134# CONFIG_COMPAT_BRK is not set
117# CONFIG_SLAB is not set 135# CONFIG_SLAB is not set
118CONFIG_SLUB=y 136CONFIG_SLUB=y
119# CONFIG_SLOB is not set 137# CONFIG_SLOB is not set
120CONFIG_PROFILING=y 138CONFIG_PROFILING=y
139CONFIG_TRACEPOINTS=y
121# CONFIG_MARKERS is not set 140# CONFIG_MARKERS is not set
122CONFIG_OPROFILE=y 141CONFIG_OPROFILE=y
123CONFIG_HAVE_OPROFILE=y 142CONFIG_HAVE_OPROFILE=y
@@ -127,10 +146,10 @@ CONFIG_HAVE_IOREMAP_PROT=y
127CONFIG_HAVE_KPROBES=y 146CONFIG_HAVE_KPROBES=y
128CONFIG_HAVE_KRETPROBES=y 147CONFIG_HAVE_KRETPROBES=y
129CONFIG_HAVE_ARCH_TRACEHOOK=y 148CONFIG_HAVE_ARCH_TRACEHOOK=y
149# CONFIG_SLOW_WORK is not set
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 150# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 151CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 152CONFIG_RT_MUTEXES=y
133# CONFIG_TINY_SHMEM is not set
134CONFIG_BASE_SMALL=0 153CONFIG_BASE_SMALL=0
135CONFIG_MODULES=y 154CONFIG_MODULES=y
136# CONFIG_MODULE_FORCE_LOAD is not set 155# CONFIG_MODULE_FORCE_LOAD is not set
@@ -138,11 +157,8 @@ CONFIG_MODULE_UNLOAD=y
138CONFIG_MODULE_FORCE_UNLOAD=y 157CONFIG_MODULE_FORCE_UNLOAD=y
139# CONFIG_MODVERSIONS is not set 158# CONFIG_MODVERSIONS is not set
140# CONFIG_MODULE_SRCVERSION_ALL is not set 159# CONFIG_MODULE_SRCVERSION_ALL is not set
141CONFIG_KMOD=y
142CONFIG_BLOCK=y 160CONFIG_BLOCK=y
143CONFIG_LBD=y 161CONFIG_LBD=y
144# CONFIG_BLK_DEV_IO_TRACE is not set
145CONFIG_LSF=y
146CONFIG_BLK_DEV_BSG=y 162CONFIG_BLK_DEV_BSG=y
147# CONFIG_BLK_DEV_INTEGRITY is not set 163# CONFIG_BLK_DEV_INTEGRITY is not set
148 164
@@ -158,14 +174,11 @@ CONFIG_DEFAULT_AS=y
158# CONFIG_DEFAULT_CFQ is not set 174# CONFIG_DEFAULT_CFQ is not set
159# CONFIG_DEFAULT_NOOP is not set 175# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="anticipatory" 176CONFIG_DEFAULT_IOSCHED="anticipatory"
161CONFIG_CLASSIC_RCU=y
162CONFIG_FREEZER=y 177CONFIG_FREEZER=y
163 178
164# 179#
165# Platform support 180# Platform support
166# 181#
167CONFIG_PPC_MULTIPLATFORM=y
168CONFIG_CLASSIC32=y
169# CONFIG_PPC_CHRP is not set 182# CONFIG_PPC_CHRP is not set
170# CONFIG_MPC5121_ADS is not set 183# CONFIG_MPC5121_ADS is not set
171# CONFIG_MPC5121_GENERIC is not set 184# CONFIG_MPC5121_GENERIC is not set
@@ -178,7 +191,9 @@ CONFIG_PPC_PMAC=y
178# CONFIG_PPC_83xx is not set 191# CONFIG_PPC_83xx is not set
179# CONFIG_PPC_86xx is not set 192# CONFIG_PPC_86xx is not set
180# CONFIG_EMBEDDED6xx is not set 193# CONFIG_EMBEDDED6xx is not set
194# CONFIG_AMIGAONE is not set
181CONFIG_PPC_NATIVE=y 195CONFIG_PPC_NATIVE=y
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
182# CONFIG_IPIC is not set 197# CONFIG_IPIC is not set
183CONFIG_MPIC=y 198CONFIG_MPIC=y
184# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -212,11 +227,12 @@ CONFIG_CPU_FREQ_PMAC=y
212CONFIG_PPC601_SYNC_FIX=y 227CONFIG_PPC601_SYNC_FIX=y
213# CONFIG_TAU is not set 228# CONFIG_TAU is not set
214# CONFIG_FSL_ULI1575 is not set 229# CONFIG_FSL_ULI1575 is not set
230# CONFIG_SIMPLE_GPIO is not set
215 231
216# 232#
217# Kernel options 233# Kernel options
218# 234#
219# CONFIG_HIGHMEM is not set 235CONFIG_HIGHMEM=y
220CONFIG_TICK_ONESHOT=y 236CONFIG_TICK_ONESHOT=y
221CONFIG_NO_HZ=y 237CONFIG_NO_HZ=y
222CONFIG_HIGH_RES_TIMERS=y 238CONFIG_HIGH_RES_TIMERS=y
@@ -239,6 +255,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
239CONFIG_ARCH_HAS_WALK_MEMORY=y 255CONFIG_ARCH_HAS_WALK_MEMORY=y
240CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 256CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
241# CONFIG_KEXEC is not set 257# CONFIG_KEXEC is not set
258# CONFIG_CRASH_DUMP is not set
242CONFIG_ARCH_FLATMEM_ENABLE=y 259CONFIG_ARCH_FLATMEM_ENABLE=y
243CONFIG_ARCH_POPULATES_NODE_MAP=y 260CONFIG_ARCH_POPULATES_NODE_MAP=y
244CONFIG_SELECT_MEMORY_MODEL=y 261CONFIG_SELECT_MEMORY_MODEL=y
@@ -250,12 +267,17 @@ CONFIG_FLAT_NODE_MEM_MAP=y
250CONFIG_PAGEFLAGS_EXTENDED=y 267CONFIG_PAGEFLAGS_EXTENDED=y
251CONFIG_SPLIT_PTLOCK_CPUS=4 268CONFIG_SPLIT_PTLOCK_CPUS=4
252# CONFIG_MIGRATION is not set 269# CONFIG_MIGRATION is not set
253# CONFIG_RESOURCES_64BIT is not set
254# CONFIG_PHYS_ADDR_T_64BIT is not set 270# CONFIG_PHYS_ADDR_T_64BIT is not set
255CONFIG_ZONE_DMA_FLAG=1 271CONFIG_ZONE_DMA_FLAG=1
256CONFIG_BOUNCE=y 272CONFIG_BOUNCE=y
257CONFIG_VIRT_TO_BUS=y 273CONFIG_VIRT_TO_BUS=y
258CONFIG_UNEVICTABLE_LRU=y 274CONFIG_UNEVICTABLE_LRU=y
275CONFIG_HAVE_MLOCK=y
276CONFIG_HAVE_MLOCKED_PAGE_BIT=y
277CONFIG_PPC_4K_PAGES=y
278# CONFIG_PPC_16K_PAGES is not set
279# CONFIG_PPC_64K_PAGES is not set
280# CONFIG_PPC_256K_PAGES is not set
259CONFIG_FORCE_MAX_ZONEORDER=11 281CONFIG_FORCE_MAX_ZONEORDER=11
260CONFIG_PROC_DEVICETREE=y 282CONFIG_PROC_DEVICETREE=y
261# CONFIG_CMDLINE_BOOL is not set 283# CONFIG_CMDLINE_BOOL is not set
@@ -288,6 +310,8 @@ CONFIG_ARCH_SUPPORTS_MSI=y
288# CONFIG_PCI_MSI is not set 310# CONFIG_PCI_MSI is not set
289# CONFIG_PCI_LEGACY is not set 311# CONFIG_PCI_LEGACY is not set
290# CONFIG_PCI_DEBUG is not set 312# CONFIG_PCI_DEBUG is not set
313# CONFIG_PCI_STUB is not set
314# CONFIG_PCI_IOV is not set
291CONFIG_PCCARD=m 315CONFIG_PCCARD=m
292# CONFIG_PCMCIA_DEBUG is not set 316# CONFIG_PCMCIA_DEBUG is not set
293CONFIG_PCMCIA=m 317CONFIG_PCMCIA=m
@@ -397,6 +421,8 @@ CONFIG_NETFILTER_XTABLES=m
397CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 421CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
398# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 422# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
399# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 423# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
424CONFIG_NETFILTER_XT_TARGET_HL=m
425# CONFIG_NETFILTER_XT_TARGET_LED is not set
400CONFIG_NETFILTER_XT_TARGET_MARK=m 426CONFIG_NETFILTER_XT_TARGET_MARK=m
401CONFIG_NETFILTER_XT_TARGET_NFLOG=m 427CONFIG_NETFILTER_XT_TARGET_NFLOG=m
402CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 428CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -405,6 +431,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
405CONFIG_NETFILTER_XT_TARGET_TRACE=m 431CONFIG_NETFILTER_XT_TARGET_TRACE=m
406CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 432CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
407CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 433CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
434# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
408CONFIG_NETFILTER_XT_MATCH_COMMENT=m 435CONFIG_NETFILTER_XT_MATCH_COMMENT=m
409# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set 436# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
410CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 437CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -415,6 +442,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
415CONFIG_NETFILTER_XT_MATCH_ESP=m 442CONFIG_NETFILTER_XT_MATCH_ESP=m
416# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 443# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
417CONFIG_NETFILTER_XT_MATCH_HELPER=m 444CONFIG_NETFILTER_XT_MATCH_HELPER=m
445CONFIG_NETFILTER_XT_MATCH_HL=m
418CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 446CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
419CONFIG_NETFILTER_XT_MATCH_LENGTH=m 447CONFIG_NETFILTER_XT_MATCH_LENGTH=m
420CONFIG_NETFILTER_XT_MATCH_LIMIT=m 448CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -478,17 +506,15 @@ CONFIG_IP_NF_ARPFILTER=m
478CONFIG_IP_NF_ARP_MANGLE=m 506CONFIG_IP_NF_ARP_MANGLE=m
479CONFIG_IP_DCCP=m 507CONFIG_IP_DCCP=m
480CONFIG_INET_DCCP_DIAG=m 508CONFIG_INET_DCCP_DIAG=m
481CONFIG_IP_DCCP_ACKVEC=y
482 509
483# 510#
484# DCCP CCIDs Configuration (EXPERIMENTAL) 511# DCCP CCIDs Configuration (EXPERIMENTAL)
485# 512#
486CONFIG_IP_DCCP_CCID2=m
487# CONFIG_IP_DCCP_CCID2_DEBUG is not set 513# CONFIG_IP_DCCP_CCID2_DEBUG is not set
488CONFIG_IP_DCCP_CCID3=m 514CONFIG_IP_DCCP_CCID3=y
489# CONFIG_IP_DCCP_CCID3_DEBUG is not set 515# CONFIG_IP_DCCP_CCID3_DEBUG is not set
490CONFIG_IP_DCCP_CCID3_RTO=100 516CONFIG_IP_DCCP_CCID3_RTO=100
491CONFIG_IP_DCCP_TFRC_LIB=m 517CONFIG_IP_DCCP_TFRC_LIB=y
492 518
493# 519#
494# DCCP Kernel Hacking 520# DCCP Kernel Hacking
@@ -508,13 +534,16 @@ CONFIG_IP_DCCP_TFRC_LIB=m
508# CONFIG_LAPB is not set 534# CONFIG_LAPB is not set
509# CONFIG_ECONET is not set 535# CONFIG_ECONET is not set
510# CONFIG_WAN_ROUTER is not set 536# CONFIG_WAN_ROUTER is not set
537# CONFIG_PHONET is not set
511# CONFIG_NET_SCHED is not set 538# CONFIG_NET_SCHED is not set
512CONFIG_NET_CLS_ROUTE=y 539CONFIG_NET_CLS_ROUTE=y
540# CONFIG_DCB is not set
513 541
514# 542#
515# Network testing 543# Network testing
516# 544#
517# CONFIG_NET_PKTGEN is not set 545# CONFIG_NET_PKTGEN is not set
546# CONFIG_NET_DROP_MONITOR is not set
518# CONFIG_HAMRADIO is not set 547# CONFIG_HAMRADIO is not set
519# CONFIG_CAN is not set 548# CONFIG_CAN is not set
520CONFIG_IRDA=m 549CONFIG_IRDA=m
@@ -577,8 +606,6 @@ CONFIG_BT_HIDP=m
577# 606#
578# Bluetooth device drivers 607# Bluetooth device drivers
579# 608#
580CONFIG_BT_HCIUSB=m
581# CONFIG_BT_HCIUSB_SCO is not set
582# CONFIG_BT_HCIBTUSB is not set 609# CONFIG_BT_HCIBTUSB is not set
583# CONFIG_BT_HCIUART is not set 610# CONFIG_BT_HCIUART is not set
584CONFIG_BT_HCIBCM203X=m 611CONFIG_BT_HCIBCM203X=m
@@ -590,31 +617,27 @@ CONFIG_BT_HCIBFUSB=m
590# CONFIG_BT_HCIBTUART is not set 617# CONFIG_BT_HCIBTUART is not set
591# CONFIG_BT_HCIVHCI is not set 618# CONFIG_BT_HCIVHCI is not set
592# CONFIG_AF_RXRPC is not set 619# CONFIG_AF_RXRPC is not set
593# CONFIG_PHONET is not set
594CONFIG_WIRELESS=y 620CONFIG_WIRELESS=y
595CONFIG_CFG80211=m 621CONFIG_CFG80211=m
596CONFIG_NL80211=y 622# CONFIG_CFG80211_REG_DEBUG is not set
597CONFIG_WIRELESS_OLD_REGULATORY=y 623CONFIG_WIRELESS_OLD_REGULATORY=y
598CONFIG_WIRELESS_EXT=y 624CONFIG_WIRELESS_EXT=y
599CONFIG_WIRELESS_EXT_SYSFS=y 625CONFIG_WIRELESS_EXT_SYSFS=y
626# CONFIG_LIB80211 is not set
600CONFIG_MAC80211=m 627CONFIG_MAC80211=m
601 628
602# 629#
603# Rate control algorithm selection 630# Rate control algorithm selection
604# 631#
605CONFIG_MAC80211_RC_PID=y 632CONFIG_MAC80211_RC_MINSTREL=y
606# CONFIG_MAC80211_RC_MINSTREL is not set 633# CONFIG_MAC80211_RC_DEFAULT_PID is not set
607CONFIG_MAC80211_RC_DEFAULT_PID=y 634CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
608# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set 635CONFIG_MAC80211_RC_DEFAULT="minstrel"
609CONFIG_MAC80211_RC_DEFAULT="pid"
610# CONFIG_MAC80211_MESH is not set 636# CONFIG_MAC80211_MESH is not set
611CONFIG_MAC80211_LEDS=y 637CONFIG_MAC80211_LEDS=y
638# CONFIG_MAC80211_DEBUGFS is not set
612# CONFIG_MAC80211_DEBUG_MENU is not set 639# CONFIG_MAC80211_DEBUG_MENU is not set
613CONFIG_IEEE80211=m 640# CONFIG_WIMAX is not set
614# CONFIG_IEEE80211_DEBUG is not set
615CONFIG_IEEE80211_CRYPT_WEP=m
616CONFIG_IEEE80211_CRYPT_CCMP=m
617CONFIG_IEEE80211_CRYPT_TKIP=m
618# CONFIG_RFKILL is not set 641# CONFIG_RFKILL is not set
619# CONFIG_NET_9P is not set 642# CONFIG_NET_9P is not set
620 643
@@ -662,17 +685,27 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
662# CONFIG_BLK_DEV_HD is not set 685# CONFIG_BLK_DEV_HD is not set
663CONFIG_MISC_DEVICES=y 686CONFIG_MISC_DEVICES=y
664# CONFIG_PHANTOM is not set 687# CONFIG_PHANTOM is not set
665# CONFIG_EEPROM_93CX6 is not set
666# CONFIG_SGI_IOC4 is not set 688# CONFIG_SGI_IOC4 is not set
667# CONFIG_TIFM_CORE is not set 689# CONFIG_TIFM_CORE is not set
690# CONFIG_ICS932S401 is not set
668# CONFIG_ENCLOSURE_SERVICES is not set 691# CONFIG_ENCLOSURE_SERVICES is not set
669# CONFIG_HP_ILO is not set 692# CONFIG_HP_ILO is not set
693# CONFIG_ISL29003 is not set
694# CONFIG_C2PORT is not set
695
696#
697# EEPROM support
698#
699# CONFIG_EEPROM_AT24 is not set
700# CONFIG_EEPROM_LEGACY is not set
701# CONFIG_EEPROM_93CX6 is not set
670CONFIG_HAVE_IDE=y 702CONFIG_HAVE_IDE=y
671CONFIG_IDE=y 703CONFIG_IDE=y
672 704
673# 705#
674# Please see Documentation/ide/ide.txt for help/info on IDE drives 706# Please see Documentation/ide/ide.txt for help/info on IDE drives
675# 707#
708CONFIG_IDE_XFER_MODE=y
676CONFIG_IDE_TIMINGS=y 709CONFIG_IDE_TIMINGS=y
677CONFIG_IDE_ATAPI=y 710CONFIG_IDE_ATAPI=y
678# CONFIG_BLK_DEV_IDE_SATA is not set 711# CONFIG_BLK_DEV_IDE_SATA is not set
@@ -684,7 +717,6 @@ CONFIG_BLK_DEV_IDECS=m
684CONFIG_BLK_DEV_IDECD=y 717CONFIG_BLK_DEV_IDECD=y
685CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 718CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
686# CONFIG_BLK_DEV_IDETAPE is not set 719# CONFIG_BLK_DEV_IDETAPE is not set
687CONFIG_BLK_DEV_IDESCSI=y
688# CONFIG_IDE_TASK_IOCTL is not set 720# CONFIG_IDE_TASK_IOCTL is not set
689CONFIG_IDE_PROC_FS=y 721CONFIG_IDE_PROC_FS=y
690 722
@@ -714,6 +746,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
714# CONFIG_BLK_DEV_JMICRON is not set 746# CONFIG_BLK_DEV_JMICRON is not set
715# CONFIG_BLK_DEV_SC1200 is not set 747# CONFIG_BLK_DEV_SC1200 is not set
716# CONFIG_BLK_DEV_PIIX is not set 748# CONFIG_BLK_DEV_PIIX is not set
749# CONFIG_BLK_DEV_IT8172 is not set
717# CONFIG_BLK_DEV_IT8213 is not set 750# CONFIG_BLK_DEV_IT8213 is not set
718# CONFIG_BLK_DEV_IT821X is not set 751# CONFIG_BLK_DEV_IT821X is not set
719# CONFIG_BLK_DEV_NS87415 is not set 752# CONFIG_BLK_DEV_NS87415 is not set
@@ -728,7 +761,6 @@ CONFIG_BLK_DEV_SL82C105=y
728# CONFIG_BLK_DEV_TC86C001 is not set 761# CONFIG_BLK_DEV_TC86C001 is not set
729CONFIG_BLK_DEV_IDE_PMAC=y 762CONFIG_BLK_DEV_IDE_PMAC=y
730CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 763CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
731CONFIG_BLK_DEV_IDEDMA_PMAC=y
732CONFIG_BLK_DEV_IDEDMA=y 764CONFIG_BLK_DEV_IDEDMA=y
733 765
734# 766#
@@ -772,6 +804,7 @@ CONFIG_SCSI_FC_ATTRS=y
772# CONFIG_SCSI_SRP_ATTRS is not set 804# CONFIG_SCSI_SRP_ATTRS is not set
773CONFIG_SCSI_LOWLEVEL=y 805CONFIG_SCSI_LOWLEVEL=y
774# CONFIG_ISCSI_TCP is not set 806# CONFIG_ISCSI_TCP is not set
807# CONFIG_SCSI_CXGB3_ISCSI is not set
775# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 808# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
776# CONFIG_SCSI_3W_9XXX is not set 809# CONFIG_SCSI_3W_9XXX is not set
777# CONFIG_SCSI_ACARD is not set 810# CONFIG_SCSI_ACARD is not set
@@ -791,8 +824,12 @@ CONFIG_SCSI_AIC7XXX_OLD=m
791# CONFIG_MEGARAID_NEWGEN is not set 824# CONFIG_MEGARAID_NEWGEN is not set
792# CONFIG_MEGARAID_LEGACY is not set 825# CONFIG_MEGARAID_LEGACY is not set
793# CONFIG_MEGARAID_SAS is not set 826# CONFIG_MEGARAID_SAS is not set
827# CONFIG_SCSI_MPT2SAS is not set
794# CONFIG_SCSI_HPTIOP is not set 828# CONFIG_SCSI_HPTIOP is not set
795# CONFIG_SCSI_BUSLOGIC is not set 829# CONFIG_SCSI_BUSLOGIC is not set
830# CONFIG_LIBFC is not set
831# CONFIG_LIBFCOE is not set
832# CONFIG_FCOE is not set
796# CONFIG_SCSI_DMX3191D is not set 833# CONFIG_SCSI_DMX3191D is not set
797# CONFIG_SCSI_EATA is not set 834# CONFIG_SCSI_EATA is not set
798# CONFIG_SCSI_FUTURE_DOMAIN is not set 835# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -822,6 +859,7 @@ CONFIG_SCSI_MAC53C94=y
822# CONFIG_SCSI_SRP is not set 859# CONFIG_SCSI_SRP is not set
823# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 860# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
824# CONFIG_SCSI_DH is not set 861# CONFIG_SCSI_DH is not set
862# CONFIG_SCSI_OSD_INITIATOR is not set
825# CONFIG_ATA is not set 863# CONFIG_ATA is not set
826CONFIG_MD=y 864CONFIG_MD=y
827CONFIG_BLK_DEV_MD=m 865CONFIG_BLK_DEV_MD=m
@@ -881,6 +919,7 @@ CONFIG_THERM_ADT746X=m
881# CONFIG_ANSLCD is not set 919# CONFIG_ANSLCD is not set
882CONFIG_PMAC_RACKMETER=m 920CONFIG_PMAC_RACKMETER=m
883CONFIG_NETDEVICES=y 921CONFIG_NETDEVICES=y
922CONFIG_COMPAT_NET_DEV_OPS=y
884CONFIG_DUMMY=m 923CONFIG_DUMMY=m
885# CONFIG_BONDING is not set 924# CONFIG_BONDING is not set
886# CONFIG_MACVLAN is not set 925# CONFIG_MACVLAN is not set
@@ -898,6 +937,8 @@ CONFIG_BMAC=y
898CONFIG_SUNGEM=y 937CONFIG_SUNGEM=y
899# CONFIG_CASSINI is not set 938# CONFIG_CASSINI is not set
900# CONFIG_NET_VENDOR_3COM is not set 939# CONFIG_NET_VENDOR_3COM is not set
940# CONFIG_ETHOC is not set
941# CONFIG_DNET is not set
901# CONFIG_NET_TULIP is not set 942# CONFIG_NET_TULIP is not set
902# CONFIG_HP100 is not set 943# CONFIG_HP100 is not set
903# CONFIG_IBM_NEW_EMAC_ZMII is not set 944# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -913,7 +954,6 @@ CONFIG_PCNET32=y
913# CONFIG_ADAPTEC_STARFIRE is not set 954# CONFIG_ADAPTEC_STARFIRE is not set
914# CONFIG_B44 is not set 955# CONFIG_B44 is not set
915# CONFIG_FORCEDETH is not set 956# CONFIG_FORCEDETH is not set
916# CONFIG_EEPRO100 is not set
917# CONFIG_E100 is not set 957# CONFIG_E100 is not set
918# CONFIG_FEALNX is not set 958# CONFIG_FEALNX is not set
919# CONFIG_NATSEMI is not set 959# CONFIG_NATSEMI is not set
@@ -923,6 +963,7 @@ CONFIG_PCNET32=y
923# CONFIG_R6040 is not set 963# CONFIG_R6040 is not set
924# CONFIG_SIS900 is not set 964# CONFIG_SIS900 is not set
925# CONFIG_EPIC100 is not set 965# CONFIG_EPIC100 is not set
966# CONFIG_SMSC9420 is not set
926# CONFIG_SUNDANCE is not set 967# CONFIG_SUNDANCE is not set
927# CONFIG_TLAN is not set 968# CONFIG_TLAN is not set
928# CONFIG_VIA_RHINE is not set 969# CONFIG_VIA_RHINE is not set
@@ -935,6 +976,7 @@ CONFIG_NETDEV_1000=y
935# CONFIG_E1000E is not set 976# CONFIG_E1000E is not set
936# CONFIG_IP1000 is not set 977# CONFIG_IP1000 is not set
937# CONFIG_IGB is not set 978# CONFIG_IGB is not set
979# CONFIG_IGBVF is not set
938# CONFIG_NS83820 is not set 980# CONFIG_NS83820 is not set
939# CONFIG_HAMACHI is not set 981# CONFIG_HAMACHI is not set
940# CONFIG_YELLOWFIN is not set 982# CONFIG_YELLOWFIN is not set
@@ -945,18 +987,20 @@ CONFIG_NETDEV_1000=y
945# CONFIG_VIA_VELOCITY is not set 987# CONFIG_VIA_VELOCITY is not set
946# CONFIG_TIGON3 is not set 988# CONFIG_TIGON3 is not set
947# CONFIG_BNX2 is not set 989# CONFIG_BNX2 is not set
948# CONFIG_MV643XX_ETH is not set
949# CONFIG_QLA3XXX is not set 990# CONFIG_QLA3XXX is not set
950# CONFIG_ATL1 is not set 991# CONFIG_ATL1 is not set
951# CONFIG_ATL1E is not set 992# CONFIG_ATL1E is not set
993# CONFIG_ATL1C is not set
952# CONFIG_JME is not set 994# CONFIG_JME is not set
953CONFIG_NETDEV_10000=y 995CONFIG_NETDEV_10000=y
954# CONFIG_CHELSIO_T1 is not set 996# CONFIG_CHELSIO_T1 is not set
997CONFIG_CHELSIO_T3_DEPENDS=y
955# CONFIG_CHELSIO_T3 is not set 998# CONFIG_CHELSIO_T3 is not set
956# CONFIG_ENIC is not set 999# CONFIG_ENIC is not set
957# CONFIG_IXGBE is not set 1000# CONFIG_IXGBE is not set
958# CONFIG_IXGB is not set 1001# CONFIG_IXGB is not set
959# CONFIG_S2IO is not set 1002# CONFIG_S2IO is not set
1003# CONFIG_VXGE is not set
960# CONFIG_MYRI10GE is not set 1004# CONFIG_MYRI10GE is not set
961# CONFIG_NETXEN_NIC is not set 1005# CONFIG_NETXEN_NIC is not set
962# CONFIG_NIU is not set 1006# CONFIG_NIU is not set
@@ -966,6 +1010,7 @@ CONFIG_NETDEV_10000=y
966# CONFIG_BNX2X is not set 1010# CONFIG_BNX2X is not set
967# CONFIG_QLGE is not set 1011# CONFIG_QLGE is not set
968# CONFIG_SFC is not set 1012# CONFIG_SFC is not set
1013# CONFIG_BE2NET is not set
969# CONFIG_TR is not set 1014# CONFIG_TR is not set
970 1015
971# 1016#
@@ -974,20 +1019,11 @@ CONFIG_NETDEV_10000=y
974# CONFIG_WLAN_PRE80211 is not set 1019# CONFIG_WLAN_PRE80211 is not set
975CONFIG_WLAN_80211=y 1020CONFIG_WLAN_80211=y
976# CONFIG_PCMCIA_RAYCS is not set 1021# CONFIG_PCMCIA_RAYCS is not set
977# CONFIG_IPW2100 is not set
978# CONFIG_IPW2200 is not set
979# CONFIG_LIBERTAS is not set 1022# CONFIG_LIBERTAS is not set
980# CONFIG_LIBERTAS_THINFIRM is not set 1023# CONFIG_LIBERTAS_THINFIRM is not set
981# CONFIG_AIRO is not set 1024# CONFIG_AIRO is not set
982CONFIG_HERMES=m
983CONFIG_APPLE_AIRPORT=m
984# CONFIG_PLX_HERMES is not set
985# CONFIG_TMD_HERMES is not set
986# CONFIG_NORTEL_HERMES is not set
987CONFIG_PCI_HERMES=m
988CONFIG_PCMCIA_HERMES=m
989# CONFIG_PCMCIA_SPECTRUM is not set
990# CONFIG_ATMEL is not set 1025# CONFIG_ATMEL is not set
1026# CONFIG_AT76C50X_USB is not set
991# CONFIG_AIRO_CS is not set 1027# CONFIG_AIRO_CS is not set
992# CONFIG_PCMCIA_WL3501 is not set 1028# CONFIG_PCMCIA_WL3501 is not set
993CONFIG_PRISM54=m 1029CONFIG_PRISM54=m
@@ -997,15 +1033,17 @@ CONFIG_PRISM54=m
997# CONFIG_RTL8187 is not set 1033# CONFIG_RTL8187 is not set
998# CONFIG_ADM8211 is not set 1034# CONFIG_ADM8211 is not set
999# CONFIG_MAC80211_HWSIM is not set 1035# CONFIG_MAC80211_HWSIM is not set
1036# CONFIG_MWL8K is not set
1000CONFIG_P54_COMMON=m 1037CONFIG_P54_COMMON=m
1001# CONFIG_P54_USB is not set 1038# CONFIG_P54_USB is not set
1002# CONFIG_P54_PCI is not set 1039# CONFIG_P54_PCI is not set
1040CONFIG_P54_LEDS=y
1003# CONFIG_ATH5K is not set 1041# CONFIG_ATH5K is not set
1004# CONFIG_ATH9K is not set 1042# CONFIG_ATH9K is not set
1005# CONFIG_IWLCORE is not set 1043# CONFIG_AR9170_USB is not set
1006# CONFIG_IWLWIFI_LEDS is not set 1044# CONFIG_IPW2100 is not set
1007# CONFIG_IWLAGN is not set 1045# CONFIG_IPW2200 is not set
1008# CONFIG_IWL3945 is not set 1046# CONFIG_IWLWIFI is not set
1009# CONFIG_HOSTAP is not set 1047# CONFIG_HOSTAP is not set
1010CONFIG_B43=m 1048CONFIG_B43=m
1011CONFIG_B43_PCI_AUTOSELECT=y 1049CONFIG_B43_PCI_AUTOSELECT=y
@@ -1025,6 +1063,19 @@ CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
1025# CONFIG_B43LEGACY_PIO_MODE is not set 1063# CONFIG_B43LEGACY_PIO_MODE is not set
1026# CONFIG_ZD1211RW is not set 1064# CONFIG_ZD1211RW is not set
1027# CONFIG_RT2X00 is not set 1065# CONFIG_RT2X00 is not set
1066CONFIG_HERMES=m
1067CONFIG_HERMES_CACHE_FW_ON_INIT=y
1068CONFIG_APPLE_AIRPORT=m
1069# CONFIG_PLX_HERMES is not set
1070# CONFIG_TMD_HERMES is not set
1071# CONFIG_NORTEL_HERMES is not set
1072CONFIG_PCI_HERMES=m
1073CONFIG_PCMCIA_HERMES=m
1074# CONFIG_PCMCIA_SPECTRUM is not set
1075
1076#
1077# Enable WiMAX (Networking options) to see the WiMAX drivers
1078#
1028 1079
1029# 1080#
1030# USB Network Adapters 1081# USB Network Adapters
@@ -1036,6 +1087,7 @@ CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
1036CONFIG_USB_USBNET=m 1087CONFIG_USB_USBNET=m
1037CONFIG_USB_NET_AX8817X=m 1088CONFIG_USB_NET_AX8817X=m
1038CONFIG_USB_NET_CDCETHER=m 1089CONFIG_USB_NET_CDCETHER=m
1090# CONFIG_USB_NET_CDC_EEM is not set
1039# CONFIG_USB_NET_DM9601 is not set 1091# CONFIG_USB_NET_DM9601 is not set
1040# CONFIG_USB_NET_SMSC95XX is not set 1092# CONFIG_USB_NET_SMSC95XX is not set
1041# CONFIG_USB_NET_GL620A is not set 1093# CONFIG_USB_NET_GL620A is not set
@@ -1099,7 +1151,7 @@ CONFIG_INPUT_KEYBOARD=y
1099CONFIG_INPUT_MOUSE=y 1151CONFIG_INPUT_MOUSE=y
1100# CONFIG_MOUSE_PS2 is not set 1152# CONFIG_MOUSE_PS2 is not set
1101# CONFIG_MOUSE_SERIAL is not set 1153# CONFIG_MOUSE_SERIAL is not set
1102# CONFIG_MOUSE_APPLETOUCH is not set 1154CONFIG_MOUSE_APPLETOUCH=y
1103# CONFIG_MOUSE_BCM5974 is not set 1155# CONFIG_MOUSE_BCM5974 is not set
1104# CONFIG_MOUSE_VSXXXAA is not set 1156# CONFIG_MOUSE_VSXXXAA is not set
1105# CONFIG_INPUT_JOYSTICK is not set 1157# CONFIG_INPUT_JOYSTICK is not set
@@ -1150,10 +1202,13 @@ CONFIG_SERIAL_PMACZILOG_TTYS=y
1150# CONFIG_SERIAL_JSM is not set 1202# CONFIG_SERIAL_JSM is not set
1151# CONFIG_SERIAL_OF_PLATFORM is not set 1203# CONFIG_SERIAL_OF_PLATFORM is not set
1152CONFIG_UNIX98_PTYS=y 1204CONFIG_UNIX98_PTYS=y
1205# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1153CONFIG_LEGACY_PTYS=y 1206CONFIG_LEGACY_PTYS=y
1154CONFIG_LEGACY_PTY_COUNT=256 1207CONFIG_LEGACY_PTY_COUNT=256
1208# CONFIG_HVC_UDBG is not set
1155# CONFIG_IPMI_HANDLER is not set 1209# CONFIG_IPMI_HANDLER is not set
1156CONFIG_HW_RANDOM=m 1210CONFIG_HW_RANDOM=m
1211# CONFIG_HW_RANDOM_TIMERIOMEM is not set
1157CONFIG_NVRAM=y 1212CONFIG_NVRAM=y
1158CONFIG_GEN_RTC=y 1213CONFIG_GEN_RTC=y
1159# CONFIG_GEN_RTC_X is not set 1214# CONFIG_GEN_RTC_X is not set
@@ -1232,12 +1287,9 @@ CONFIG_I2C_POWERMAC=y
1232# Miscellaneous I2C Chip support 1287# Miscellaneous I2C Chip support
1233# 1288#
1234# CONFIG_DS1682 is not set 1289# CONFIG_DS1682 is not set
1235# CONFIG_EEPROM_AT24 is not set
1236# CONFIG_EEPROM_LEGACY is not set
1237# CONFIG_SENSORS_PCF8574 is not set 1290# CONFIG_SENSORS_PCF8574 is not set
1238# CONFIG_PCF8575 is not set 1291# CONFIG_PCF8575 is not set
1239# CONFIG_SENSORS_PCA9539 is not set 1292# CONFIG_SENSORS_PCA9539 is not set
1240# CONFIG_SENSORS_PCF8591 is not set
1241# CONFIG_SENSORS_MAX6875 is not set 1293# CONFIG_SENSORS_MAX6875 is not set
1242# CONFIG_SENSORS_TSL2550 is not set 1294# CONFIG_SENSORS_TSL2550 is not set
1243# CONFIG_I2C_DEBUG_CORE is not set 1295# CONFIG_I2C_DEBUG_CORE is not set
@@ -1259,11 +1311,11 @@ CONFIG_BATTERY_PMU=y
1259# CONFIG_THERMAL is not set 1311# CONFIG_THERMAL is not set
1260# CONFIG_THERMAL_HWMON is not set 1312# CONFIG_THERMAL_HWMON is not set
1261# CONFIG_WATCHDOG is not set 1313# CONFIG_WATCHDOG is not set
1314CONFIG_SSB_POSSIBLE=y
1262 1315
1263# 1316#
1264# Sonics Silicon Backplane 1317# Sonics Silicon Backplane
1265# 1318#
1266CONFIG_SSB_POSSIBLE=y
1267CONFIG_SSB=m 1319CONFIG_SSB=m
1268CONFIG_SSB_SPROM=y 1320CONFIG_SSB_SPROM=y
1269CONFIG_SSB_PCIHOST_POSSIBLE=y 1321CONFIG_SSB_PCIHOST_POSSIBLE=y
@@ -1281,18 +1333,13 @@ CONFIG_SSB_DRIVER_PCICORE=y
1281# CONFIG_MFD_CORE is not set 1333# CONFIG_MFD_CORE is not set
1282# CONFIG_MFD_SM501 is not set 1334# CONFIG_MFD_SM501 is not set
1283# CONFIG_HTC_PASIC3 is not set 1335# CONFIG_HTC_PASIC3 is not set
1336# CONFIG_TWL4030_CORE is not set
1284# CONFIG_MFD_TMIO is not set 1337# CONFIG_MFD_TMIO is not set
1285# CONFIG_PMIC_DA903X is not set 1338# CONFIG_PMIC_DA903X is not set
1286# CONFIG_MFD_WM8400 is not set 1339# CONFIG_MFD_WM8400 is not set
1287# CONFIG_MFD_WM8350_I2C is not set 1340# CONFIG_MFD_WM8350_I2C is not set
1288 1341# CONFIG_MFD_PCF50633 is not set
1289#
1290# Voltage and Current regulators
1291#
1292# CONFIG_REGULATOR is not set 1342# 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
1296 1343
1297# 1344#
1298# Multimedia devices 1345# Multimedia devices
@@ -1390,6 +1437,7 @@ CONFIG_FB_ATY_BACKLIGHT=y
1390# CONFIG_FB_KYRO is not set 1437# CONFIG_FB_KYRO is not set
1391CONFIG_FB_3DFX=y 1438CONFIG_FB_3DFX=y
1392# CONFIG_FB_3DFX_ACCEL is not set 1439# CONFIG_FB_3DFX_ACCEL is not set
1440CONFIG_FB_3DFX_I2C=y
1393# CONFIG_FB_VOODOO1 is not set 1441# CONFIG_FB_VOODOO1 is not set
1394# CONFIG_FB_VT8623 is not set 1442# CONFIG_FB_VT8623 is not set
1395# CONFIG_FB_TRIDENT is not set 1443# CONFIG_FB_TRIDENT is not set
@@ -1399,12 +1447,14 @@ CONFIG_FB_3DFX=y
1399# CONFIG_FB_IBM_GXT4500 is not set 1447# CONFIG_FB_IBM_GXT4500 is not set
1400# CONFIG_FB_VIRTUAL is not set 1448# CONFIG_FB_VIRTUAL is not set
1401# CONFIG_FB_METRONOME is not set 1449# CONFIG_FB_METRONOME is not set
1450# CONFIG_FB_MB862XX is not set
1451# CONFIG_FB_BROADSHEET is not set
1402CONFIG_BACKLIGHT_LCD_SUPPORT=y 1452CONFIG_BACKLIGHT_LCD_SUPPORT=y
1403CONFIG_LCD_CLASS_DEVICE=m 1453CONFIG_LCD_CLASS_DEVICE=m
1404# CONFIG_LCD_ILI9320 is not set 1454# CONFIG_LCD_ILI9320 is not set
1405# CONFIG_LCD_PLATFORM is not set 1455# CONFIG_LCD_PLATFORM is not set
1406CONFIG_BACKLIGHT_CLASS_DEVICE=y 1456CONFIG_BACKLIGHT_CLASS_DEVICE=y
1407# CONFIG_BACKLIGHT_CORGI is not set 1457CONFIG_BACKLIGHT_GENERIC=y
1408 1458
1409# 1459#
1410# Display device support 1460# Display device support
@@ -1444,11 +1494,13 @@ CONFIG_SND_MIXER_OSS=m
1444CONFIG_SND_PCM_OSS=m 1494CONFIG_SND_PCM_OSS=m
1445CONFIG_SND_PCM_OSS_PLUGINS=y 1495CONFIG_SND_PCM_OSS_PLUGINS=y
1446CONFIG_SND_SEQUENCER_OSS=y 1496CONFIG_SND_SEQUENCER_OSS=y
1497# CONFIG_SND_HRTIMER is not set
1447# CONFIG_SND_DYNAMIC_MINORS is not set 1498# CONFIG_SND_DYNAMIC_MINORS is not set
1448CONFIG_SND_SUPPORT_OLD_API=y 1499CONFIG_SND_SUPPORT_OLD_API=y
1449CONFIG_SND_VERBOSE_PROCFS=y 1500CONFIG_SND_VERBOSE_PROCFS=y
1450# CONFIG_SND_VERBOSE_PRINTK is not set 1501# CONFIG_SND_VERBOSE_PRINTK is not set
1451# CONFIG_SND_DEBUG is not set 1502# CONFIG_SND_DEBUG is not set
1503CONFIG_SND_VMASTER=y
1452CONFIG_SND_DRIVERS=y 1504CONFIG_SND_DRIVERS=y
1453CONFIG_SND_DUMMY=m 1505CONFIG_SND_DUMMY=m
1454# CONFIG_SND_VIRMIDI is not set 1506# CONFIG_SND_VIRMIDI is not set
@@ -1486,6 +1538,8 @@ CONFIG_SND_PCI=y
1486# CONFIG_SND_INDIGO is not set 1538# CONFIG_SND_INDIGO is not set
1487# CONFIG_SND_INDIGOIO is not set 1539# CONFIG_SND_INDIGOIO is not set
1488# CONFIG_SND_INDIGODJ is not set 1540# CONFIG_SND_INDIGODJ is not set
1541# CONFIG_SND_INDIGOIOX is not set
1542# CONFIG_SND_INDIGODJX is not set
1489# CONFIG_SND_EMU10K1 is not set 1543# CONFIG_SND_EMU10K1 is not set
1490# CONFIG_SND_EMU10K1X is not set 1544# CONFIG_SND_EMU10K1X is not set
1491# CONFIG_SND_ENS1370 is not set 1545# CONFIG_SND_ENS1370 is not set
@@ -1551,28 +1605,31 @@ CONFIG_USB_HID=y
1551# 1605#
1552# Special HID drivers 1606# Special HID drivers
1553# 1607#
1554CONFIG_HID_COMPAT=y
1555CONFIG_HID_A4TECH=y 1608CONFIG_HID_A4TECH=y
1556CONFIG_HID_APPLE=y 1609CONFIG_HID_APPLE=y
1557CONFIG_HID_BELKIN=y 1610CONFIG_HID_BELKIN=y
1558CONFIG_HID_BRIGHT=y
1559CONFIG_HID_CHERRY=y 1611CONFIG_HID_CHERRY=y
1560CONFIG_HID_CHICONY=y 1612CONFIG_HID_CHICONY=y
1561CONFIG_HID_CYPRESS=y 1613CONFIG_HID_CYPRESS=y
1562CONFIG_HID_DELL=y 1614# CONFIG_DRAGONRISE_FF is not set
1563CONFIG_HID_EZKEY=y 1615CONFIG_HID_EZKEY=y
1616CONFIG_HID_KYE=y
1564CONFIG_HID_GYRATION=y 1617CONFIG_HID_GYRATION=y
1618CONFIG_HID_KENSINGTON=y
1565CONFIG_HID_LOGITECH=y 1619CONFIG_HID_LOGITECH=y
1566# CONFIG_LOGITECH_FF is not set 1620# CONFIG_LOGITECH_FF is not set
1567# CONFIG_LOGIRUMBLEPAD2_FF is not set 1621# CONFIG_LOGIRUMBLEPAD2_FF is not set
1568CONFIG_HID_MICROSOFT=y 1622CONFIG_HID_MICROSOFT=y
1569CONFIG_HID_MONTEREY=y 1623CONFIG_HID_MONTEREY=y
1624CONFIG_HID_NTRIG=y
1570CONFIG_HID_PANTHERLORD=y 1625CONFIG_HID_PANTHERLORD=y
1571# CONFIG_PANTHERLORD_FF is not set 1626# CONFIG_PANTHERLORD_FF is not set
1572CONFIG_HID_PETALYNX=y 1627CONFIG_HID_PETALYNX=y
1573CONFIG_HID_SAMSUNG=y 1628CONFIG_HID_SAMSUNG=y
1574CONFIG_HID_SONY=y 1629CONFIG_HID_SONY=y
1575CONFIG_HID_SUNPLUS=y 1630CONFIG_HID_SUNPLUS=y
1631# CONFIG_GREENASIA_FF is not set
1632CONFIG_HID_TOPSEED=y
1576# CONFIG_THRUSTMASTER_FF is not set 1633# CONFIG_THRUSTMASTER_FF is not set
1577# CONFIG_ZEROPLUS_FF is not set 1634# CONFIG_ZEROPLUS_FF is not set
1578CONFIG_USB_SUPPORT=y 1635CONFIG_USB_SUPPORT=y
@@ -1603,6 +1660,7 @@ CONFIG_USB_EHCI_HCD=m
1603CONFIG_USB_EHCI_ROOT_HUB_TT=y 1660CONFIG_USB_EHCI_ROOT_HUB_TT=y
1604# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1661# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1605# CONFIG_USB_EHCI_HCD_PPC_OF is not set 1662# CONFIG_USB_EHCI_HCD_PPC_OF is not set
1663# CONFIG_USB_OXU210HP_HCD is not set
1606# CONFIG_USB_ISP116X_HCD is not set 1664# CONFIG_USB_ISP116X_HCD is not set
1607# CONFIG_USB_ISP1760_HCD is not set 1665# CONFIG_USB_ISP1760_HCD is not set
1608CONFIG_USB_OHCI_HCD=y 1666CONFIG_USB_OHCI_HCD=y
@@ -1625,24 +1683,23 @@ CONFIG_USB_PRINTER=m
1625# CONFIG_USB_TMC is not set 1683# CONFIG_USB_TMC is not set
1626 1684
1627# 1685#
1628# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1686# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1629# 1687#
1630 1688
1631# 1689#
1632# may also be needed; see USB_STORAGE Help for more information 1690# also be needed; see USB_STORAGE Help for more info
1633# 1691#
1634CONFIG_USB_STORAGE=m 1692CONFIG_USB_STORAGE=m
1635# CONFIG_USB_STORAGE_DEBUG is not set 1693# CONFIG_USB_STORAGE_DEBUG is not set
1636# CONFIG_USB_STORAGE_DATAFAB is not set 1694# CONFIG_USB_STORAGE_DATAFAB is not set
1637# CONFIG_USB_STORAGE_FREECOM is not set 1695# CONFIG_USB_STORAGE_FREECOM is not set
1638# CONFIG_USB_STORAGE_ISD200 is not set 1696# CONFIG_USB_STORAGE_ISD200 is not set
1639# CONFIG_USB_STORAGE_DPCM is not set
1640# CONFIG_USB_STORAGE_USBAT is not set 1697# CONFIG_USB_STORAGE_USBAT is not set
1641# CONFIG_USB_STORAGE_SDDR09 is not set 1698# CONFIG_USB_STORAGE_SDDR09 is not set
1642# CONFIG_USB_STORAGE_SDDR55 is not set 1699# CONFIG_USB_STORAGE_SDDR55 is not set
1643# CONFIG_USB_STORAGE_JUMPSHOT is not set 1700# CONFIG_USB_STORAGE_JUMPSHOT is not set
1644# CONFIG_USB_STORAGE_ALAUDA is not set 1701# CONFIG_USB_STORAGE_ALAUDA is not set
1645CONFIG_USB_STORAGE_ONETOUCH=y 1702CONFIG_USB_STORAGE_ONETOUCH=m
1646# CONFIG_USB_STORAGE_KARMA is not set 1703# CONFIG_USB_STORAGE_KARMA is not set
1647# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1704# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1648# CONFIG_USB_LIBUSUAL is not set 1705# CONFIG_USB_LIBUSUAL is not set
@@ -1665,7 +1722,7 @@ CONFIG_USB_EZUSB=y
1665# CONFIG_USB_SERIAL_CH341 is not set 1722# CONFIG_USB_SERIAL_CH341 is not set
1666# CONFIG_USB_SERIAL_WHITEHEAT is not set 1723# CONFIG_USB_SERIAL_WHITEHEAT is not set
1667# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set 1724# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1668# CONFIG_USB_SERIAL_CP2101 is not set 1725# CONFIG_USB_SERIAL_CP210X is not set
1669# CONFIG_USB_SERIAL_CYPRESS_M8 is not set 1726# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1670# CONFIG_USB_SERIAL_EMPEG is not set 1727# CONFIG_USB_SERIAL_EMPEG is not set
1671# CONFIG_USB_SERIAL_FTDI_SIO is not set 1728# CONFIG_USB_SERIAL_FTDI_SIO is not set
@@ -1701,15 +1758,19 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
1701# CONFIG_USB_SERIAL_NAVMAN is not set 1758# CONFIG_USB_SERIAL_NAVMAN is not set
1702# CONFIG_USB_SERIAL_PL2303 is not set 1759# CONFIG_USB_SERIAL_PL2303 is not set
1703# CONFIG_USB_SERIAL_OTI6858 is not set 1760# CONFIG_USB_SERIAL_OTI6858 is not set
1761# CONFIG_USB_SERIAL_QUALCOMM is not set
1704# CONFIG_USB_SERIAL_SPCP8X5 is not set 1762# CONFIG_USB_SERIAL_SPCP8X5 is not set
1705# CONFIG_USB_SERIAL_HP4X is not set 1763# CONFIG_USB_SERIAL_HP4X is not set
1706# CONFIG_USB_SERIAL_SAFE is not set 1764# CONFIG_USB_SERIAL_SAFE is not set
1765# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1707# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1766# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1767# CONFIG_USB_SERIAL_SYMBOL is not set
1708# CONFIG_USB_SERIAL_TI is not set 1768# CONFIG_USB_SERIAL_TI is not set
1709# CONFIG_USB_SERIAL_CYBERJACK is not set 1769# CONFIG_USB_SERIAL_CYBERJACK is not set
1710# CONFIG_USB_SERIAL_XIRCOM is not set 1770# CONFIG_USB_SERIAL_XIRCOM is not set
1711# CONFIG_USB_SERIAL_OPTION is not set 1771# CONFIG_USB_SERIAL_OPTION is not set
1712# CONFIG_USB_SERIAL_OMNINET is not set 1772# CONFIG_USB_SERIAL_OMNINET is not set
1773# CONFIG_USB_SERIAL_OPTICON is not set
1713# CONFIG_USB_SERIAL_DEBUG is not set 1774# CONFIG_USB_SERIAL_DEBUG is not set
1714 1775
1715# 1776#
@@ -1726,7 +1787,6 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
1726# CONFIG_USB_LED is not set 1787# CONFIG_USB_LED is not set
1727# CONFIG_USB_CYPRESS_CY7C63 is not set 1788# CONFIG_USB_CYPRESS_CY7C63 is not set
1728# CONFIG_USB_CYTHERM is not set 1789# CONFIG_USB_CYTHERM is not set
1729# CONFIG_USB_PHIDGET is not set
1730# CONFIG_USB_IDMOUSE is not set 1790# CONFIG_USB_IDMOUSE is not set
1731# CONFIG_USB_FTDI_ELAN is not set 1791# CONFIG_USB_FTDI_ELAN is not set
1732CONFIG_USB_APPLEDISPLAY=m 1792CONFIG_USB_APPLEDISPLAY=m
@@ -1738,6 +1798,11 @@ CONFIG_USB_APPLEDISPLAY=m
1738# CONFIG_USB_ISIGHTFW is not set 1798# CONFIG_USB_ISIGHTFW is not set
1739# CONFIG_USB_VST is not set 1799# CONFIG_USB_VST is not set
1740# CONFIG_USB_GADGET is not set 1800# CONFIG_USB_GADGET is not set
1801
1802#
1803# OTG and related infrastructure
1804#
1805# CONFIG_NOP_USB_XCEIV is not set
1741# CONFIG_UWB is not set 1806# CONFIG_UWB is not set
1742# CONFIG_MMC is not set 1807# CONFIG_MMC is not set
1743# CONFIG_MEMSTICK is not set 1808# CONFIG_MEMSTICK is not set
@@ -1748,7 +1813,9 @@ CONFIG_LEDS_CLASS=y
1748# LED drivers 1813# LED drivers
1749# 1814#
1750# CONFIG_LEDS_PCA9532 is not set 1815# CONFIG_LEDS_PCA9532 is not set
1816# CONFIG_LEDS_LP5521 is not set
1751# CONFIG_LEDS_PCA955X is not set 1817# CONFIG_LEDS_PCA955X is not set
1818# CONFIG_LEDS_BD2802 is not set
1752 1819
1753# 1820#
1754# LED Triggers 1821# LED Triggers
@@ -1759,11 +1826,16 @@ CONFIG_LEDS_TRIGGER_IDE_DISK=y
1759# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 1826# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1760# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set 1827# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1761CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 1828CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
1829
1830#
1831# iptables trigger is under Netfilter config (LED target)
1832#
1762# CONFIG_ACCESSIBILITY is not set 1833# CONFIG_ACCESSIBILITY is not set
1763# CONFIG_INFINIBAND is not set 1834# CONFIG_INFINIBAND is not set
1764# CONFIG_EDAC is not set 1835# CONFIG_EDAC is not set
1765# CONFIG_RTC_CLASS is not set 1836# CONFIG_RTC_CLASS is not set
1766# CONFIG_DMADEVICES is not set 1837# CONFIG_DMADEVICES is not set
1838# CONFIG_AUXDISPLAY is not set
1767# CONFIG_UIO is not set 1839# CONFIG_UIO is not set
1768# CONFIG_STAGING is not set 1840# CONFIG_STAGING is not set
1769 1841
@@ -1774,6 +1846,7 @@ CONFIG_EXT2_FS=y
1774# CONFIG_EXT2_FS_XATTR is not set 1846# CONFIG_EXT2_FS_XATTR is not set
1775# CONFIG_EXT2_FS_XIP is not set 1847# CONFIG_EXT2_FS_XIP is not set
1776CONFIG_EXT3_FS=y 1848CONFIG_EXT3_FS=y
1849# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1777CONFIG_EXT3_FS_XATTR=y 1850CONFIG_EXT3_FS_XATTR=y
1778CONFIG_EXT3_FS_POSIX_ACL=y 1851CONFIG_EXT3_FS_POSIX_ACL=y
1779# CONFIG_EXT3_FS_SECURITY is not set 1852# CONFIG_EXT3_FS_SECURITY is not set
@@ -1783,7 +1856,9 @@ CONFIG_EXT4_FS_XATTR=y
1783# CONFIG_EXT4_FS_POSIX_ACL is not set 1856# CONFIG_EXT4_FS_POSIX_ACL is not set
1784# CONFIG_EXT4_FS_SECURITY is not set 1857# CONFIG_EXT4_FS_SECURITY is not set
1785CONFIG_JBD=y 1858CONFIG_JBD=y
1859# CONFIG_JBD_DEBUG is not set
1786CONFIG_JBD2=y 1860CONFIG_JBD2=y
1861# CONFIG_JBD2_DEBUG is not set
1787CONFIG_FS_MBCACHE=y 1862CONFIG_FS_MBCACHE=y
1788# CONFIG_REISERFS_FS is not set 1863# CONFIG_REISERFS_FS is not set
1789# CONFIG_JFS_FS is not set 1864# CONFIG_JFS_FS is not set
@@ -1792,6 +1867,7 @@ CONFIG_FILE_LOCKING=y
1792# CONFIG_XFS_FS is not set 1867# CONFIG_XFS_FS is not set
1793# CONFIG_GFS2_FS is not set 1868# CONFIG_GFS2_FS is not set
1794# CONFIG_OCFS2_FS is not set 1869# CONFIG_OCFS2_FS is not set
1870# CONFIG_BTRFS_FS is not set
1795CONFIG_DNOTIFY=y 1871CONFIG_DNOTIFY=y
1796CONFIG_INOTIFY=y 1872CONFIG_INOTIFY=y
1797CONFIG_INOTIFY_USER=y 1873CONFIG_INOTIFY_USER=y
@@ -1801,6 +1877,11 @@ CONFIG_AUTOFS4_FS=m
1801CONFIG_FUSE_FS=m 1877CONFIG_FUSE_FS=m
1802 1878
1803# 1879#
1880# Caches
1881#
1882# CONFIG_FSCACHE is not set
1883
1884#
1804# CD-ROM/DVD Filesystems 1885# CD-ROM/DVD Filesystems
1805# 1886#
1806CONFIG_ISO9660_FS=y 1887CONFIG_ISO9660_FS=y
@@ -1831,10 +1912,7 @@ CONFIG_TMPFS=y
1831# CONFIG_TMPFS_POSIX_ACL is not set 1912# CONFIG_TMPFS_POSIX_ACL is not set
1832# CONFIG_HUGETLB_PAGE is not set 1913# CONFIG_HUGETLB_PAGE is not set
1833# CONFIG_CONFIGFS_FS is not set 1914# CONFIG_CONFIGFS_FS is not set
1834 1915CONFIG_MISC_FILESYSTEMS=y
1835#
1836# Miscellaneous filesystems
1837#
1838# CONFIG_ADFS_FS is not set 1916# CONFIG_ADFS_FS is not set
1839# CONFIG_AFFS_FS is not set 1917# CONFIG_AFFS_FS is not set
1840CONFIG_HFS_FS=m 1918CONFIG_HFS_FS=m
@@ -1843,6 +1921,7 @@ CONFIG_HFSPLUS_FS=m
1843# CONFIG_BFS_FS is not set 1921# CONFIG_BFS_FS is not set
1844# CONFIG_EFS_FS is not set 1922# CONFIG_EFS_FS is not set
1845# CONFIG_CRAMFS is not set 1923# CONFIG_CRAMFS is not set
1924# CONFIG_SQUASHFS is not set
1846# CONFIG_VXFS_FS is not set 1925# CONFIG_VXFS_FS is not set
1847# CONFIG_MINIX_FS is not set 1926# CONFIG_MINIX_FS is not set
1848# CONFIG_OMFS_FS is not set 1927# CONFIG_OMFS_FS is not set
@@ -1851,6 +1930,7 @@ CONFIG_HFSPLUS_FS=m
1851# CONFIG_ROMFS_FS is not set 1930# CONFIG_ROMFS_FS is not set
1852# CONFIG_SYSV_FS is not set 1931# CONFIG_SYSV_FS is not set
1853# CONFIG_UFS_FS is not set 1932# CONFIG_UFS_FS is not set
1933# CONFIG_NILFS2_FS is not set
1854CONFIG_NETWORK_FILESYSTEMS=y 1934CONFIG_NETWORK_FILESYSTEMS=y
1855CONFIG_NFS_FS=y 1935CONFIG_NFS_FS=y
1856CONFIG_NFS_V3=y 1936CONFIG_NFS_V3=y
@@ -1868,7 +1948,6 @@ CONFIG_NFS_ACL_SUPPORT=y
1868CONFIG_NFS_COMMON=y 1948CONFIG_NFS_COMMON=y
1869CONFIG_SUNRPC=y 1949CONFIG_SUNRPC=y
1870CONFIG_SUNRPC_GSS=y 1950CONFIG_SUNRPC_GSS=y
1871# CONFIG_SUNRPC_REGISTER_V4 is not set
1872CONFIG_RPCSEC_GSS_KRB5=y 1951CONFIG_RPCSEC_GSS_KRB5=y
1873# CONFIG_RPCSEC_GSS_SPKM3 is not set 1952# CONFIG_RPCSEC_GSS_SPKM3 is not set
1874CONFIG_SMB_FS=m 1953CONFIG_SMB_FS=m
@@ -1940,11 +2019,13 @@ CONFIG_NLS_ISO8859_1=m
1940# CONFIG_NLS_KOI8_U is not set 2019# CONFIG_NLS_KOI8_U is not set
1941CONFIG_NLS_UTF8=m 2020CONFIG_NLS_UTF8=m
1942# CONFIG_DLM is not set 2021# CONFIG_DLM is not set
2022CONFIG_BINARY_PRINTF=y
1943 2023
1944# 2024#
1945# Library routines 2025# Library routines
1946# 2026#
1947CONFIG_BITREVERSE=y 2027CONFIG_BITREVERSE=y
2028CONFIG_GENERIC_FIND_LAST_BIT=y
1948CONFIG_CRC_CCITT=y 2029CONFIG_CRC_CCITT=y
1949CONFIG_CRC16=y 2030CONFIG_CRC16=y
1950CONFIG_CRC_T10DIF=y 2031CONFIG_CRC_T10DIF=y
@@ -1954,15 +2035,18 @@ CONFIG_CRC32=y
1954CONFIG_LIBCRC32C=m 2035CONFIG_LIBCRC32C=m
1955CONFIG_ZLIB_INFLATE=y 2036CONFIG_ZLIB_INFLATE=y
1956CONFIG_ZLIB_DEFLATE=y 2037CONFIG_ZLIB_DEFLATE=y
2038CONFIG_DECOMPRESS_GZIP=y
2039CONFIG_DECOMPRESS_BZIP2=y
2040CONFIG_DECOMPRESS_LZMA=y
1957CONFIG_TEXTSEARCH=y 2041CONFIG_TEXTSEARCH=y
1958CONFIG_TEXTSEARCH_KMP=m 2042CONFIG_TEXTSEARCH_KMP=m
1959CONFIG_TEXTSEARCH_BM=m 2043CONFIG_TEXTSEARCH_BM=m
1960CONFIG_TEXTSEARCH_FSM=m 2044CONFIG_TEXTSEARCH_FSM=m
1961CONFIG_PLIST=y
1962CONFIG_HAS_IOMEM=y 2045CONFIG_HAS_IOMEM=y
1963CONFIG_HAS_IOPORT=y 2046CONFIG_HAS_IOPORT=y
1964CONFIG_HAS_DMA=y 2047CONFIG_HAS_DMA=y
1965CONFIG_HAVE_LMB=y 2048CONFIG_HAVE_LMB=y
2049CONFIG_NLATTR=y
1966 2050
1967# 2051#
1968# Kernel hacking 2052# Kernel hacking
@@ -1973,13 +2057,16 @@ CONFIG_ENABLE_MUST_CHECK=y
1973CONFIG_FRAME_WARN=1024 2057CONFIG_FRAME_WARN=1024
1974CONFIG_MAGIC_SYSRQ=y 2058CONFIG_MAGIC_SYSRQ=y
1975# CONFIG_UNUSED_SYMBOLS is not set 2059# CONFIG_UNUSED_SYMBOLS is not set
1976# CONFIG_DEBUG_FS is not set 2060CONFIG_DEBUG_FS=y
1977# CONFIG_HEADERS_CHECK is not set 2061# CONFIG_HEADERS_CHECK is not set
1978CONFIG_DEBUG_KERNEL=y 2062CONFIG_DEBUG_KERNEL=y
1979# CONFIG_DEBUG_SHIRQ is not set 2063# CONFIG_DEBUG_SHIRQ is not set
1980CONFIG_DETECT_SOFTLOCKUP=y 2064CONFIG_DETECT_SOFTLOCKUP=y
1981# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 2065# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1982CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 2066CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
2067CONFIG_DETECT_HUNG_TASK=y
2068# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
2069CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1983CONFIG_SCHED_DEBUG=y 2070CONFIG_SCHED_DEBUG=y
1984CONFIG_SCHEDSTATS=y 2071CONFIG_SCHEDSTATS=y
1985# CONFIG_TIMER_STATS is not set 2072# CONFIG_TIMER_STATS is not set
@@ -1994,6 +2081,7 @@ CONFIG_SCHEDSTATS=y
1994# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 2081# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1995CONFIG_STACKTRACE=y 2082CONFIG_STACKTRACE=y
1996# CONFIG_DEBUG_KOBJECT is not set 2083# CONFIG_DEBUG_KOBJECT is not set
2084# CONFIG_DEBUG_HIGHMEM is not set
1997CONFIG_DEBUG_BUGVERBOSE=y 2085CONFIG_DEBUG_BUGVERBOSE=y
1998# CONFIG_DEBUG_INFO is not set 2086# CONFIG_DEBUG_INFO is not set
1999# CONFIG_DEBUG_VM is not set 2087# CONFIG_DEBUG_VM is not set
@@ -2001,6 +2089,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
2001CONFIG_DEBUG_MEMORY_INIT=y 2089CONFIG_DEBUG_MEMORY_INIT=y
2002# CONFIG_DEBUG_LIST is not set 2090# CONFIG_DEBUG_LIST is not set
2003# CONFIG_DEBUG_SG is not set 2091# CONFIG_DEBUG_SG is not set
2092# CONFIG_DEBUG_NOTIFIERS is not set
2004# CONFIG_BOOT_PRINTK_DELAY is not set 2093# CONFIG_BOOT_PRINTK_DELAY is not set
2005# CONFIG_RCU_TORTURE_TEST is not set 2094# CONFIG_RCU_TORTURE_TEST is not set
2006# CONFIG_RCU_CPU_STALL_DETECTOR is not set 2095# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -2009,7 +2098,14 @@ CONFIG_DEBUG_MEMORY_INIT=y
2009# CONFIG_FAULT_INJECTION is not set 2098# CONFIG_FAULT_INJECTION is not set
2010CONFIG_LATENCYTOP=y 2099CONFIG_LATENCYTOP=y
2011CONFIG_SYSCTL_SYSCALL_CHECK=y 2100CONFIG_SYSCTL_SYSCALL_CHECK=y
2101CONFIG_NOP_TRACER=y
2012CONFIG_HAVE_FUNCTION_TRACER=y 2102CONFIG_HAVE_FUNCTION_TRACER=y
2103CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
2104CONFIG_HAVE_DYNAMIC_FTRACE=y
2105CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
2106CONFIG_RING_BUFFER=y
2107CONFIG_TRACING=y
2108CONFIG_TRACING_SUPPORT=y
2013 2109
2014# 2110#
2015# Tracers 2111# Tracers
@@ -2017,12 +2113,19 @@ CONFIG_HAVE_FUNCTION_TRACER=y
2017# CONFIG_FUNCTION_TRACER is not set 2113# CONFIG_FUNCTION_TRACER is not set
2018# CONFIG_SCHED_TRACER is not set 2114# CONFIG_SCHED_TRACER is not set
2019# CONFIG_CONTEXT_SWITCH_TRACER is not set 2115# CONFIG_CONTEXT_SWITCH_TRACER is not set
2116# CONFIG_EVENT_TRACER is not set
2020# CONFIG_BOOT_TRACER is not set 2117# CONFIG_BOOT_TRACER is not set
2118# CONFIG_TRACE_BRANCH_PROFILING is not set
2021# CONFIG_STACK_TRACER is not set 2119# CONFIG_STACK_TRACER is not set
2022# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 2120# CONFIG_KMEMTRACE is not set
2121# CONFIG_WORKQUEUE_TRACER is not set
2122# CONFIG_BLK_DEV_IO_TRACE is not set
2123# CONFIG_FTRACE_STARTUP_TEST is not set
2124# CONFIG_DYNAMIC_DEBUG is not set
2023# CONFIG_SAMPLES is not set 2125# CONFIG_SAMPLES is not set
2024CONFIG_HAVE_ARCH_KGDB=y 2126CONFIG_HAVE_ARCH_KGDB=y
2025# CONFIG_KGDB is not set 2127# CONFIG_KGDB is not set
2128CONFIG_PRINT_STACK_DEPTH=64
2026# CONFIG_DEBUG_STACKOVERFLOW is not set 2129# CONFIG_DEBUG_STACKOVERFLOW is not set
2027# CONFIG_DEBUG_STACK_USAGE is not set 2130# CONFIG_DEBUG_STACK_USAGE is not set
2028# CONFIG_CODE_PATCHING_SELFTEST is not set 2131# CONFIG_CODE_PATCHING_SELFTEST is not set
@@ -2033,6 +2136,7 @@ CONFIG_XMON_DEFAULT=y
2033CONFIG_XMON_DISASSEMBLY=y 2136CONFIG_XMON_DISASSEMBLY=y
2034CONFIG_DEBUGGER=y 2137CONFIG_DEBUGGER=y
2035CONFIG_IRQSTACKS=y 2138CONFIG_IRQSTACKS=y
2139# CONFIG_VIRQ_DEBUG is not set
2036# CONFIG_BDI_SWITCH is not set 2140# CONFIG_BDI_SWITCH is not set
2037CONFIG_BOOTX_TEXT=y 2141CONFIG_BOOTX_TEXT=y
2038# CONFIG_PPC_EARLY_DEBUG is not set 2142# CONFIG_PPC_EARLY_DEBUG is not set
@@ -2051,13 +2155,20 @@ CONFIG_CRYPTO=y
2051# 2155#
2052# CONFIG_CRYPTO_FIPS is not set 2156# CONFIG_CRYPTO_FIPS is not set
2053CONFIG_CRYPTO_ALGAPI=y 2157CONFIG_CRYPTO_ALGAPI=y
2158CONFIG_CRYPTO_ALGAPI2=y
2054CONFIG_CRYPTO_AEAD=y 2159CONFIG_CRYPTO_AEAD=y
2160CONFIG_CRYPTO_AEAD2=y
2055CONFIG_CRYPTO_BLKCIPHER=y 2161CONFIG_CRYPTO_BLKCIPHER=y
2162CONFIG_CRYPTO_BLKCIPHER2=y
2056CONFIG_CRYPTO_HASH=y 2163CONFIG_CRYPTO_HASH=y
2057CONFIG_CRYPTO_RNG=y 2164CONFIG_CRYPTO_HASH2=y
2165CONFIG_CRYPTO_RNG2=y
2166CONFIG_CRYPTO_PCOMP=y
2058CONFIG_CRYPTO_MANAGER=y 2167CONFIG_CRYPTO_MANAGER=y
2168CONFIG_CRYPTO_MANAGER2=y
2059# CONFIG_CRYPTO_GF128MUL is not set 2169# CONFIG_CRYPTO_GF128MUL is not set
2060CONFIG_CRYPTO_NULL=m 2170CONFIG_CRYPTO_NULL=m
2171CONFIG_CRYPTO_WORKQUEUE=y
2061# CONFIG_CRYPTO_CRYPTD is not set 2172# CONFIG_CRYPTO_CRYPTD is not set
2062CONFIG_CRYPTO_AUTHENC=y 2173CONFIG_CRYPTO_AUTHENC=y
2063# CONFIG_CRYPTO_TEST is not set 2174# CONFIG_CRYPTO_TEST is not set
@@ -2127,6 +2238,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
2127# Compression 2238# Compression
2128# 2239#
2129CONFIG_CRYPTO_DEFLATE=m 2240CONFIG_CRYPTO_DEFLATE=m
2241# CONFIG_CRYPTO_ZLIB is not set
2130# CONFIG_CRYPTO_LZO is not set 2242# CONFIG_CRYPTO_LZO is not set
2131 2243
2132# 2244#
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index fdded96633a1..129d80860f2a 100644
--- a/arch/powerpc/configs/pq2fads_defconfig
+++ b/arch/powerpc/configs/pq2fads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:42 2009 4# Wed May 13 17:22:02 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -55,6 +56,7 @@ CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59 61
60# 62#
@@ -71,6 +73,15 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 73# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 74# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76
77#
78# RCU Subsystem
79#
80CONFIG_CLASSIC_RCU=y
81# CONFIG_TREE_RCU is not set
82# CONFIG_PREEMPT_RCU is not set
83# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
74CONFIG_IKCONFIG=y 85CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 86CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 87CONFIG_LOG_BUF_SHIFT=14
@@ -81,22 +92,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_NAMESPACES is not set 92# CONFIG_NAMESPACES is not set
82CONFIG_BLK_DEV_INITRD=y 93CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 94CONFIG_INITRAMFS_SOURCE=""
95CONFIG_RD_GZIP=y
96# CONFIG_RD_BZIP2 is not set
97# CONFIG_RD_LZMA is not set
84CONFIG_CC_OPTIMIZE_FOR_SIZE=y 98CONFIG_CC_OPTIMIZE_FOR_SIZE=y
85CONFIG_SYSCTL=y 99CONFIG_SYSCTL=y
100CONFIG_ANON_INODES=y
86CONFIG_EMBEDDED=y 101CONFIG_EMBEDDED=y
87CONFIG_SYSCTL_SYSCALL=y 102CONFIG_SYSCTL_SYSCALL=y
88CONFIG_KALLSYMS=y 103CONFIG_KALLSYMS=y
89CONFIG_KALLSYMS_ALL=y 104CONFIG_KALLSYMS_ALL=y
90CONFIG_KALLSYMS_STRIP_GENERATED=y
91# CONFIG_KALLSYMS_EXTRA_PASS is not set 105# CONFIG_KALLSYMS_EXTRA_PASS is not set
106# CONFIG_STRIP_ASM_SYMS is not set
92CONFIG_HOTPLUG=y 107CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 108CONFIG_PRINTK=y
94CONFIG_BUG=y 109CONFIG_BUG=y
95CONFIG_ELF_CORE=y 110CONFIG_ELF_CORE=y
96CONFIG_COMPAT_BRK=y
97CONFIG_BASE_FULL=y 111CONFIG_BASE_FULL=y
98CONFIG_FUTEX=y 112CONFIG_FUTEX=y
99CONFIG_ANON_INODES=y
100CONFIG_EPOLL=y 113CONFIG_EPOLL=y
101CONFIG_SIGNALFD=y 114CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 115CONFIG_TIMERFD=y
@@ -106,10 +119,12 @@ CONFIG_AIO=y
106CONFIG_VM_EVENT_COUNTERS=y 119CONFIG_VM_EVENT_COUNTERS=y
107CONFIG_PCI_QUIRKS=y 120CONFIG_PCI_QUIRKS=y
108CONFIG_SLUB_DEBUG=y 121CONFIG_SLUB_DEBUG=y
122CONFIG_COMPAT_BRK=y
109# CONFIG_SLAB is not set 123# CONFIG_SLAB is not set
110CONFIG_SLUB=y 124CONFIG_SLUB=y
111# CONFIG_SLOB is not set 125# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 126# CONFIG_PROFILING is not set
127# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 128CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 129CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
115CONFIG_HAVE_IOREMAP_PROT=y 130CONFIG_HAVE_IOREMAP_PROT=y
@@ -117,6 +132,7 @@ CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 132CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y 133CONFIG_HAVE_ARCH_TRACEHOOK=y
119CONFIG_HAVE_CLK=y 134CONFIG_HAVE_CLK=y
135# CONFIG_SLOW_WORK is not set
120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 136# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 137CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 138CONFIG_RT_MUTEXES=y
@@ -124,7 +140,6 @@ CONFIG_BASE_SMALL=0
124# CONFIG_MODULES is not set 140# CONFIG_MODULES is not set
125CONFIG_BLOCK=y 141CONFIG_BLOCK=y
126# CONFIG_LBD is not set 142# CONFIG_LBD is not set
127# CONFIG_BLK_DEV_IO_TRACE is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set 143# CONFIG_BLK_DEV_INTEGRITY is not set
129 144
130# 145#
@@ -139,18 +154,11 @@ CONFIG_DEFAULT_AS=y
139# CONFIG_DEFAULT_CFQ is not set 154# CONFIG_DEFAULT_CFQ is not set
140# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
141CONFIG_DEFAULT_IOSCHED="anticipatory" 156CONFIG_DEFAULT_IOSCHED="anticipatory"
142CONFIG_CLASSIC_RCU=y
143# CONFIG_TREE_RCU is not set
144# CONFIG_PREEMPT_RCU is not set
145# CONFIG_TREE_RCU_TRACE is not set
146# CONFIG_PREEMPT_RCU_TRACE is not set
147# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
148 158
149# 159#
150# Platform support 160# Platform support
151# 161#
152CONFIG_PPC_MULTIPLATFORM=y
153CONFIG_CLASSIC32=y
154# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
155# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
156# CONFIG_MPC5121_GENERIC is not set 164# CONFIG_MPC5121_GENERIC is not set
@@ -169,6 +177,8 @@ CONFIG_PQ2_ADS_PCI_PIC=y
169# CONFIG_PPC_83xx is not set 177# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set 178# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set 179# CONFIG_EMBEDDED6xx is not set
180# CONFIG_AMIGAONE is not set
181CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
172# CONFIG_IPIC is not set 182# CONFIG_IPIC is not set
173# CONFIG_MPIC is not set 183# CONFIG_MPIC is not set
174# CONFIG_MPIC_WEIRD is not set 184# CONFIG_MPIC_WEIRD is not set
@@ -225,9 +235,12 @@ CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_HAVE_MLOCK=y
239CONFIG_HAVE_MLOCKED_PAGE_BIT=y
228CONFIG_PPC_4K_PAGES=y 240CONFIG_PPC_4K_PAGES=y
229# CONFIG_PPC_16K_PAGES is not set 241# CONFIG_PPC_16K_PAGES is not set
230# CONFIG_PPC_64K_PAGES is not set 242# CONFIG_PPC_64K_PAGES is not set
243# CONFIG_PPC_256K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -254,6 +267,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
254# CONFIG_PCI_LEGACY is not set 267# CONFIG_PCI_LEGACY is not set
255# CONFIG_PCI_DEBUG is not set 268# CONFIG_PCI_DEBUG is not set
256# CONFIG_PCI_STUB is not set 269# CONFIG_PCI_STUB is not set
270# CONFIG_PCI_IOV is not set
257# CONFIG_PCCARD is not set 271# CONFIG_PCCARD is not set
258# CONFIG_HOTPLUG_PCI is not set 272# CONFIG_HOTPLUG_PCI is not set
259# CONFIG_HAS_RAPIDIO is not set 273# CONFIG_HAS_RAPIDIO is not set
@@ -276,7 +290,6 @@ CONFIG_NET=y
276# 290#
277# Networking options 291# Networking options
278# 292#
279CONFIG_COMPAT_NET_DEV_OPS=y
280CONFIG_PACKET=y 293CONFIG_PACKET=y
281# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
282CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -357,6 +370,7 @@ CONFIG_NETFILTER_ADVANCED=y
357# CONFIG_LLC2 is not set 370# CONFIG_LLC2 is not set
358# CONFIG_IPX is not set 371# CONFIG_IPX is not set
359# CONFIG_ATALK is not set 372# CONFIG_ATALK is not set
373# CONFIG_PHONET is not set
360# CONFIG_NET_SCHED is not set 374# CONFIG_NET_SCHED is not set
361# CONFIG_DCB is not set 375# CONFIG_DCB is not set
362 376
@@ -368,7 +382,6 @@ CONFIG_NETFILTER_ADVANCED=y
368# CONFIG_CAN is not set 382# CONFIG_CAN is not set
369# CONFIG_IRDA is not set 383# CONFIG_IRDA is not set
370# CONFIG_BT is not set 384# CONFIG_BT is not set
371# CONFIG_PHONET is not set
372CONFIG_WIRELESS=y 385CONFIG_WIRELESS=y
373# CONFIG_CFG80211 is not set 386# CONFIG_CFG80211 is not set
374CONFIG_WIRELESS_OLD_REGULATORY=y 387CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -473,7 +486,6 @@ CONFIG_MTD_PHYSMAP_OF=y
473# LPDDR flash memory drivers 486# LPDDR flash memory drivers
474# 487#
475# CONFIG_MTD_LPDDR is not set 488# CONFIG_MTD_LPDDR is not set
476# CONFIG_MTD_QINFO_PROBE is not set
477 489
478# 490#
479# UBI - Unsorted block images 491# UBI - Unsorted block images
@@ -498,10 +510,14 @@ CONFIG_BLK_DEV_LOOP=y
498# CONFIG_BLK_DEV_HD is not set 510# CONFIG_BLK_DEV_HD is not set
499CONFIG_MISC_DEVICES=y 511CONFIG_MISC_DEVICES=y
500# CONFIG_PHANTOM is not set 512# CONFIG_PHANTOM is not set
501# CONFIG_EEPROM_93CX6 is not set
502# CONFIG_SGI_IOC4 is not set 513# CONFIG_SGI_IOC4 is not set
503# CONFIG_ENCLOSURE_SERVICES is not set 514# CONFIG_ENCLOSURE_SERVICES is not set
504# CONFIG_HP_ILO is not set 515# CONFIG_HP_ILO is not set
516
517#
518# EEPROM support
519#
520# CONFIG_EEPROM_93CX6 is not set
505CONFIG_HAVE_IDE=y 521CONFIG_HAVE_IDE=y
506CONFIG_IDE=y 522CONFIG_IDE=y
507 523
@@ -573,6 +589,7 @@ CONFIG_IDE_PROC_FS=y
573# CONFIG_I2O is not set 589# CONFIG_I2O is not set
574# CONFIG_MACINTOSH_DRIVERS is not set 590# CONFIG_MACINTOSH_DRIVERS is not set
575CONFIG_NETDEVICES=y 591CONFIG_NETDEVICES=y
592CONFIG_COMPAT_NET_DEV_OPS=y
576# CONFIG_DUMMY is not set 593# CONFIG_DUMMY is not set
577# CONFIG_BONDING is not set 594# CONFIG_BONDING is not set
578# CONFIG_EQUALIZER is not set 595# CONFIG_EQUALIZER is not set
@@ -606,6 +623,8 @@ CONFIG_MII=y
606# CONFIG_SUNGEM is not set 623# CONFIG_SUNGEM is not set
607# CONFIG_CASSINI is not set 624# CONFIG_CASSINI is not set
608# CONFIG_NET_VENDOR_3COM is not set 625# CONFIG_NET_VENDOR_3COM is not set
626# CONFIG_ETHOC is not set
627# CONFIG_DNET is not set
609# CONFIG_NET_TULIP is not set 628# CONFIG_NET_TULIP is not set
610# CONFIG_HP100 is not set 629# CONFIG_HP100 is not set
611# CONFIG_IBM_NEW_EMAC_ZMII is not set 630# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -628,6 +647,7 @@ CONFIG_NETDEV_1000=y
628# CONFIG_E1000 is not set 647# CONFIG_E1000 is not set
629# CONFIG_E1000E is not set 648# CONFIG_E1000E is not set
630# CONFIG_IGB is not set 649# CONFIG_IGB is not set
650# CONFIG_IGBVF is not set
631# CONFIG_NS83820 is not set 651# CONFIG_NS83820 is not set
632# CONFIG_HAMACHI is not set 652# CONFIG_HAMACHI is not set
633# CONFIG_R8169 is not set 653# CONFIG_R8169 is not set
@@ -637,8 +657,8 @@ CONFIG_NETDEV_1000=y
637# CONFIG_VIA_VELOCITY is not set 657# CONFIG_VIA_VELOCITY is not set
638# CONFIG_TIGON3 is not set 658# CONFIG_TIGON3 is not set
639# CONFIG_BNX2 is not set 659# CONFIG_BNX2 is not set
660# CONFIG_FSL_PQ_MDIO is not set
640# CONFIG_GIANFAR is not set 661# CONFIG_GIANFAR is not set
641# CONFIG_MV643XX_ETH is not set
642# CONFIG_QLA3XXX is not set 662# CONFIG_QLA3XXX is not set
643# CONFIG_ATL1 is not set 663# CONFIG_ATL1 is not set
644# CONFIG_JME is not set 664# CONFIG_JME is not set
@@ -650,6 +670,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
650# CONFIG_IXGBE is not set 670# CONFIG_IXGBE is not set
651# CONFIG_IXGB is not set 671# CONFIG_IXGB is not set
652# CONFIG_S2IO is not set 672# CONFIG_S2IO is not set
673# CONFIG_VXGE is not set
653# CONFIG_MYRI10GE is not set 674# CONFIG_MYRI10GE is not set
654# CONFIG_NETXEN_NIC is not set 675# CONFIG_NETXEN_NIC is not set
655# CONFIG_NIU is not set 676# CONFIG_NIU is not set
@@ -659,6 +680,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
659# CONFIG_BNX2X is not set 680# CONFIG_BNX2X is not set
660# CONFIG_QLGE is not set 681# CONFIG_QLGE is not set
661# CONFIG_SFC is not set 682# CONFIG_SFC is not set
683# CONFIG_BE2NET is not set
662# CONFIG_TR is not set 684# CONFIG_TR is not set
663 685
664# 686#
@@ -666,7 +688,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
666# 688#
667# CONFIG_WLAN_PRE80211 is not set 689# CONFIG_WLAN_PRE80211 is not set
668# CONFIG_WLAN_80211 is not set 690# CONFIG_WLAN_80211 is not set
669# CONFIG_IWLWIFI_LEDS is not set
670 691
671# 692#
672# Enable WiMAX (Networking options) to see the WiMAX drivers 693# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -720,7 +741,6 @@ CONFIG_MOUSE_PS2=y
720CONFIG_MOUSE_PS2_ALPS=y 741CONFIG_MOUSE_PS2_ALPS=y
721CONFIG_MOUSE_PS2_LOGIPS2PP=y 742CONFIG_MOUSE_PS2_LOGIPS2PP=y
722CONFIG_MOUSE_PS2_SYNAPTICS=y 743CONFIG_MOUSE_PS2_SYNAPTICS=y
723CONFIG_MOUSE_PS2_LIFEBOOK=y
724CONFIG_MOUSE_PS2_TRACKPOINT=y 744CONFIG_MOUSE_PS2_TRACKPOINT=y
725# CONFIG_MOUSE_PS2_ELANTECH is not set 745# CONFIG_MOUSE_PS2_ELANTECH is not set
726# CONFIG_MOUSE_PS2_TOUCHKIT is not set 746# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -773,6 +793,7 @@ CONFIG_LEGACY_PTYS=y
773CONFIG_LEGACY_PTY_COUNT=256 793CONFIG_LEGACY_PTY_COUNT=256
774# CONFIG_IPMI_HANDLER is not set 794# CONFIG_IPMI_HANDLER is not set
775CONFIG_HW_RANDOM=y 795CONFIG_HW_RANDOM=y
796# CONFIG_HW_RANDOM_TIMERIOMEM is not set
776# CONFIG_NVRAM is not set 797# CONFIG_NVRAM is not set
777# CONFIG_GEN_RTC is not set 798# CONFIG_GEN_RTC is not set
778# CONFIG_R3964 is not set 799# CONFIG_R3964 is not set
@@ -868,7 +889,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
868# CONFIG_USB_GADGET_MUSB_HDRC is not set 889# CONFIG_USB_GADGET_MUSB_HDRC is not set
869 890
870# 891#
871# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 892# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
872# 893#
873CONFIG_USB_GADGET=y 894CONFIG_USB_GADGET=y
874# CONFIG_USB_GADGET_DEBUG is not set 895# CONFIG_USB_GADGET_DEBUG is not set
@@ -907,13 +928,16 @@ CONFIG_USB_ETH_RNDIS=y
907# OTG and related infrastructure 928# OTG and related infrastructure
908# 929#
909# CONFIG_USB_GPIO_VBUS is not set 930# CONFIG_USB_GPIO_VBUS is not set
931# CONFIG_NOP_USB_XCEIV is not set
910# CONFIG_MMC is not set 932# CONFIG_MMC is not set
911# CONFIG_MEMSTICK is not set 933# CONFIG_MEMSTICK is not set
912# CONFIG_NEW_LEDS is not set 934# CONFIG_NEW_LEDS is not set
913# CONFIG_ACCESSIBILITY is not set 935# CONFIG_ACCESSIBILITY is not set
914# CONFIG_INFINIBAND is not set 936# CONFIG_INFINIBAND is not set
937# CONFIG_EDAC is not set
915# CONFIG_RTC_CLASS is not set 938# CONFIG_RTC_CLASS is not set
916# CONFIG_DMADEVICES is not set 939# CONFIG_DMADEVICES is not set
940# CONFIG_AUXDISPLAY is not set
917# CONFIG_UIO is not set 941# CONFIG_UIO is not set
918# CONFIG_STAGING is not set 942# CONFIG_STAGING is not set
919 943
@@ -924,6 +948,7 @@ CONFIG_EXT2_FS=y
924# CONFIG_EXT2_FS_XATTR is not set 948# CONFIG_EXT2_FS_XATTR is not set
925# CONFIG_EXT2_FS_XIP is not set 949# CONFIG_EXT2_FS_XIP is not set
926CONFIG_EXT3_FS=y 950CONFIG_EXT3_FS=y
951# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
927CONFIG_EXT3_FS_XATTR=y 952CONFIG_EXT3_FS_XATTR=y
928# CONFIG_EXT3_FS_POSIX_ACL is not set 953# CONFIG_EXT3_FS_POSIX_ACL is not set
929# CONFIG_EXT3_FS_SECURITY is not set 954# CONFIG_EXT3_FS_SECURITY is not set
@@ -945,6 +970,10 @@ CONFIG_AUTOFS4_FS=y
945# CONFIG_FUSE_FS is not set 970# CONFIG_FUSE_FS is not set
946 971
947# 972#
973# Caches
974#
975
976#
948# CD-ROM/DVD Filesystems 977# CD-ROM/DVD Filesystems
949# 978#
950# CONFIG_ISO9660_FS is not set 979# CONFIG_ISO9660_FS is not set
@@ -1059,6 +1088,7 @@ CONFIG_NLS_ISO8859_1=y
1059# CONFIG_NLS_KOI8_R is not set 1088# CONFIG_NLS_KOI8_R is not set
1060# CONFIG_NLS_KOI8_U is not set 1089# CONFIG_NLS_KOI8_U is not set
1061CONFIG_NLS_UTF8=y 1090CONFIG_NLS_UTF8=y
1091# CONFIG_BINARY_PRINTF is not set
1062 1092
1063# 1093#
1064# Library routines 1094# Library routines
@@ -1074,11 +1104,12 @@ CONFIG_CRC32=y
1074# CONFIG_LIBCRC32C is not set 1104# CONFIG_LIBCRC32C is not set
1075CONFIG_ZLIB_INFLATE=y 1105CONFIG_ZLIB_INFLATE=y
1076CONFIG_ZLIB_DEFLATE=y 1106CONFIG_ZLIB_DEFLATE=y
1077CONFIG_PLIST=y 1107CONFIG_DECOMPRESS_GZIP=y
1078CONFIG_HAS_IOMEM=y 1108CONFIG_HAS_IOMEM=y
1079CONFIG_HAS_IOPORT=y 1109CONFIG_HAS_IOPORT=y
1080CONFIG_HAS_DMA=y 1110CONFIG_HAS_DMA=y
1081CONFIG_HAVE_LMB=y 1111CONFIG_HAVE_LMB=y
1112CONFIG_NLATTR=y
1082 1113
1083# 1114#
1084# Kernel hacking 1115# Kernel hacking
@@ -1096,6 +1127,9 @@ CONFIG_DEBUG_KERNEL=y
1096CONFIG_DETECT_SOFTLOCKUP=y 1127CONFIG_DETECT_SOFTLOCKUP=y
1097# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1128# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1098CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1129CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1130CONFIG_DETECT_HUNG_TASK=y
1131# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1132CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1099# CONFIG_SCHED_DEBUG is not set 1133# CONFIG_SCHED_DEBUG is not set
1100# CONFIG_SCHEDSTATS is not set 1134# CONFIG_SCHEDSTATS is not set
1101# CONFIG_TIMER_STATS is not set 1135# CONFIG_TIMER_STATS is not set
@@ -1125,9 +1159,12 @@ CONFIG_DEBUG_INFO=y
1125# CONFIG_FAULT_INJECTION is not set 1159# CONFIG_FAULT_INJECTION is not set
1126# CONFIG_LATENCYTOP is not set 1160# CONFIG_LATENCYTOP is not set
1127CONFIG_SYSCTL_SYSCALL_CHECK=y 1161CONFIG_SYSCTL_SYSCALL_CHECK=y
1162# CONFIG_DEBUG_PAGEALLOC is not set
1128CONFIG_HAVE_FUNCTION_TRACER=y 1163CONFIG_HAVE_FUNCTION_TRACER=y
1164CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1129CONFIG_HAVE_DYNAMIC_FTRACE=y 1165CONFIG_HAVE_DYNAMIC_FTRACE=y
1130CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1166CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1167CONFIG_TRACING_SUPPORT=y
1131 1168
1132# 1169#
1133# Tracers 1170# Tracers
@@ -1135,16 +1172,18 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1135# CONFIG_FUNCTION_TRACER is not set 1172# CONFIG_FUNCTION_TRACER is not set
1136# CONFIG_SCHED_TRACER is not set 1173# CONFIG_SCHED_TRACER is not set
1137# CONFIG_CONTEXT_SWITCH_TRACER is not set 1174# CONFIG_CONTEXT_SWITCH_TRACER is not set
1175# CONFIG_EVENT_TRACER is not set
1138# CONFIG_BOOT_TRACER is not set 1176# CONFIG_BOOT_TRACER is not set
1139# CONFIG_TRACE_BRANCH_PROFILING is not set 1177# CONFIG_TRACE_BRANCH_PROFILING is not set
1140# CONFIG_STACK_TRACER is not set 1178# CONFIG_STACK_TRACER is not set
1141# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1179# CONFIG_KMEMTRACE is not set
1180# CONFIG_WORKQUEUE_TRACER is not set
1181# CONFIG_BLK_DEV_IO_TRACE is not set
1142# CONFIG_SAMPLES is not set 1182# CONFIG_SAMPLES is not set
1143CONFIG_HAVE_ARCH_KGDB=y 1183CONFIG_HAVE_ARCH_KGDB=y
1144CONFIG_PRINT_STACK_DEPTH=64 1184CONFIG_PRINT_STACK_DEPTH=64
1145# CONFIG_DEBUG_STACKOVERFLOW is not set 1185# CONFIG_DEBUG_STACKOVERFLOW is not set
1146# CONFIG_DEBUG_STACK_USAGE is not set 1186# CONFIG_DEBUG_STACK_USAGE is not set
1147# CONFIG_DEBUG_PAGEALLOC is not set
1148# CONFIG_CODE_PATCHING_SELFTEST is not set 1187# CONFIG_CODE_PATCHING_SELFTEST is not set
1149# CONFIG_FTR_FIXUP_SELFTEST is not set 1188# CONFIG_FTR_FIXUP_SELFTEST is not set
1150# CONFIG_MSI_BITMAP_SELFTEST is not set 1189# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1175,9 +1214,11 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1175CONFIG_CRYPTO_HASH=y 1214CONFIG_CRYPTO_HASH=y
1176CONFIG_CRYPTO_HASH2=y 1215CONFIG_CRYPTO_HASH2=y
1177CONFIG_CRYPTO_RNG2=y 1216CONFIG_CRYPTO_RNG2=y
1217CONFIG_CRYPTO_PCOMP=y
1178CONFIG_CRYPTO_MANAGER=y 1218CONFIG_CRYPTO_MANAGER=y
1179CONFIG_CRYPTO_MANAGER2=y 1219CONFIG_CRYPTO_MANAGER2=y
1180# CONFIG_CRYPTO_NULL is not set 1220# CONFIG_CRYPTO_NULL is not set
1221CONFIG_CRYPTO_WORKQUEUE=y
1181# CONFIG_CRYPTO_CRYPTD is not set 1222# CONFIG_CRYPTO_CRYPTD is not set
1182# CONFIG_CRYPTO_AUTHENC is not set 1223# CONFIG_CRYPTO_AUTHENC is not set
1183 1224
@@ -1241,6 +1282,7 @@ CONFIG_CRYPTO_DES=y
1241# Compression 1282# Compression
1242# 1283#
1243# CONFIG_CRYPTO_DEFLATE is not set 1284# CONFIG_CRYPTO_DEFLATE is not set
1285# CONFIG_CRYPTO_ZLIB is not set
1244# CONFIG_CRYPTO_LZO is not set 1286# CONFIG_CRYPTO_LZO is not set
1245 1287
1246# 1288#
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index e971db171138..e9f287f313fa 100644
--- a/arch/powerpc/configs/prpmc2800_defconfig
+++ b/arch/powerpc/configs/prpmc2800_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:44 2009 4# Wed May 13 17:22:03 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18CONFIG_ALTIVEC=y 19CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -56,6 +57,7 @@ CONFIG_GENERIC_BUG=y
56# CONFIG_DEFAULT_UIMAGE is not set 57# CONFIG_DEFAULT_UIMAGE is not set
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -70,9 +72,19 @@ CONFIG_SWAP=y
70CONFIG_SYSVIPC=y 72CONFIG_SYSVIPC=y
71CONFIG_SYSVIPC_SYSCTL=y 73CONFIG_SYSVIPC_SYSCTL=y
72CONFIG_POSIX_MQUEUE=y 74CONFIG_POSIX_MQUEUE=y
75CONFIG_POSIX_MQUEUE_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 76# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 77# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
79
80#
81# RCU Subsystem
82#
83CONFIG_CLASSIC_RCU=y
84# CONFIG_TREE_RCU is not set
85# CONFIG_PREEMPT_RCU is not set
86# CONFIG_TREE_RCU_TRACE is not set
87# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 88# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 89CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 90CONFIG_GROUP_SCHED=y
@@ -89,22 +101,26 @@ CONFIG_NAMESPACES=y
89# CONFIG_IPC_NS is not set 101# CONFIG_IPC_NS is not set
90# CONFIG_USER_NS is not set 102# CONFIG_USER_NS is not set
91# CONFIG_PID_NS is not set 103# CONFIG_PID_NS is not set
104# CONFIG_NET_NS is not set
92CONFIG_BLK_DEV_INITRD=y 105CONFIG_BLK_DEV_INITRD=y
93CONFIG_INITRAMFS_SOURCE="" 106CONFIG_INITRAMFS_SOURCE=""
107CONFIG_RD_GZIP=y
108CONFIG_RD_BZIP2=y
109CONFIG_RD_LZMA=y
94# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
95CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
112CONFIG_ANON_INODES=y
96# CONFIG_EMBEDDED is not set 113# CONFIG_EMBEDDED is not set
97CONFIG_SYSCTL_SYSCALL=y 114CONFIG_SYSCTL_SYSCALL=y
98CONFIG_KALLSYMS=y 115CONFIG_KALLSYMS=y
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 116# CONFIG_KALLSYMS_EXTRA_PASS is not set
117# CONFIG_STRIP_ASM_SYMS is not set
100CONFIG_HOTPLUG=y 118CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 119CONFIG_PRINTK=y
102CONFIG_BUG=y 120CONFIG_BUG=y
103CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 123CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 124CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
@@ -114,16 +130,19 @@ CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 130CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y 131CONFIG_PCI_QUIRKS=y
116CONFIG_SLUB_DEBUG=y 132CONFIG_SLUB_DEBUG=y
133CONFIG_COMPAT_BRK=y
117# CONFIG_SLAB is not set 134# CONFIG_SLAB is not set
118CONFIG_SLUB=y 135CONFIG_SLUB=y
119# CONFIG_SLOB is not set 136# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 137# CONFIG_PROFILING is not set
138# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 139CONFIG_HAVE_OPROFILE=y
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 140CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y 141CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 142CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 143CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 144CONFIG_HAVE_ARCH_TRACEHOOK=y
145# CONFIG_SLOW_WORK is not set
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 147CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 148CONFIG_RT_MUTEXES=y
@@ -131,7 +150,6 @@ CONFIG_BASE_SMALL=0
131# CONFIG_MODULES is not set 150# CONFIG_MODULES is not set
132CONFIG_BLOCK=y 151CONFIG_BLOCK=y
133CONFIG_LBD=y 152CONFIG_LBD=y
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 153# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 154# CONFIG_BLK_DEV_INTEGRITY is not set
137 155
@@ -147,18 +165,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 165# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 166# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 167CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151# CONFIG_TREE_RCU is not set
152# CONFIG_PREEMPT_RCU is not set
153# CONFIG_TREE_RCU_TRACE is not set
154# CONFIG_PREEMPT_RCU_TRACE is not set
155# CONFIG_FREEZER is not set 168# CONFIG_FREEZER is not set
156 169
157# 170#
158# Platform support 171# Platform support
159# 172#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 173# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 174# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 175# CONFIG_MPC5121_GENERIC is not set
@@ -178,6 +189,8 @@ CONFIG_EMBEDDED6xx=y
178CONFIG_PPC_PRPMC2800=y 189CONFIG_PPC_PRPMC2800=y
179# CONFIG_PPC_C2K is not set 190# CONFIG_PPC_C2K is not set
180CONFIG_MV64X60=y 191CONFIG_MV64X60=y
192# CONFIG_AMIGAONE is not set
193CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
181# CONFIG_IPIC is not set 194# CONFIG_IPIC is not set
182# CONFIG_MPIC is not set 195# CONFIG_MPIC is not set
183# CONFIG_MPIC_WEIRD is not set 196# CONFIG_MPIC_WEIRD is not set
@@ -237,9 +250,12 @@ CONFIG_ZONE_DMA_FLAG=1
237CONFIG_BOUNCE=y 250CONFIG_BOUNCE=y
238CONFIG_VIRT_TO_BUS=y 251CONFIG_VIRT_TO_BUS=y
239CONFIG_UNEVICTABLE_LRU=y 252CONFIG_UNEVICTABLE_LRU=y
253CONFIG_HAVE_MLOCK=y
254CONFIG_HAVE_MLOCKED_PAGE_BIT=y
240CONFIG_PPC_4K_PAGES=y 255CONFIG_PPC_4K_PAGES=y
241# CONFIG_PPC_16K_PAGES is not set 256# CONFIG_PPC_16K_PAGES is not set
242# CONFIG_PPC_64K_PAGES is not set 257# CONFIG_PPC_64K_PAGES is not set
258# CONFIG_PPC_256K_PAGES is not set
243CONFIG_FORCE_MAX_ZONEORDER=11 259CONFIG_FORCE_MAX_ZONEORDER=11
244CONFIG_PROC_DEVICETREE=y 260CONFIG_PROC_DEVICETREE=y
245# CONFIG_CMDLINE_BOOL is not set 261# CONFIG_CMDLINE_BOOL is not set
@@ -262,6 +278,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 278# CONFIG_PCI_MSI is not set
263# CONFIG_PCI_LEGACY is not set 279# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set 280# CONFIG_PCI_STUB is not set
281# CONFIG_PCI_IOV is not set
265# CONFIG_PCCARD is not set 282# CONFIG_PCCARD is not set
266# CONFIG_HOTPLUG_PCI is not set 283# CONFIG_HOTPLUG_PCI is not set
267# CONFIG_HAS_RAPIDIO is not set 284# CONFIG_HAS_RAPIDIO is not set
@@ -279,15 +296,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
279CONFIG_KERNEL_START=0xc0000000 296CONFIG_KERNEL_START=0xc0000000
280CONFIG_PHYSICAL_START=0x00000000 297CONFIG_PHYSICAL_START=0x00000000
281CONFIG_TASK_SIZE=0xc0000000 298CONFIG_TASK_SIZE=0xc0000000
282CONFIG_CONSISTENT_START=0xff100000
283CONFIG_CONSISTENT_SIZE=0x00200000
284CONFIG_NET=y 299CONFIG_NET=y
285 300
286# 301#
287# Networking options 302# Networking options
288# 303#
289# CONFIG_NET_NS is not set
290CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 304CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 305# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 306CONFIG_UNIX=y
@@ -318,7 +331,7 @@ CONFIG_SYN_COOKIES=y
318CONFIG_INET_XFRM_MODE_TRANSPORT=y 331CONFIG_INET_XFRM_MODE_TRANSPORT=y
319CONFIG_INET_XFRM_MODE_TUNNEL=y 332CONFIG_INET_XFRM_MODE_TUNNEL=y
320CONFIG_INET_XFRM_MODE_BEET=y 333CONFIG_INET_XFRM_MODE_BEET=y
321# CONFIG_INET_LRO is not set 334CONFIG_INET_LRO=y
322CONFIG_INET_DIAG=y 335CONFIG_INET_DIAG=y
323CONFIG_INET_TCP_DIAG=y 336CONFIG_INET_TCP_DIAG=y
324# CONFIG_TCP_CONG_ADVANCED is not set 337# CONFIG_TCP_CONG_ADVANCED is not set
@@ -343,6 +356,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_LAPB is not set 356# CONFIG_LAPB is not set
344# CONFIG_ECONET is not set 357# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 358# CONFIG_WAN_ROUTER is not set
359# CONFIG_PHONET is not set
346# CONFIG_NET_SCHED is not set 360# CONFIG_NET_SCHED is not set
347# CONFIG_DCB is not set 361# CONFIG_DCB is not set
348 362
@@ -355,7 +369,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
355# CONFIG_IRDA is not set 369# CONFIG_IRDA is not set
356# CONFIG_BT is not set 370# CONFIG_BT is not set
357# CONFIG_AF_RXRPC is not set 371# CONFIG_AF_RXRPC is not set
358# CONFIG_PHONET is not set
359CONFIG_WIRELESS=y 372CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 373# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 374CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -459,7 +472,6 @@ CONFIG_MTD_PHYSMAP_OF=y
459# LPDDR flash memory drivers 472# LPDDR flash memory drivers
460# 473#
461# CONFIG_MTD_LPDDR is not set 474# CONFIG_MTD_LPDDR is not set
462# CONFIG_MTD_QINFO_PROBE is not set
463 475
464# 476#
465# UBI - Unsorted block images 477# UBI - Unsorted block images
@@ -489,19 +501,27 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
489# CONFIG_BLK_DEV_HD is not set 501# CONFIG_BLK_DEV_HD is not set
490CONFIG_MISC_DEVICES=y 502CONFIG_MISC_DEVICES=y
491# CONFIG_PHANTOM is not set 503# CONFIG_PHANTOM is not set
492# CONFIG_EEPROM_93CX6 is not set
493# CONFIG_SGI_IOC4 is not set 504# CONFIG_SGI_IOC4 is not set
494# CONFIG_TIFM_CORE is not set 505# CONFIG_TIFM_CORE is not set
495# CONFIG_ICS932S401 is not set 506# CONFIG_ICS932S401 is not set
496# CONFIG_ENCLOSURE_SERVICES is not set 507# CONFIG_ENCLOSURE_SERVICES is not set
497# CONFIG_HP_ILO is not set 508# CONFIG_HP_ILO is not set
509# CONFIG_ISL29003 is not set
498# CONFIG_C2PORT is not set 510# CONFIG_C2PORT is not set
511
512#
513# EEPROM support
514#
515# CONFIG_EEPROM_AT24 is not set
516# CONFIG_EEPROM_LEGACY is not set
517# CONFIG_EEPROM_93CX6 is not set
499CONFIG_HAVE_IDE=y 518CONFIG_HAVE_IDE=y
500CONFIG_IDE=y 519CONFIG_IDE=y
501 520
502# 521#
503# Please see Documentation/ide/ide.txt for help/info on IDE drives 522# Please see Documentation/ide/ide.txt for help/info on IDE drives
504# 523#
524CONFIG_IDE_XFER_MODE=y
505# CONFIG_BLK_DEV_IDE_SATA is not set 525# CONFIG_BLK_DEV_IDE_SATA is not set
506CONFIG_IDE_GD=y 526CONFIG_IDE_GD=y
507CONFIG_IDE_GD_ATA=y 527CONFIG_IDE_GD_ATA=y
@@ -605,9 +625,11 @@ CONFIG_SCSI_LOWLEVEL=y
605# CONFIG_MEGARAID_NEWGEN is not set 625# CONFIG_MEGARAID_NEWGEN is not set
606# CONFIG_MEGARAID_LEGACY is not set 626# CONFIG_MEGARAID_LEGACY is not set
607# CONFIG_MEGARAID_SAS is not set 627# CONFIG_MEGARAID_SAS is not set
628# CONFIG_SCSI_MPT2SAS is not set
608# CONFIG_SCSI_HPTIOP is not set 629# CONFIG_SCSI_HPTIOP is not set
609# CONFIG_SCSI_BUSLOGIC is not set 630# CONFIG_SCSI_BUSLOGIC is not set
610# CONFIG_LIBFC is not set 631# CONFIG_LIBFC is not set
632# CONFIG_LIBFCOE is not set
611# CONFIG_FCOE is not set 633# CONFIG_FCOE is not set
612# CONFIG_SCSI_DMX3191D is not set 634# CONFIG_SCSI_DMX3191D is not set
613# CONFIG_SCSI_EATA is not set 635# CONFIG_SCSI_EATA is not set
@@ -630,6 +652,7 @@ CONFIG_SCSI_LOWLEVEL=y
630# CONFIG_SCSI_DEBUG is not set 652# CONFIG_SCSI_DEBUG is not set
631# CONFIG_SCSI_SRP is not set 653# CONFIG_SCSI_SRP is not set
632# CONFIG_SCSI_DH is not set 654# CONFIG_SCSI_DH is not set
655# CONFIG_SCSI_OSD_INITIATOR is not set
633CONFIG_ATA=y 656CONFIG_ATA=y
634# CONFIG_ATA_NONSTANDARD is not set 657# CONFIG_ATA_NONSTANDARD is not set
635CONFIG_SATA_PMP=y 658CONFIG_SATA_PMP=y
@@ -707,6 +730,7 @@ CONFIG_MACINTOSH_DRIVERS=y
707# CONFIG_MAC_EMUMOUSEBTN is not set 730# CONFIG_MAC_EMUMOUSEBTN is not set
708# CONFIG_WINDFARM is not set 731# CONFIG_WINDFARM is not set
709CONFIG_NETDEVICES=y 732CONFIG_NETDEVICES=y
733CONFIG_COMPAT_NET_DEV_OPS=y
710# CONFIG_DUMMY is not set 734# CONFIG_DUMMY is not set
711# CONFIG_BONDING is not set 735# CONFIG_BONDING is not set
712# CONFIG_MACVLAN is not set 736# CONFIG_MACVLAN is not set
@@ -740,6 +764,8 @@ CONFIG_MII=y
740# CONFIG_SUNGEM is not set 764# CONFIG_SUNGEM is not set
741# CONFIG_CASSINI is not set 765# CONFIG_CASSINI is not set
742# CONFIG_NET_VENDOR_3COM is not set 766# CONFIG_NET_VENDOR_3COM is not set
767# CONFIG_ETHOC is not set
768# CONFIG_DNET is not set
743# CONFIG_NET_TULIP is not set 769# CONFIG_NET_TULIP is not set
744# CONFIG_HP100 is not set 770# CONFIG_HP100 is not set
745# CONFIG_IBM_NEW_EMAC_ZMII is not set 771# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -781,6 +807,7 @@ CONFIG_E1000=y
781# CONFIG_E1000E is not set 807# CONFIG_E1000E is not set
782# CONFIG_IP1000 is not set 808# CONFIG_IP1000 is not set
783# CONFIG_IGB is not set 809# CONFIG_IGB is not set
810# CONFIG_IGBVF is not set
784# CONFIG_NS83820 is not set 811# CONFIG_NS83820 is not set
785# CONFIG_HAMACHI is not set 812# CONFIG_HAMACHI is not set
786# CONFIG_YELLOWFIN is not set 813# CONFIG_YELLOWFIN is not set
@@ -795,6 +822,7 @@ CONFIG_MV643XX_ETH=y
795# CONFIG_QLA3XXX is not set 822# CONFIG_QLA3XXX is not set
796# CONFIG_ATL1 is not set 823# CONFIG_ATL1 is not set
797# CONFIG_ATL1E is not set 824# CONFIG_ATL1E is not set
825# CONFIG_ATL1C is not set
798# CONFIG_JME is not set 826# CONFIG_JME is not set
799CONFIG_NETDEV_10000=y 827CONFIG_NETDEV_10000=y
800# CONFIG_CHELSIO_T1 is not set 828# CONFIG_CHELSIO_T1 is not set
@@ -804,6 +832,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
804# CONFIG_IXGBE is not set 832# CONFIG_IXGBE is not set
805# CONFIG_IXGB is not set 833# CONFIG_IXGB is not set
806# CONFIG_S2IO is not set 834# CONFIG_S2IO is not set
835# CONFIG_VXGE is not set
807# CONFIG_MYRI10GE is not set 836# CONFIG_MYRI10GE is not set
808# CONFIG_NETXEN_NIC is not set 837# CONFIG_NETXEN_NIC is not set
809# CONFIG_NIU is not set 838# CONFIG_NIU is not set
@@ -813,6 +842,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
813# CONFIG_BNX2X is not set 842# CONFIG_BNX2X is not set
814# CONFIG_QLGE is not set 843# CONFIG_QLGE is not set
815# CONFIG_SFC is not set 844# CONFIG_SFC is not set
845# CONFIG_BE2NET is not set
816# CONFIG_TR is not set 846# CONFIG_TR is not set
817 847
818# 848#
@@ -820,7 +850,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
820# 850#
821# CONFIG_WLAN_PRE80211 is not set 851# CONFIG_WLAN_PRE80211 is not set
822# CONFIG_WLAN_80211 is not set 852# CONFIG_WLAN_80211 is not set
823# CONFIG_IWLWIFI_LEDS is not set
824 853
825# 854#
826# Enable WiMAX (Networking options) to see the WiMAX drivers 855# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -975,12 +1004,9 @@ CONFIG_I2C_MV64XXX=y
975# Miscellaneous I2C Chip support 1004# Miscellaneous I2C Chip support
976# 1005#
977# CONFIG_DS1682 is not set 1006# CONFIG_DS1682 is not set
978# CONFIG_EEPROM_AT24 is not set
979# CONFIG_EEPROM_LEGACY is not set
980# CONFIG_SENSORS_PCF8574 is not set 1007# CONFIG_SENSORS_PCF8574 is not set
981# CONFIG_PCF8575 is not set 1008# CONFIG_PCF8575 is not set
982# CONFIG_SENSORS_PCA9539 is not set 1009# CONFIG_SENSORS_PCA9539 is not set
983# CONFIG_SENSORS_PCF8591 is not set
984# CONFIG_SENSORS_MAX6875 is not set 1010# CONFIG_SENSORS_MAX6875 is not set
985# CONFIG_SENSORS_TSL2550 is not set 1011# CONFIG_SENSORS_TSL2550 is not set
986# CONFIG_I2C_DEBUG_CORE is not set 1012# CONFIG_I2C_DEBUG_CORE is not set
@@ -1012,6 +1038,7 @@ CONFIG_HWMON=y
1012# CONFIG_SENSORS_F71805F is not set 1038# CONFIG_SENSORS_F71805F is not set
1013# CONFIG_SENSORS_F71882FG is not set 1039# CONFIG_SENSORS_F71882FG is not set
1014# CONFIG_SENSORS_F75375S is not set 1040# CONFIG_SENSORS_F75375S is not set
1041# CONFIG_SENSORS_G760A is not set
1015# CONFIG_SENSORS_GL518SM is not set 1042# CONFIG_SENSORS_GL518SM is not set
1016# CONFIG_SENSORS_GL520SM is not set 1043# CONFIG_SENSORS_GL520SM is not set
1017# CONFIG_SENSORS_IT87 is not set 1044# CONFIG_SENSORS_IT87 is not set
@@ -1026,11 +1053,14 @@ CONFIG_HWMON=y
1026# CONFIG_SENSORS_LM90 is not set 1053# CONFIG_SENSORS_LM90 is not set
1027# CONFIG_SENSORS_LM92 is not set 1054# CONFIG_SENSORS_LM92 is not set
1028# CONFIG_SENSORS_LM93 is not set 1055# CONFIG_SENSORS_LM93 is not set
1056# CONFIG_SENSORS_LTC4215 is not set
1029# CONFIG_SENSORS_LTC4245 is not set 1057# CONFIG_SENSORS_LTC4245 is not set
1058# CONFIG_SENSORS_LM95241 is not set
1030# CONFIG_SENSORS_MAX1619 is not set 1059# CONFIG_SENSORS_MAX1619 is not set
1031# CONFIG_SENSORS_MAX6650 is not set 1060# CONFIG_SENSORS_MAX6650 is not set
1032# CONFIG_SENSORS_PC87360 is not set 1061# CONFIG_SENSORS_PC87360 is not set
1033# CONFIG_SENSORS_PC87427 is not set 1062# CONFIG_SENSORS_PC87427 is not set
1063# CONFIG_SENSORS_PCF8591 is not set
1034# CONFIG_SENSORS_SIS5595 is not set 1064# CONFIG_SENSORS_SIS5595 is not set
1035# CONFIG_SENSORS_DME1737 is not set 1065# CONFIG_SENSORS_DME1737 is not set
1036# CONFIG_SENSORS_SMSC47M1 is not set 1066# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1127,15 +1157,17 @@ CONFIG_USB_HID=y
1127# 1157#
1128# Special HID drivers 1158# Special HID drivers
1129# 1159#
1130CONFIG_HID_COMPAT=y
1131CONFIG_HID_A4TECH=y 1160CONFIG_HID_A4TECH=y
1132CONFIG_HID_APPLE=y 1161CONFIG_HID_APPLE=y
1133CONFIG_HID_BELKIN=y 1162CONFIG_HID_BELKIN=y
1134CONFIG_HID_CHERRY=y 1163CONFIG_HID_CHERRY=y
1135CONFIG_HID_CHICONY=y 1164CONFIG_HID_CHICONY=y
1136CONFIG_HID_CYPRESS=y 1165CONFIG_HID_CYPRESS=y
1166# CONFIG_DRAGONRISE_FF is not set
1137CONFIG_HID_EZKEY=y 1167CONFIG_HID_EZKEY=y
1168CONFIG_HID_KYE=y
1138CONFIG_HID_GYRATION=y 1169CONFIG_HID_GYRATION=y
1170CONFIG_HID_KENSINGTON=y
1139CONFIG_HID_LOGITECH=y 1171CONFIG_HID_LOGITECH=y
1140# CONFIG_LOGITECH_FF is not set 1172# CONFIG_LOGITECH_FF is not set
1141# CONFIG_LOGIRUMBLEPAD2_FF is not set 1173# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1202,11 +1234,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1202# CONFIG_USB_TMC is not set 1234# CONFIG_USB_TMC is not set
1203 1235
1204# 1236#
1205# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1237# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1206# 1238#
1207 1239
1208# 1240#
1209# see USB_STORAGE Help for more information 1241# also be needed; see USB_STORAGE Help for more info
1210# 1242#
1211# CONFIG_USB_STORAGE is not set 1243# CONFIG_USB_STORAGE is not set
1212# CONFIG_USB_LIBUSUAL is not set 1244# CONFIG_USB_LIBUSUAL is not set
@@ -1236,7 +1268,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1236# CONFIG_USB_LED is not set 1268# CONFIG_USB_LED is not set
1237# CONFIG_USB_CYPRESS_CY7C63 is not set 1269# CONFIG_USB_CYPRESS_CY7C63 is not set
1238# CONFIG_USB_CYTHERM is not set 1270# CONFIG_USB_CYTHERM is not set
1239# CONFIG_USB_PHIDGET is not set
1240# CONFIG_USB_IDMOUSE is not set 1271# CONFIG_USB_IDMOUSE is not set
1241# CONFIG_USB_FTDI_ELAN is not set 1272# CONFIG_USB_FTDI_ELAN is not set
1242# CONFIG_USB_APPLEDISPLAY is not set 1273# CONFIG_USB_APPLEDISPLAY is not set
@@ -1252,6 +1283,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1252# 1283#
1253# OTG and related infrastructure 1284# OTG and related infrastructure
1254# 1285#
1286# CONFIG_NOP_USB_XCEIV is not set
1255# CONFIG_UWB is not set 1287# CONFIG_UWB is not set
1256# CONFIG_MMC is not set 1288# CONFIG_MMC is not set
1257# CONFIG_MEMSTICK is not set 1289# CONFIG_MEMSTICK is not set
@@ -1313,8 +1345,9 @@ CONFIG_RTC_DRV_MAX6900=y
1313# 1345#
1314# on-CPU RTC drivers 1346# on-CPU RTC drivers
1315# 1347#
1316# CONFIG_RTC_DRV_PPC is not set 1348# CONFIG_RTC_DRV_GENERIC is not set
1317# CONFIG_DMADEVICES is not set 1349# CONFIG_DMADEVICES is not set
1350# CONFIG_AUXDISPLAY is not set
1318# CONFIG_UIO is not set 1351# CONFIG_UIO is not set
1319# CONFIG_STAGING is not set 1352# CONFIG_STAGING is not set
1320 1353
@@ -1325,6 +1358,7 @@ CONFIG_EXT2_FS=y
1325# CONFIG_EXT2_FS_XATTR is not set 1358# CONFIG_EXT2_FS_XATTR is not set
1326# CONFIG_EXT2_FS_XIP is not set 1359# CONFIG_EXT2_FS_XIP is not set
1327CONFIG_EXT3_FS=y 1360CONFIG_EXT3_FS=y
1361# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1328CONFIG_EXT3_FS_XATTR=y 1362CONFIG_EXT3_FS_XATTR=y
1329# CONFIG_EXT3_FS_POSIX_ACL is not set 1363# CONFIG_EXT3_FS_POSIX_ACL is not set
1330# CONFIG_EXT3_FS_SECURITY is not set 1364# CONFIG_EXT3_FS_SECURITY is not set
@@ -1348,6 +1382,11 @@ CONFIG_INOTIFY_USER=y
1348# CONFIG_FUSE_FS is not set 1382# CONFIG_FUSE_FS is not set
1349 1383
1350# 1384#
1385# Caches
1386#
1387# CONFIG_FSCACHE is not set
1388
1389#
1351# CD-ROM/DVD Filesystems 1390# CD-ROM/DVD Filesystems
1352# 1391#
1353# CONFIG_ISO9660_FS is not set 1392# CONFIG_ISO9660_FS is not set
@@ -1391,6 +1430,7 @@ CONFIG_MISC_FILESYSTEMS=y
1391# CONFIG_ROMFS_FS is not set 1430# CONFIG_ROMFS_FS is not set
1392# CONFIG_SYSV_FS is not set 1431# CONFIG_SYSV_FS is not set
1393# CONFIG_UFS_FS is not set 1432# CONFIG_UFS_FS is not set
1433# CONFIG_NILFS2_FS is not set
1394CONFIG_NETWORK_FILESYSTEMS=y 1434CONFIG_NETWORK_FILESYSTEMS=y
1395CONFIG_NFS_FS=y 1435CONFIG_NFS_FS=y
1396# CONFIG_NFS_V3 is not set 1436# CONFIG_NFS_V3 is not set
@@ -1400,7 +1440,6 @@ CONFIG_ROOT_NFS=y
1400CONFIG_LOCKD=y 1440CONFIG_LOCKD=y
1401CONFIG_NFS_COMMON=y 1441CONFIG_NFS_COMMON=y
1402CONFIG_SUNRPC=y 1442CONFIG_SUNRPC=y
1403# CONFIG_SUNRPC_REGISTER_V4 is not set
1404# CONFIG_RPCSEC_GSS_KRB5 is not set 1443# CONFIG_RPCSEC_GSS_KRB5 is not set
1405# CONFIG_RPCSEC_GSS_SPKM3 is not set 1444# CONFIG_RPCSEC_GSS_SPKM3 is not set
1406# CONFIG_SMB_FS is not set 1445# CONFIG_SMB_FS is not set
@@ -1432,6 +1471,7 @@ CONFIG_MSDOS_PARTITION=y
1432# CONFIG_SYSV68_PARTITION is not set 1471# CONFIG_SYSV68_PARTITION is not set
1433# CONFIG_NLS is not set 1472# CONFIG_NLS is not set
1434# CONFIG_DLM is not set 1473# CONFIG_DLM is not set
1474# CONFIG_BINARY_PRINTF is not set
1435 1475
1436# 1476#
1437# Library routines 1477# Library routines
@@ -1445,11 +1485,15 @@ CONFIG_CRC_T10DIF=y
1445CONFIG_CRC32=y 1485CONFIG_CRC32=y
1446# CONFIG_CRC7 is not set 1486# CONFIG_CRC7 is not set
1447# CONFIG_LIBCRC32C is not set 1487# CONFIG_LIBCRC32C is not set
1448CONFIG_PLIST=y 1488CONFIG_ZLIB_INFLATE=y
1489CONFIG_DECOMPRESS_GZIP=y
1490CONFIG_DECOMPRESS_BZIP2=y
1491CONFIG_DECOMPRESS_LZMA=y
1449CONFIG_HAS_IOMEM=y 1492CONFIG_HAS_IOMEM=y
1450CONFIG_HAS_IOPORT=y 1493CONFIG_HAS_IOPORT=y
1451CONFIG_HAS_DMA=y 1494CONFIG_HAS_DMA=y
1452CONFIG_HAVE_LMB=y 1495CONFIG_HAVE_LMB=y
1496CONFIG_NLATTR=y
1453 1497
1454# 1498#
1455# Kernel hacking 1499# Kernel hacking
@@ -1471,13 +1515,24 @@ CONFIG_DEBUG_MEMORY_INIT=y
1471# CONFIG_LATENCYTOP is not set 1515# CONFIG_LATENCYTOP is not set
1472CONFIG_SYSCTL_SYSCALL_CHECK=y 1516CONFIG_SYSCTL_SYSCALL_CHECK=y
1473CONFIG_HAVE_FUNCTION_TRACER=y 1517CONFIG_HAVE_FUNCTION_TRACER=y
1518CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1474CONFIG_HAVE_DYNAMIC_FTRACE=y 1519CONFIG_HAVE_DYNAMIC_FTRACE=y
1475CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1520CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1521CONFIG_TRACING_SUPPORT=y
1476 1522
1477# 1523#
1478# Tracers 1524# Tracers
1479# 1525#
1480# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1526# CONFIG_FUNCTION_TRACER is not set
1527# CONFIG_SCHED_TRACER is not set
1528# CONFIG_CONTEXT_SWITCH_TRACER is not set
1529# CONFIG_EVENT_TRACER is not set
1530# CONFIG_BOOT_TRACER is not set
1531# CONFIG_TRACE_BRANCH_PROFILING is not set
1532# CONFIG_STACK_TRACER is not set
1533# CONFIG_KMEMTRACE is not set
1534# CONFIG_WORKQUEUE_TRACER is not set
1535# CONFIG_BLK_DEV_IO_TRACE is not set
1481# CONFIG_SAMPLES is not set 1536# CONFIG_SAMPLES is not set
1482CONFIG_HAVE_ARCH_KGDB=y 1537CONFIG_HAVE_ARCH_KGDB=y
1483CONFIG_PRINT_STACK_DEPTH=64 1538CONFIG_PRINT_STACK_DEPTH=64
@@ -1569,6 +1624,7 @@ CONFIG_CRYPTO=y
1569# Compression 1624# Compression
1570# 1625#
1571# CONFIG_CRYPTO_DEFLATE is not set 1626# CONFIG_CRYPTO_DEFLATE is not set
1627# CONFIG_CRYPTO_ZLIB is not set
1572# CONFIG_CRYPTO_LZO is not set 1628# CONFIG_CRYPTO_LZO is not set
1573 1629
1574# 1630#
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index ac14f5245d2a..e28e65e7a0e1 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_defconfig
@@ -1,13 +1,14 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc8 3# Linux kernel version: 2.6.30-rc5
4# Fri Mar 13 09:28:45 2009 4# Fri May 15 10:37:00 2009
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
8# 8#
9# Processor support 9# Processor support
10# 10#
11CONFIG_PPC_BOOK3S=y
11# CONFIG_POWER4_ONLY is not set 12# CONFIG_POWER4_ONLY is not set
12CONFIG_POWER3=y 13CONFIG_POWER3=y
13CONFIG_POWER4=y 14CONFIG_POWER4=y
@@ -55,9 +56,11 @@ CONFIG_OF=y
55# CONFIG_GENERIC_TBSYNC is not set 56# CONFIG_GENERIC_TBSYNC is not set
56CONFIG_AUDIT_ARCH=y 57CONFIG_AUDIT_ARCH=y
57CONFIG_GENERIC_BUG=y 58CONFIG_GENERIC_BUG=y
59CONFIG_DTC=y
58# CONFIG_DEFAULT_UIMAGE is not set 60# CONFIG_DEFAULT_UIMAGE is not set
59# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 65
63# 66#
@@ -72,6 +75,7 @@ CONFIG_SWAP=y
72CONFIG_SYSVIPC=y 75CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y 76CONFIG_SYSVIPC_SYSCTL=y
74CONFIG_POSIX_MQUEUE=y 77CONFIG_POSIX_MQUEUE=y
78CONFIG_POSIX_MQUEUE_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 79# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 80# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 81# CONFIG_AUDIT is not set
@@ -88,8 +92,7 @@ CONFIG_CLASSIC_RCU=y
88CONFIG_LOG_BUF_SHIFT=17 92CONFIG_LOG_BUF_SHIFT=17
89# CONFIG_GROUP_SCHED is not set 93# CONFIG_GROUP_SCHED is not set
90# CONFIG_CGROUPS is not set 94# CONFIG_CGROUPS is not set
91CONFIG_SYSFS_DEPRECATED=y 95# CONFIG_SYSFS_DEPRECATED_V2 is not set
92CONFIG_SYSFS_DEPRECATED_V2=y
93# CONFIG_RELAY is not set 96# CONFIG_RELAY is not set
94CONFIG_NAMESPACES=y 97CONFIG_NAMESPACES=y
95# CONFIG_UTS_NS is not set 98# CONFIG_UTS_NS is not set
@@ -99,6 +102,9 @@ CONFIG_NAMESPACES=y
99# CONFIG_NET_NS is not set 102# CONFIG_NET_NS is not set
100CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
101CONFIG_INITRAMFS_SOURCE="" 104CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set
102CONFIG_CC_OPTIMIZE_FOR_SIZE=y 108CONFIG_CC_OPTIMIZE_FOR_SIZE=y
103CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
104CONFIG_ANON_INODES=y 110CONFIG_ANON_INODES=y
@@ -107,6 +113,7 @@ CONFIG_SYSCTL_SYSCALL=y
107CONFIG_KALLSYMS=y 113CONFIG_KALLSYMS=y
108CONFIG_KALLSYMS_ALL=y 114CONFIG_KALLSYMS_ALL=y
109CONFIG_KALLSYMS_EXTRA_PASS=y 115CONFIG_KALLSYMS_EXTRA_PASS=y
116# CONFIG_STRIP_ASM_SYMS is not set
110CONFIG_HOTPLUG=y 117CONFIG_HOTPLUG=y
111CONFIG_PRINTK=y 118CONFIG_PRINTK=y
112CONFIG_BUG=y 119CONFIG_BUG=y
@@ -138,6 +145,7 @@ CONFIG_HAVE_KRETPROBES=y
138CONFIG_HAVE_ARCH_TRACEHOOK=y 145CONFIG_HAVE_ARCH_TRACEHOOK=y
139CONFIG_HAVE_DMA_ATTRS=y 146CONFIG_HAVE_DMA_ATTRS=y
140CONFIG_USE_GENERIC_SMP_HELPERS=y 147CONFIG_USE_GENERIC_SMP_HELPERS=y
148# CONFIG_SLOW_WORK is not set
141# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 149# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
142CONFIG_SLABINFO=y 150CONFIG_SLABINFO=y
143CONFIG_RT_MUTEXES=y 151CONFIG_RT_MUTEXES=y
@@ -150,7 +158,6 @@ CONFIG_MODULE_UNLOAD=y
150# CONFIG_MODULE_SRCVERSION_ALL is not set 158# CONFIG_MODULE_SRCVERSION_ALL is not set
151CONFIG_STOP_MACHINE=y 159CONFIG_STOP_MACHINE=y
152CONFIG_BLOCK=y 160CONFIG_BLOCK=y
153# CONFIG_BLK_DEV_IO_TRACE is not set
154CONFIG_BLK_DEV_BSG=y 161CONFIG_BLK_DEV_BSG=y
155# CONFIG_BLK_DEV_INTEGRITY is not set 162# CONFIG_BLK_DEV_INTEGRITY is not set
156CONFIG_BLOCK_COMPAT=y 163CONFIG_BLOCK_COMPAT=y
@@ -172,7 +179,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
172# 179#
173# Platform support 180# Platform support
174# 181#
175CONFIG_PPC_MULTIPLATFORM=y
176# CONFIG_PPC_PSERIES is not set 182# CONFIG_PPC_PSERIES is not set
177# CONFIG_PPC_ISERIES is not set 183# CONFIG_PPC_ISERIES is not set
178# CONFIG_PPC_PMAC is not set 184# CONFIG_PPC_PMAC is not set
@@ -209,6 +215,7 @@ CONFIG_SPU_FS_64K_LS=y
209# CONFIG_SPU_TRACE is not set 215# CONFIG_SPU_TRACE is not set
210CONFIG_SPU_BASE=y 216CONFIG_SPU_BASE=y
211# CONFIG_PQ2ADS is not set 217# CONFIG_PQ2ADS is not set
218# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
212# CONFIG_IPIC is not set 219# CONFIG_IPIC is not set
213# CONFIG_MPIC is not set 220# CONFIG_MPIC is not set
214# CONFIG_MPIC_WEIRD is not set 221# CONFIG_MPIC_WEIRD is not set
@@ -279,11 +286,14 @@ CONFIG_PHYS_ADDR_T_64BIT=y
279CONFIG_ZONE_DMA_FLAG=1 286CONFIG_ZONE_DMA_FLAG=1
280CONFIG_BOUNCE=y 287CONFIG_BOUNCE=y
281CONFIG_UNEVICTABLE_LRU=y 288CONFIG_UNEVICTABLE_LRU=y
289CONFIG_HAVE_MLOCK=y
290CONFIG_HAVE_MLOCKED_PAGE_BIT=y
282CONFIG_ARCH_MEMORY_PROBE=y 291CONFIG_ARCH_MEMORY_PROBE=y
283CONFIG_PPC_HAS_HASH_64K=y 292CONFIG_PPC_HAS_HASH_64K=y
284CONFIG_PPC_4K_PAGES=y 293CONFIG_PPC_4K_PAGES=y
285# CONFIG_PPC_16K_PAGES is not set 294# CONFIG_PPC_16K_PAGES is not set
286# CONFIG_PPC_64K_PAGES is not set 295# CONFIG_PPC_64K_PAGES is not set
296# CONFIG_PPC_256K_PAGES is not set
287CONFIG_FORCE_MAX_ZONEORDER=13 297CONFIG_FORCE_MAX_ZONEORDER=13
288CONFIG_SCHED_SMT=y 298CONFIG_SCHED_SMT=y
289CONFIG_PROC_DEVICETREE=y 299CONFIG_PROC_DEVICETREE=y
@@ -316,7 +326,6 @@ CONFIG_NET=y
316# 326#
317# Networking options 327# Networking options
318# 328#
319CONFIG_COMPAT_NET_DEV_OPS=y
320CONFIG_PACKET=y 329CONFIG_PACKET=y
321CONFIG_PACKET_MMAP=y 330CONFIG_PACKET_MMAP=y
322CONFIG_UNIX=y 331CONFIG_UNIX=y
@@ -389,6 +398,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
389# CONFIG_LAPB is not set 398# CONFIG_LAPB is not set
390# CONFIG_ECONET is not set 399# CONFIG_ECONET is not set
391# CONFIG_WAN_ROUTER is not set 400# CONFIG_WAN_ROUTER is not set
401# CONFIG_PHONET is not set
392# CONFIG_NET_SCHED is not set 402# CONFIG_NET_SCHED is not set
393# CONFIG_DCB is not set 403# CONFIG_DCB is not set
394 404
@@ -396,6 +406,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
396# Network testing 406# Network testing
397# 407#
398# CONFIG_NET_PKTGEN is not set 408# CONFIG_NET_PKTGEN is not set
409# CONFIG_NET_DROP_MONITOR is not set
399# CONFIG_HAMRADIO is not set 410# CONFIG_HAMRADIO is not set
400# CONFIG_CAN is not set 411# CONFIG_CAN is not set
401# CONFIG_IRDA is not set 412# CONFIG_IRDA is not set
@@ -419,11 +430,9 @@ CONFIG_BT_HCIBTUSB=m
419# CONFIG_BT_HCIBFUSB is not set 430# CONFIG_BT_HCIBFUSB is not set
420# CONFIG_BT_HCIVHCI is not set 431# CONFIG_BT_HCIVHCI is not set
421# CONFIG_AF_RXRPC is not set 432# CONFIG_AF_RXRPC is not set
422# CONFIG_PHONET is not set
423CONFIG_WIRELESS=y 433CONFIG_WIRELESS=y
424CONFIG_CFG80211=m 434CONFIG_CFG80211=m
425# CONFIG_CFG80211_REG_DEBUG is not set 435# CONFIG_CFG80211_REG_DEBUG is not set
426CONFIG_NL80211=y
427# CONFIG_WIRELESS_OLD_REGULATORY is not set 436# CONFIG_WIRELESS_OLD_REGULATORY is not set
428CONFIG_WIRELESS_EXT=y 437CONFIG_WIRELESS_EXT=y
429# CONFIG_WIRELESS_EXT_SYSFS is not set 438# CONFIG_WIRELESS_EXT_SYSFS is not set
@@ -602,6 +611,7 @@ CONFIG_SCSI_WAIT_SCAN=m
602# CONFIG_SCSI_SRP_ATTRS is not set 611# CONFIG_SCSI_SRP_ATTRS is not set
603# CONFIG_SCSI_LOWLEVEL is not set 612# CONFIG_SCSI_LOWLEVEL is not set
604# CONFIG_SCSI_DH is not set 613# CONFIG_SCSI_DH is not set
614# CONFIG_SCSI_OSD_INITIATOR is not set
605# CONFIG_ATA is not set 615# CONFIG_ATA is not set
606CONFIG_MD=y 616CONFIG_MD=y
607# CONFIG_BLK_DEV_MD is not set 617# CONFIG_BLK_DEV_MD is not set
@@ -616,6 +626,7 @@ CONFIG_BLK_DEV_DM=m
616# CONFIG_DM_UEVENT is not set 626# CONFIG_DM_UEVENT is not set
617# CONFIG_MACINTOSH_DRIVERS is not set 627# CONFIG_MACINTOSH_DRIVERS is not set
618CONFIG_NETDEVICES=y 628CONFIG_NETDEVICES=y
629CONFIG_COMPAT_NET_DEV_OPS=y
619# CONFIG_DUMMY is not set 630# CONFIG_DUMMY is not set
620# CONFIG_BONDING is not set 631# CONFIG_BONDING is not set
621# CONFIG_MACVLAN is not set 632# CONFIG_MACVLAN is not set
@@ -625,6 +636,8 @@ CONFIG_NETDEVICES=y
625# CONFIG_PHYLIB is not set 636# CONFIG_PHYLIB is not set
626CONFIG_NET_ETHERNET=y 637CONFIG_NET_ETHERNET=y
627CONFIG_MII=m 638CONFIG_MII=m
639# CONFIG_ETHOC is not set
640# CONFIG_DNET is not set
628# CONFIG_IBM_NEW_EMAC_ZMII is not set 641# CONFIG_IBM_NEW_EMAC_ZMII is not set
629# CONFIG_IBM_NEW_EMAC_RGMII is not set 642# CONFIG_IBM_NEW_EMAC_RGMII is not set
630# CONFIG_IBM_NEW_EMAC_TAH is not set 643# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -646,12 +659,13 @@ CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE=y
646CONFIG_WLAN_80211=y 659CONFIG_WLAN_80211=y
647# CONFIG_LIBERTAS is not set 660# CONFIG_LIBERTAS is not set
648# CONFIG_LIBERTAS_THINFIRM is not set 661# CONFIG_LIBERTAS_THINFIRM is not set
662# CONFIG_AT76C50X_USB is not set
649# CONFIG_USB_ZD1201 is not set 663# CONFIG_USB_ZD1201 is not set
650# CONFIG_USB_NET_RNDIS_WLAN is not set 664# CONFIG_USB_NET_RNDIS_WLAN is not set
651# CONFIG_RTL8187 is not set 665# CONFIG_RTL8187 is not set
652# CONFIG_MAC80211_HWSIM is not set 666# CONFIG_MAC80211_HWSIM is not set
653# CONFIG_P54_COMMON is not set 667# CONFIG_P54_COMMON is not set
654# CONFIG_IWLWIFI_LEDS is not set 668# CONFIG_AR9170_USB is not set
655# CONFIG_HOSTAP is not set 669# CONFIG_HOSTAP is not set
656# CONFIG_B43 is not set 670# CONFIG_B43 is not set
657# CONFIG_B43LEGACY is not set 671# CONFIG_B43LEGACY is not set
@@ -673,6 +687,7 @@ CONFIG_USB_PEGASUS=m
673CONFIG_USB_USBNET=m 687CONFIG_USB_USBNET=m
674CONFIG_USB_NET_AX8817X=m 688CONFIG_USB_NET_AX8817X=m
675# CONFIG_USB_NET_CDCETHER is not set 689# CONFIG_USB_NET_CDCETHER is not set
690# CONFIG_USB_NET_CDC_EEM is not set
676# CONFIG_USB_NET_DM9601 is not set 691# CONFIG_USB_NET_DM9601 is not set
677# CONFIG_USB_NET_SMSC95XX is not set 692# CONFIG_USB_NET_SMSC95XX is not set
678# CONFIG_USB_NET_GL620A is not set 693# CONFIG_USB_NET_GL620A is not set
@@ -724,28 +739,7 @@ CONFIG_INPUT_EVDEV=m
724# 739#
725# CONFIG_INPUT_KEYBOARD is not set 740# CONFIG_INPUT_KEYBOARD is not set
726# CONFIG_INPUT_MOUSE is not set 741# CONFIG_INPUT_MOUSE is not set
727CONFIG_INPUT_JOYSTICK=y 742# CONFIG_INPUT_JOYSTICK is not set
728# CONFIG_JOYSTICK_ANALOG is not set
729# CONFIG_JOYSTICK_A3D is not set
730# CONFIG_JOYSTICK_ADI is not set
731# CONFIG_JOYSTICK_COBRA is not set
732# CONFIG_JOYSTICK_GF2K is not set
733# CONFIG_JOYSTICK_GRIP is not set
734# CONFIG_JOYSTICK_GRIP_MP is not set
735# CONFIG_JOYSTICK_GUILLEMOT is not set
736# CONFIG_JOYSTICK_INTERACT is not set
737# CONFIG_JOYSTICK_SIDEWINDER is not set
738# CONFIG_JOYSTICK_TMDC is not set
739# CONFIG_JOYSTICK_IFORCE is not set
740# CONFIG_JOYSTICK_WARRIOR is not set
741# CONFIG_JOYSTICK_MAGELLAN is not set
742# CONFIG_JOYSTICK_SPACEORB is not set
743# CONFIG_JOYSTICK_SPACEBALL is not set
744# CONFIG_JOYSTICK_STINGER is not set
745# CONFIG_JOYSTICK_TWIDJOY is not set
746# CONFIG_JOYSTICK_ZHENHUA is not set
747# CONFIG_JOYSTICK_JOYDUMP is not set
748# CONFIG_JOYSTICK_XPAD is not set
749# CONFIG_INPUT_TABLET is not set 743# CONFIG_INPUT_TABLET is not set
750# CONFIG_INPUT_TOUCHSCREEN is not set 744# CONFIG_INPUT_TOUCHSCREEN is not set
751# CONFIG_INPUT_MISC is not set 745# CONFIG_INPUT_MISC is not set
@@ -864,6 +858,7 @@ CONFIG_FB_PS3_DEFAULT_SIZE_M=9
864# CONFIG_FB_VIRTUAL is not set 858# CONFIG_FB_VIRTUAL is not set
865# CONFIG_FB_METRONOME is not set 859# CONFIG_FB_METRONOME is not set
866# CONFIG_FB_MB862XX is not set 860# CONFIG_FB_MB862XX is not set
861# CONFIG_FB_BROADSHEET is not set
867# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 862# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
868 863
869# 864#
@@ -934,15 +929,17 @@ CONFIG_USB_HIDDEV=y
934# 929#
935# Special HID drivers 930# Special HID drivers
936# 931#
937# CONFIG_HID_COMPAT is not set
938# CONFIG_HID_A4TECH is not set 932# CONFIG_HID_A4TECH is not set
939# CONFIG_HID_APPLE is not set 933# CONFIG_HID_APPLE is not set
940# CONFIG_HID_BELKIN is not set 934# CONFIG_HID_BELKIN is not set
941# CONFIG_HID_CHERRY is not set 935# CONFIG_HID_CHERRY is not set
942# CONFIG_HID_CHICONY is not set 936# CONFIG_HID_CHICONY is not set
943# CONFIG_HID_CYPRESS is not set 937# CONFIG_HID_CYPRESS is not set
938# CONFIG_DRAGONRISE_FF is not set
944# CONFIG_HID_EZKEY is not set 939# CONFIG_HID_EZKEY is not set
940# CONFIG_HID_KYE is not set
945# CONFIG_HID_GYRATION is not set 941# CONFIG_HID_GYRATION is not set
942# CONFIG_HID_KENSINGTON is not set
946# CONFIG_HID_LOGITECH is not set 943# CONFIG_HID_LOGITECH is not set
947# CONFIG_HID_MICROSOFT is not set 944# CONFIG_HID_MICROSOFT is not set
948# CONFIG_HID_MONTEREY is not set 945# CONFIG_HID_MONTEREY is not set
@@ -950,7 +947,7 @@ CONFIG_USB_HIDDEV=y
950# CONFIG_HID_PANTHERLORD is not set 947# CONFIG_HID_PANTHERLORD is not set
951# CONFIG_HID_PETALYNX is not set 948# CONFIG_HID_PETALYNX is not set
952# CONFIG_HID_SAMSUNG is not set 949# CONFIG_HID_SAMSUNG is not set
953# CONFIG_HID_SONY is not set 950CONFIG_HID_SONY=m
954# CONFIG_HID_SUNPLUS is not set 951# CONFIG_HID_SUNPLUS is not set
955# CONFIG_GREENASIA_FF is not set 952# CONFIG_GREENASIA_FF is not set
956# CONFIG_HID_TOPSEED is not set 953# CONFIG_HID_TOPSEED is not set
@@ -1012,11 +1009,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1012# CONFIG_USB_TMC is not set 1009# CONFIG_USB_TMC is not set
1013 1010
1014# 1011#
1015# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1012# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1016# 1013#
1017 1014
1018# 1015#
1019# see USB_STORAGE Help for more information 1016# also be needed; see USB_STORAGE Help for more info
1020# 1017#
1021CONFIG_USB_STORAGE=m 1018CONFIG_USB_STORAGE=m
1022# CONFIG_USB_STORAGE_DEBUG is not set 1019# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1058,7 +1055,6 @@ CONFIG_USB_STORAGE=m
1058# CONFIG_USB_LED is not set 1055# CONFIG_USB_LED is not set
1059# CONFIG_USB_CYPRESS_CY7C63 is not set 1056# CONFIG_USB_CYPRESS_CY7C63 is not set
1060# CONFIG_USB_CYTHERM is not set 1057# CONFIG_USB_CYTHERM is not set
1061# CONFIG_USB_PHIDGET is not set
1062# CONFIG_USB_IDMOUSE is not set 1058# CONFIG_USB_IDMOUSE is not set
1063# CONFIG_USB_FTDI_ELAN is not set 1059# CONFIG_USB_FTDI_ELAN is not set
1064# CONFIG_USB_APPLEDISPLAY is not set 1060# CONFIG_USB_APPLEDISPLAY is not set
@@ -1074,6 +1070,7 @@ CONFIG_USB_STORAGE=m
1074# 1070#
1075# OTG and related infrastructure 1071# OTG and related infrastructure
1076# 1072#
1073# CONFIG_NOP_USB_XCEIV is not set
1077# CONFIG_MMC is not set 1074# CONFIG_MMC is not set
1078# CONFIG_MEMSTICK is not set 1075# CONFIG_MEMSTICK is not set
1079# CONFIG_NEW_LEDS is not set 1076# CONFIG_NEW_LEDS is not set
@@ -1113,8 +1110,10 @@ CONFIG_RTC_INTF_DEV=y
1113# 1110#
1114# on-CPU RTC drivers 1111# on-CPU RTC drivers
1115# 1112#
1116CONFIG_RTC_DRV_PPC=m 1113# CONFIG_RTC_DRV_GENERIC is not set
1114CONFIG_RTC_DRV_PS3=m
1117# CONFIG_DMADEVICES is not set 1115# CONFIG_DMADEVICES is not set
1116# CONFIG_AUXDISPLAY is not set
1118# CONFIG_UIO is not set 1117# CONFIG_UIO is not set
1119# CONFIG_STAGING is not set 1118# CONFIG_STAGING is not set
1120 1119
@@ -1125,6 +1124,7 @@ CONFIG_EXT2_FS=m
1125# CONFIG_EXT2_FS_XATTR is not set 1124# CONFIG_EXT2_FS_XATTR is not set
1126# CONFIG_EXT2_FS_XIP is not set 1125# CONFIG_EXT2_FS_XIP is not set
1127CONFIG_EXT3_FS=m 1126CONFIG_EXT3_FS=m
1127# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1128CONFIG_EXT3_FS_XATTR=y 1128CONFIG_EXT3_FS_XATTR=y
1129# CONFIG_EXT3_FS_POSIX_ACL is not set 1129# CONFIG_EXT3_FS_POSIX_ACL is not set
1130# CONFIG_EXT3_FS_SECURITY is not set 1130# CONFIG_EXT3_FS_SECURITY is not set
@@ -1161,6 +1161,11 @@ CONFIG_AUTOFS4_FS=m
1161# CONFIG_FUSE_FS is not set 1161# CONFIG_FUSE_FS is not set
1162 1162
1163# 1163#
1164# Caches
1165#
1166# CONFIG_FSCACHE is not set
1167
1168#
1164# CD-ROM/DVD Filesystems 1169# CD-ROM/DVD Filesystems
1165# 1170#
1166CONFIG_ISO9660_FS=m 1171CONFIG_ISO9660_FS=m
@@ -1211,6 +1216,7 @@ CONFIG_MISC_FILESYSTEMS=y
1211# CONFIG_ROMFS_FS is not set 1216# CONFIG_ROMFS_FS is not set
1212# CONFIG_SYSV_FS is not set 1217# CONFIG_SYSV_FS is not set
1213# CONFIG_UFS_FS is not set 1218# CONFIG_UFS_FS is not set
1219# CONFIG_NILFS2_FS is not set
1214CONFIG_NETWORK_FILESYSTEMS=y 1220CONFIG_NETWORK_FILESYSTEMS=y
1215CONFIG_NFS_FS=y 1221CONFIG_NFS_FS=y
1216CONFIG_NFS_V3=y 1222CONFIG_NFS_V3=y
@@ -1223,7 +1229,6 @@ CONFIG_LOCKD_V4=y
1223CONFIG_NFS_COMMON=y 1229CONFIG_NFS_COMMON=y
1224CONFIG_SUNRPC=y 1230CONFIG_SUNRPC=y
1225CONFIG_SUNRPC_GSS=y 1231CONFIG_SUNRPC_GSS=y
1226# CONFIG_SUNRPC_REGISTER_V4 is not set
1227CONFIG_RPCSEC_GSS_KRB5=y 1232CONFIG_RPCSEC_GSS_KRB5=y
1228# CONFIG_RPCSEC_GSS_SPKM3 is not set 1233# CONFIG_RPCSEC_GSS_SPKM3 is not set
1229# CONFIG_SMB_FS is not set 1234# CONFIG_SMB_FS is not set
@@ -1283,6 +1288,7 @@ CONFIG_NLS_ISO8859_1=y
1283# CONFIG_NLS_KOI8_U is not set 1288# CONFIG_NLS_KOI8_U is not set
1284# CONFIG_NLS_UTF8 is not set 1289# CONFIG_NLS_UTF8 is not set
1285# CONFIG_DLM is not set 1290# CONFIG_DLM is not set
1291CONFIG_BINARY_PRINTF=y
1286 1292
1287# 1293#
1288# Library routines 1294# Library routines
@@ -1296,15 +1302,16 @@ CONFIG_CRC_ITU_T=m
1296CONFIG_CRC32=y 1302CONFIG_CRC32=y
1297# CONFIG_CRC7 is not set 1303# CONFIG_CRC7 is not set
1298# CONFIG_LIBCRC32C is not set 1304# CONFIG_LIBCRC32C is not set
1299CONFIG_ZLIB_INFLATE=m 1305CONFIG_ZLIB_INFLATE=y
1300CONFIG_ZLIB_DEFLATE=m 1306CONFIG_ZLIB_DEFLATE=m
1301CONFIG_LZO_COMPRESS=m 1307CONFIG_LZO_COMPRESS=m
1302CONFIG_LZO_DECOMPRESS=m 1308CONFIG_LZO_DECOMPRESS=m
1303CONFIG_PLIST=y 1309CONFIG_DECOMPRESS_GZIP=y
1304CONFIG_HAS_IOMEM=y 1310CONFIG_HAS_IOMEM=y
1305CONFIG_HAS_IOPORT=y 1311CONFIG_HAS_IOPORT=y
1306CONFIG_HAS_DMA=y 1312CONFIG_HAS_DMA=y
1307CONFIG_HAVE_LMB=y 1313CONFIG_HAVE_LMB=y
1314CONFIG_NLATTR=y
1308 1315
1309# 1316#
1310# Kernel hacking 1317# Kernel hacking
@@ -1322,6 +1329,9 @@ CONFIG_DEBUG_KERNEL=y
1322CONFIG_DETECT_SOFTLOCKUP=y 1329CONFIG_DETECT_SOFTLOCKUP=y
1323# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1330# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1324CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1331CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1332CONFIG_DETECT_HUNG_TASK=y
1333# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1334CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1325CONFIG_SCHED_DEBUG=y 1335CONFIG_SCHED_DEBUG=y
1326# CONFIG_SCHEDSTATS is not set 1336# CONFIG_SCHEDSTATS is not set
1327# CONFIG_TIMER_STATS is not set 1337# CONFIG_TIMER_STATS is not set
@@ -1357,12 +1367,15 @@ CONFIG_DEBUG_LIST=y
1357# CONFIG_FAULT_INJECTION is not set 1367# CONFIG_FAULT_INJECTION is not set
1358# CONFIG_LATENCYTOP is not set 1368# CONFIG_LATENCYTOP is not set
1359CONFIG_SYSCTL_SYSCALL_CHECK=y 1369CONFIG_SYSCTL_SYSCALL_CHECK=y
1370# CONFIG_DEBUG_PAGEALLOC is not set
1360CONFIG_NOP_TRACER=y 1371CONFIG_NOP_TRACER=y
1361CONFIG_HAVE_FUNCTION_TRACER=y 1372CONFIG_HAVE_FUNCTION_TRACER=y
1373CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1362CONFIG_HAVE_DYNAMIC_FTRACE=y 1374CONFIG_HAVE_DYNAMIC_FTRACE=y
1363CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1375CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1364CONFIG_RING_BUFFER=y 1376CONFIG_RING_BUFFER=y
1365CONFIG_TRACING=y 1377CONFIG_TRACING=y
1378CONFIG_TRACING_SUPPORT=y
1366 1379
1367# 1380#
1368# Tracers 1381# Tracers
@@ -1371,18 +1384,21 @@ CONFIG_TRACING=y
1371# CONFIG_IRQSOFF_TRACER is not set 1384# CONFIG_IRQSOFF_TRACER is not set
1372# CONFIG_SCHED_TRACER is not set 1385# CONFIG_SCHED_TRACER is not set
1373# CONFIG_CONTEXT_SWITCH_TRACER is not set 1386# CONFIG_CONTEXT_SWITCH_TRACER is not set
1387# CONFIG_EVENT_TRACER is not set
1374# CONFIG_BOOT_TRACER is not set 1388# CONFIG_BOOT_TRACER is not set
1375# CONFIG_TRACE_BRANCH_PROFILING is not set 1389# CONFIG_TRACE_BRANCH_PROFILING is not set
1376# CONFIG_STACK_TRACER is not set 1390# CONFIG_STACK_TRACER is not set
1391# CONFIG_KMEMTRACE is not set
1392# CONFIG_WORKQUEUE_TRACER is not set
1393# CONFIG_BLK_DEV_IO_TRACE is not set
1377# CONFIG_FTRACE_STARTUP_TEST is not set 1394# CONFIG_FTRACE_STARTUP_TEST is not set
1378# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1395# CONFIG_DYNAMIC_DEBUG is not set
1379# CONFIG_SAMPLES is not set 1396# CONFIG_SAMPLES is not set
1380CONFIG_HAVE_ARCH_KGDB=y 1397CONFIG_HAVE_ARCH_KGDB=y
1381# CONFIG_KGDB is not set 1398# CONFIG_KGDB is not set
1382CONFIG_PRINT_STACK_DEPTH=64 1399CONFIG_PRINT_STACK_DEPTH=64
1383CONFIG_DEBUG_STACKOVERFLOW=y 1400CONFIG_DEBUG_STACKOVERFLOW=y
1384# CONFIG_DEBUG_STACK_USAGE is not set 1401# CONFIG_DEBUG_STACK_USAGE is not set
1385# CONFIG_DEBUG_PAGEALLOC is not set
1386# CONFIG_CODE_PATCHING_SELFTEST is not set 1402# CONFIG_CODE_PATCHING_SELFTEST is not set
1387# CONFIG_FTR_FIXUP_SELFTEST is not set 1403# CONFIG_FTR_FIXUP_SELFTEST is not set
1388# CONFIG_MSI_BITMAP_SELFTEST is not set 1404# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1415,10 +1431,12 @@ CONFIG_CRYPTO_HASH=y
1415CONFIG_CRYPTO_HASH2=y 1431CONFIG_CRYPTO_HASH2=y
1416CONFIG_CRYPTO_RNG=m 1432CONFIG_CRYPTO_RNG=m
1417CONFIG_CRYPTO_RNG2=y 1433CONFIG_CRYPTO_RNG2=y
1434CONFIG_CRYPTO_PCOMP=y
1418CONFIG_CRYPTO_MANAGER=y 1435CONFIG_CRYPTO_MANAGER=y
1419CONFIG_CRYPTO_MANAGER2=y 1436CONFIG_CRYPTO_MANAGER2=y
1420CONFIG_CRYPTO_GF128MUL=m 1437CONFIG_CRYPTO_GF128MUL=m
1421# CONFIG_CRYPTO_NULL is not set 1438# CONFIG_CRYPTO_NULL is not set
1439CONFIG_CRYPTO_WORKQUEUE=y
1422# CONFIG_CRYPTO_CRYPTD is not set 1440# CONFIG_CRYPTO_CRYPTD is not set
1423# CONFIG_CRYPTO_AUTHENC is not set 1441# CONFIG_CRYPTO_AUTHENC is not set
1424# CONFIG_CRYPTO_TEST is not set 1442# CONFIG_CRYPTO_TEST is not set
@@ -1487,6 +1505,7 @@ CONFIG_CRYPTO_SALSA20=m
1487# Compression 1505# Compression
1488# 1506#
1489# CONFIG_CRYPTO_DEFLATE is not set 1507# CONFIG_CRYPTO_DEFLATE is not set
1508# CONFIG_CRYPTO_ZLIB is not set
1490CONFIG_CRYPTO_LZO=m 1509CONFIG_CRYPTO_LZO=m
1491 1510
1492# 1511#
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index 94903465ea12..bd4a8d435c50 100644
--- a/arch/powerpc/configs/storcenter_defconfig
+++ b/arch/powerpc/configs/storcenter_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc6 3# Linux kernel version: 2.6.30-rc3
4# Fri Mar 6 00:09:08 2009 4# Wed May 13 17:22:04 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -54,6 +55,7 @@ CONFIG_GENERIC_BUG=y
54# CONFIG_DEFAULT_UIMAGE is not set 55# CONFIG_DEFAULT_UIMAGE is not set
55# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 60
59# 61#
@@ -95,17 +97,17 @@ CONFIG_SYSFS_DEPRECATED_V2=y
95# CONFIG_BLK_DEV_INITRD is not set 97# CONFIG_BLK_DEV_INITRD is not set
96CONFIG_CC_OPTIMIZE_FOR_SIZE=y 98CONFIG_CC_OPTIMIZE_FOR_SIZE=y
97CONFIG_SYSCTL=y 99CONFIG_SYSCTL=y
100CONFIG_ANON_INODES=y
98CONFIG_EMBEDDED=y 101CONFIG_EMBEDDED=y
99CONFIG_SYSCTL_SYSCALL=y 102CONFIG_SYSCTL_SYSCALL=y
100# CONFIG_KALLSYMS is not set 103# CONFIG_KALLSYMS is not set
104# CONFIG_STRIP_ASM_SYMS is not set
101CONFIG_HOTPLUG=y 105CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 106CONFIG_PRINTK=y
103CONFIG_BUG=y 107CONFIG_BUG=y
104CONFIG_ELF_CORE=y 108CONFIG_ELF_CORE=y
105CONFIG_COMPAT_BRK=y
106CONFIG_BASE_FULL=y 109CONFIG_BASE_FULL=y
107CONFIG_FUTEX=y 110CONFIG_FUTEX=y
108CONFIG_ANON_INODES=y
109CONFIG_EPOLL=y 111CONFIG_EPOLL=y
110CONFIG_SIGNALFD=y 112CONFIG_SIGNALFD=y
111CONFIG_TIMERFD=y 113CONFIG_TIMERFD=y
@@ -115,16 +117,19 @@ CONFIG_AIO=y
115CONFIG_VM_EVENT_COUNTERS=y 117CONFIG_VM_EVENT_COUNTERS=y
116CONFIG_PCI_QUIRKS=y 118CONFIG_PCI_QUIRKS=y
117CONFIG_SLUB_DEBUG=y 119CONFIG_SLUB_DEBUG=y
120CONFIG_COMPAT_BRK=y
118# CONFIG_SLAB is not set 121# CONFIG_SLAB is not set
119CONFIG_SLUB=y 122CONFIG_SLUB=y
120# CONFIG_SLOB is not set 123# CONFIG_SLOB is not set
121# CONFIG_PROFILING is not set 124# CONFIG_PROFILING is not set
125# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 126CONFIG_HAVE_OPROFILE=y
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y 128CONFIG_HAVE_IOREMAP_PROT=y
125CONFIG_HAVE_KPROBES=y 129CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 130CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 131CONFIG_HAVE_ARCH_TRACEHOOK=y
132# CONFIG_SLOW_WORK is not set
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 134CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 135CONFIG_RT_MUTEXES=y
@@ -137,7 +142,6 @@ CONFIG_MODULE_UNLOAD=y
137# CONFIG_MODULE_SRCVERSION_ALL is not set 142# CONFIG_MODULE_SRCVERSION_ALL is not set
138CONFIG_BLOCK=y 143CONFIG_BLOCK=y
139CONFIG_LBD=y 144CONFIG_LBD=y
140# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set 146# CONFIG_BLK_DEV_INTEGRITY is not set
143 147
@@ -158,8 +162,6 @@ CONFIG_DEFAULT_IOSCHED="cfq"
158# 162#
159# Platform support 163# Platform support
160# 164#
161CONFIG_PPC_MULTIPLATFORM=y
162CONFIG_CLASSIC32=y
163# CONFIG_PPC_CHRP is not set 165# CONFIG_PPC_CHRP is not set
164# CONFIG_MPC5121_ADS is not set 166# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set 167# CONFIG_MPC5121_GENERIC is not set
@@ -181,6 +183,8 @@ CONFIG_STORCENTER=y
181CONFIG_MPC10X_BRIDGE=y 183CONFIG_MPC10X_BRIDGE=y
182CONFIG_MPC10X_OPENPIC=y 184CONFIG_MPC10X_OPENPIC=y
183# CONFIG_MPC10X_STORE_GATHERING is not set 185# CONFIG_MPC10X_STORE_GATHERING is not set
186# CONFIG_AMIGAONE is not set
187CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
184# CONFIG_IPIC is not set 188# CONFIG_IPIC is not set
185CONFIG_MPIC=y 189CONFIG_MPIC=y
186# CONFIG_MPIC_WEIRD is not set 190# CONFIG_MPIC_WEIRD is not set
@@ -239,9 +243,12 @@ CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_HAVE_MLOCK=y
247CONFIG_HAVE_MLOCKED_PAGE_BIT=y
242CONFIG_PPC_4K_PAGES=y 248CONFIG_PPC_4K_PAGES=y
243# CONFIG_PPC_16K_PAGES is not set 249# CONFIG_PPC_16K_PAGES is not set
244# CONFIG_PPC_64K_PAGES is not set 250# CONFIG_PPC_64K_PAGES is not set
251# CONFIG_PPC_256K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
247CONFIG_CMDLINE_BOOL=y 254CONFIG_CMDLINE_BOOL=y
@@ -266,6 +273,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
266# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
267# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
268# CONFIG_PCI_STUB is not set 275# CONFIG_PCI_STUB is not set
276# CONFIG_PCI_IOV is not set
269# CONFIG_PCCARD is not set 277# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 278# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 279# CONFIG_HAS_RAPIDIO is not set
@@ -288,7 +296,6 @@ CONFIG_NET=y
288# 296#
289# Networking options 297# Networking options
290# 298#
291CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=m 299CONFIG_PACKET=m
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -339,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_LAPB is not set 346# CONFIG_LAPB is not set
340# CONFIG_ECONET is not set 347# CONFIG_ECONET is not set
341# CONFIG_WAN_ROUTER is not set 348# CONFIG_WAN_ROUTER is not set
349# CONFIG_PHONET is not set
342# CONFIG_NET_SCHED is not set 350# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set 351# CONFIG_DCB is not set
344 352
@@ -351,7 +359,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_IRDA is not set 359# CONFIG_IRDA is not set
352# CONFIG_BT is not set 360# CONFIG_BT is not set
353# CONFIG_AF_RXRPC is not set 361# CONFIG_AF_RXRPC is not set
354# CONFIG_PHONET is not set
355CONFIG_WIRELESS=y 362CONFIG_WIRELESS=y
356# CONFIG_CFG80211 is not set 363# CONFIG_CFG80211 is not set
357CONFIG_WIRELESS_OLD_REGULATORY=y 364CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -486,6 +493,7 @@ CONFIG_MISC_DEVICES=y
486# CONFIG_ICS932S401 is not set 493# CONFIG_ICS932S401 is not set
487# CONFIG_ENCLOSURE_SERVICES is not set 494# CONFIG_ENCLOSURE_SERVICES is not set
488# CONFIG_HP_ILO is not set 495# CONFIG_HP_ILO is not set
496# CONFIG_ISL29003 is not set
489# CONFIG_C2PORT is not set 497# CONFIG_C2PORT is not set
490 498
491# 499#
@@ -500,6 +508,7 @@ CONFIG_IDE=y
500# 508#
501# Please see Documentation/ide/ide.txt for help/info on IDE drives 509# Please see Documentation/ide/ide.txt for help/info on IDE drives
502# 510#
511CONFIG_IDE_XFER_MODE=y
503CONFIG_IDE_TIMINGS=y 512CONFIG_IDE_TIMINGS=y
504# CONFIG_BLK_DEV_IDE_SATA is not set 513# CONFIG_BLK_DEV_IDE_SATA is not set
505CONFIG_IDE_GD=y 514CONFIG_IDE_GD=y
@@ -604,9 +613,11 @@ CONFIG_SCSI_LOWLEVEL=y
604# CONFIG_MEGARAID_NEWGEN is not set 613# CONFIG_MEGARAID_NEWGEN is not set
605# CONFIG_MEGARAID_LEGACY is not set 614# CONFIG_MEGARAID_LEGACY is not set
606# CONFIG_MEGARAID_SAS is not set 615# CONFIG_MEGARAID_SAS is not set
616# CONFIG_SCSI_MPT2SAS is not set
607# CONFIG_SCSI_HPTIOP is not set 617# CONFIG_SCSI_HPTIOP is not set
608# CONFIG_SCSI_BUSLOGIC is not set 618# CONFIG_SCSI_BUSLOGIC is not set
609# CONFIG_LIBFC is not set 619# CONFIG_LIBFC is not set
620# CONFIG_LIBFCOE is not set
610# CONFIG_FCOE is not set 621# CONFIG_FCOE is not set
611# CONFIG_SCSI_DMX3191D is not set 622# CONFIG_SCSI_DMX3191D is not set
612# CONFIG_SCSI_EATA is not set 623# CONFIG_SCSI_EATA is not set
@@ -628,6 +639,7 @@ CONFIG_SCSI_LOWLEVEL=y
628# CONFIG_SCSI_DEBUG is not set 639# CONFIG_SCSI_DEBUG is not set
629# CONFIG_SCSI_SRP is not set 640# CONFIG_SCSI_SRP is not set
630# CONFIG_SCSI_DH is not set 641# CONFIG_SCSI_DH is not set
642# CONFIG_SCSI_OSD_INITIATOR is not set
631# CONFIG_ATA is not set 643# CONFIG_ATA is not set
632CONFIG_MD=y 644CONFIG_MD=y
633CONFIG_BLK_DEV_MD=y 645CONFIG_BLK_DEV_MD=y
@@ -637,7 +649,7 @@ CONFIG_MD_RAID0=y
637CONFIG_MD_RAID1=y 649CONFIG_MD_RAID1=y
638# CONFIG_MD_RAID10 is not set 650# CONFIG_MD_RAID10 is not set
639CONFIG_MD_RAID456=y 651CONFIG_MD_RAID456=y
640CONFIG_MD_RAID5_RESHAPE=y 652CONFIG_MD_RAID6_PQ=y
641# CONFIG_MD_MULTIPATH is not set 653# CONFIG_MD_MULTIPATH is not set
642# CONFIG_MD_FAULTY is not set 654# CONFIG_MD_FAULTY is not set
643# CONFIG_BLK_DEV_DM is not set 655# CONFIG_BLK_DEV_DM is not set
@@ -655,6 +667,7 @@ CONFIG_MD_RAID5_RESHAPE=y
655# CONFIG_I2O is not set 667# CONFIG_I2O is not set
656# CONFIG_MACINTOSH_DRIVERS is not set 668# CONFIG_MACINTOSH_DRIVERS is not set
657CONFIG_NETDEVICES=y 669CONFIG_NETDEVICES=y
670CONFIG_COMPAT_NET_DEV_OPS=y
658CONFIG_DUMMY=m 671CONFIG_DUMMY=m
659# CONFIG_BONDING is not set 672# CONFIG_BONDING is not set
660# CONFIG_MACVLAN is not set 673# CONFIG_MACVLAN is not set
@@ -671,6 +684,7 @@ CONFIG_NETDEV_1000=y
671# CONFIG_E1000E is not set 684# CONFIG_E1000E is not set
672# CONFIG_IP1000 is not set 685# CONFIG_IP1000 is not set
673# CONFIG_IGB is not set 686# CONFIG_IGB is not set
687# CONFIG_IGBVF is not set
674# CONFIG_NS83820 is not set 688# CONFIG_NS83820 is not set
675# CONFIG_HAMACHI is not set 689# CONFIG_HAMACHI is not set
676# CONFIG_YELLOWFIN is not set 690# CONFIG_YELLOWFIN is not set
@@ -681,8 +695,8 @@ CONFIG_R8169=y
681# CONFIG_VIA_VELOCITY is not set 695# CONFIG_VIA_VELOCITY is not set
682# CONFIG_TIGON3 is not set 696# CONFIG_TIGON3 is not set
683# CONFIG_BNX2 is not set 697# CONFIG_BNX2 is not set
698# CONFIG_FSL_PQ_MDIO is not set
684# CONFIG_GIANFAR is not set 699# CONFIG_GIANFAR is not set
685# CONFIG_MV643XX_ETH is not set
686# CONFIG_QLA3XXX is not set 700# CONFIG_QLA3XXX is not set
687# CONFIG_ATL1 is not set 701# CONFIG_ATL1 is not set
688# CONFIG_ATL1E is not set 702# CONFIG_ATL1E is not set
@@ -696,7 +710,6 @@ CONFIG_R8169=y
696# 710#
697# CONFIG_WLAN_PRE80211 is not set 711# CONFIG_WLAN_PRE80211 is not set
698# CONFIG_WLAN_80211 is not set 712# CONFIG_WLAN_80211 is not set
699# CONFIG_IWLWIFI_LEDS is not set
700 713
701# 714#
702# Enable WiMAX (Networking options) to see the WiMAX drivers 715# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -766,6 +779,7 @@ CONFIG_LEGACY_PTY_COUNT=256
766# CONFIG_HVC_UDBG is not set 779# CONFIG_HVC_UDBG is not set
767# CONFIG_IPMI_HANDLER is not set 780# CONFIG_IPMI_HANDLER is not set
768CONFIG_HW_RANDOM=m 781CONFIG_HW_RANDOM=m
782# CONFIG_HW_RANDOM_TIMERIOMEM is not set
769CONFIG_NVRAM=y 783CONFIG_NVRAM=y
770# CONFIG_R3964 is not set 784# CONFIG_R3964 is not set
771# CONFIG_APPLICOM is not set 785# CONFIG_APPLICOM is not set
@@ -831,7 +845,6 @@ CONFIG_I2C_MPC=y
831# CONFIG_SENSORS_PCF8574 is not set 845# CONFIG_SENSORS_PCF8574 is not set
832# CONFIG_PCF8575 is not set 846# CONFIG_PCF8575 is not set
833# CONFIG_SENSORS_PCA9539 is not set 847# CONFIG_SENSORS_PCA9539 is not set
834# CONFIG_SENSORS_PCF8591 is not set
835# CONFIG_SENSORS_MAX6875 is not set 848# CONFIG_SENSORS_MAX6875 is not set
836# CONFIG_SENSORS_TSL2550 is not set 849# CONFIG_SENSORS_TSL2550 is not set
837# CONFIG_I2C_DEBUG_CORE is not set 850# CONFIG_I2C_DEBUG_CORE is not set
@@ -952,11 +965,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
952# CONFIG_USB_TMC is not set 965# CONFIG_USB_TMC is not set
953 966
954# 967#
955# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 968# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
956# 969#
957 970
958# 971#
959# see USB_STORAGE Help for more information 972# also be needed; see USB_STORAGE Help for more info
960# 973#
961CONFIG_USB_STORAGE=y 974CONFIG_USB_STORAGE=y
962# CONFIG_USB_STORAGE_DEBUG is not set 975# CONFIG_USB_STORAGE_DEBUG is not set
@@ -997,7 +1010,6 @@ CONFIG_USB_STORAGE=y
997# CONFIG_USB_LED is not set 1010# CONFIG_USB_LED is not set
998# CONFIG_USB_CYPRESS_CY7C63 is not set 1011# CONFIG_USB_CYPRESS_CY7C63 is not set
999# CONFIG_USB_CYTHERM is not set 1012# CONFIG_USB_CYTHERM is not set
1000# CONFIG_USB_PHIDGET is not set
1001# CONFIG_USB_IDMOUSE is not set 1013# CONFIG_USB_IDMOUSE is not set
1002# CONFIG_USB_FTDI_ELAN is not set 1014# CONFIG_USB_FTDI_ELAN is not set
1003# CONFIG_USB_APPLEDISPLAY is not set 1015# CONFIG_USB_APPLEDISPLAY is not set
@@ -1013,6 +1025,7 @@ CONFIG_USB_STORAGE=y
1013# 1025#
1014# OTG and related infrastructure 1026# OTG and related infrastructure
1015# 1027#
1028# CONFIG_NOP_USB_XCEIV is not set
1016# CONFIG_UWB is not set 1029# CONFIG_UWB is not set
1017# CONFIG_MMC is not set 1030# CONFIG_MMC is not set
1018# CONFIG_MEMSTICK is not set 1031# CONFIG_MEMSTICK is not set
@@ -1074,8 +1087,9 @@ CONFIG_RTC_DRV_DS1307=y
1074# 1087#
1075# on-CPU RTC drivers 1088# on-CPU RTC drivers
1076# 1089#
1077# CONFIG_RTC_DRV_PPC is not set 1090# CONFIG_RTC_DRV_GENERIC is not set
1078# CONFIG_DMADEVICES is not set 1091# CONFIG_DMADEVICES is not set
1092# CONFIG_AUXDISPLAY is not set
1079# CONFIG_UIO is not set 1093# CONFIG_UIO is not set
1080# CONFIG_STAGING is not set 1094# CONFIG_STAGING is not set
1081 1095
@@ -1086,6 +1100,7 @@ CONFIG_EXT2_FS=y
1086# CONFIG_EXT2_FS_XATTR is not set 1100# CONFIG_EXT2_FS_XATTR is not set
1087# CONFIG_EXT2_FS_XIP is not set 1101# CONFIG_EXT2_FS_XIP is not set
1088CONFIG_EXT3_FS=y 1102CONFIG_EXT3_FS=y
1103# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1089CONFIG_EXT3_FS_XATTR=y 1104CONFIG_EXT3_FS_XATTR=y
1090# CONFIG_EXT3_FS_POSIX_ACL is not set 1105# CONFIG_EXT3_FS_POSIX_ACL is not set
1091# CONFIG_EXT3_FS_SECURITY is not set 1106# CONFIG_EXT3_FS_SECURITY is not set
@@ -1113,6 +1128,11 @@ CONFIG_INOTIFY_USER=y
1113# CONFIG_FUSE_FS is not set 1128# CONFIG_FUSE_FS is not set
1114 1129
1115# 1130#
1131# Caches
1132#
1133# CONFIG_FSCACHE is not set
1134
1135#
1116# CD-ROM/DVD Filesystems 1136# CD-ROM/DVD Filesystems
1117# 1137#
1118# CONFIG_ISO9660_FS is not set 1138# CONFIG_ISO9660_FS is not set
@@ -1166,6 +1186,7 @@ CONFIG_JFFS2_RTIME=y
1166# CONFIG_ROMFS_FS is not set 1186# CONFIG_ROMFS_FS is not set
1167# CONFIG_SYSV_FS is not set 1187# CONFIG_SYSV_FS is not set
1168# CONFIG_UFS_FS is not set 1188# CONFIG_UFS_FS is not set
1189# CONFIG_NILFS2_FS is not set
1169# CONFIG_NETWORK_FILESYSTEMS is not set 1190# CONFIG_NETWORK_FILESYSTEMS is not set
1170CONFIG_EXPORTFS=m 1191CONFIG_EXPORTFS=m
1171 1192
@@ -1231,6 +1252,7 @@ CONFIG_NLS_ISO8859_1=y
1231# CONFIG_NLS_KOI8_U is not set 1252# CONFIG_NLS_KOI8_U is not set
1232CONFIG_NLS_UTF8=y 1253CONFIG_NLS_UTF8=y
1233# CONFIG_DLM is not set 1254# CONFIG_DLM is not set
1255# CONFIG_BINARY_PRINTF is not set
1234 1256
1235# 1257#
1236# Library routines 1258# Library routines
@@ -1246,11 +1268,11 @@ CONFIG_CRC32=y
1246# CONFIG_LIBCRC32C is not set 1268# CONFIG_LIBCRC32C is not set
1247CONFIG_ZLIB_INFLATE=y 1269CONFIG_ZLIB_INFLATE=y
1248CONFIG_ZLIB_DEFLATE=y 1270CONFIG_ZLIB_DEFLATE=y
1249CONFIG_PLIST=y
1250CONFIG_HAS_IOMEM=y 1271CONFIG_HAS_IOMEM=y
1251CONFIG_HAS_IOPORT=y 1272CONFIG_HAS_IOPORT=y
1252CONFIG_HAS_DMA=y 1273CONFIG_HAS_DMA=y
1253CONFIG_HAVE_LMB=y 1274CONFIG_HAVE_LMB=y
1275CONFIG_NLATTR=y
1254 1276
1255# 1277#
1256# Kernel hacking 1278# Kernel hacking
@@ -1272,13 +1294,24 @@ CONFIG_FRAME_WARN=1024
1272# CONFIG_LATENCYTOP is not set 1294# CONFIG_LATENCYTOP is not set
1273CONFIG_SYSCTL_SYSCALL_CHECK=y 1295CONFIG_SYSCTL_SYSCALL_CHECK=y
1274CONFIG_HAVE_FUNCTION_TRACER=y 1296CONFIG_HAVE_FUNCTION_TRACER=y
1297CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1275CONFIG_HAVE_DYNAMIC_FTRACE=y 1298CONFIG_HAVE_DYNAMIC_FTRACE=y
1276CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1299CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1300CONFIG_TRACING_SUPPORT=y
1277 1301
1278# 1302#
1279# Tracers 1303# Tracers
1280# 1304#
1281# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1305# CONFIG_FUNCTION_TRACER is not set
1306# CONFIG_SCHED_TRACER is not set
1307# CONFIG_CONTEXT_SWITCH_TRACER is not set
1308# CONFIG_EVENT_TRACER is not set
1309# CONFIG_BOOT_TRACER is not set
1310# CONFIG_TRACE_BRANCH_PROFILING is not set
1311# CONFIG_STACK_TRACER is not set
1312# CONFIG_KMEMTRACE is not set
1313# CONFIG_WORKQUEUE_TRACER is not set
1314# CONFIG_BLK_DEV_IO_TRACE is not set
1282# CONFIG_SAMPLES is not set 1315# CONFIG_SAMPLES is not set
1283CONFIG_HAVE_ARCH_KGDB=y 1316CONFIG_HAVE_ARCH_KGDB=y
1284CONFIG_PRINT_STACK_DEPTH=64 1317CONFIG_PRINT_STACK_DEPTH=64
diff --git a/arch/powerpc/include/asm/dma-mapping.h b/arch/powerpc/include/asm/dma-mapping.h
index c69f2b5f0cc4..cb448d68452c 100644
--- a/arch/powerpc/include/asm/dma-mapping.h
+++ b/arch/powerpc/include/asm/dma-mapping.h
@@ -26,7 +26,9 @@
26 * allocate the space "normally" and use the cache management functions 26 * allocate the space "normally" and use the cache management functions
27 * to ensure it is consistent. 27 * to ensure it is consistent.
28 */ 28 */
29extern void *__dma_alloc_coherent(size_t size, dma_addr_t *handle, gfp_t gfp); 29struct device;
30extern void *__dma_alloc_coherent(struct device *dev, size_t size,
31 dma_addr_t *handle, gfp_t gfp);
30extern void __dma_free_coherent(size_t size, void *vaddr); 32extern void __dma_free_coherent(size_t size, void *vaddr);
31extern void __dma_sync(void *vaddr, size_t size, int direction); 33extern void __dma_sync(void *vaddr, size_t size, int direction);
32extern void __dma_sync_page(struct page *page, unsigned long offset, 34extern void __dma_sync_page(struct page *page, unsigned long offset,
@@ -37,7 +39,7 @@ extern void __dma_sync_page(struct page *page, unsigned long offset,
37 * Cache coherent cores. 39 * Cache coherent cores.
38 */ 40 */
39 41
40#define __dma_alloc_coherent(gfp, size, handle) NULL 42#define __dma_alloc_coherent(dev, gfp, size, handle) NULL
41#define __dma_free_coherent(size, addr) ((void)0) 43#define __dma_free_coherent(size, addr) ((void)0)
42#define __dma_sync(addr, size, rw) ((void)0) 44#define __dma_sync(addr, size, rw) ((void)0)
43#define __dma_sync_page(pg, off, sz, rw) ((void)0) 45#define __dma_sync_page(pg, off, sz, rw) ((void)0)
diff --git a/arch/powerpc/include/asm/fixmap.h b/arch/powerpc/include/asm/fixmap.h
index d60fd18f428c..f1f4e23a84e9 100644
--- a/arch/powerpc/include/asm/fixmap.h
+++ b/arch/powerpc/include/asm/fixmap.h
@@ -14,8 +14,6 @@
14#ifndef _ASM_FIXMAP_H 14#ifndef _ASM_FIXMAP_H
15#define _ASM_FIXMAP_H 15#define _ASM_FIXMAP_H
16 16
17extern unsigned long FIXADDR_TOP;
18
19#ifndef __ASSEMBLY__ 17#ifndef __ASSEMBLY__
20#include <linux/kernel.h> 18#include <linux/kernel.h>
21#include <asm/page.h> 19#include <asm/page.h>
@@ -24,6 +22,8 @@ extern unsigned long FIXADDR_TOP;
24#include <asm/kmap_types.h> 22#include <asm/kmap_types.h>
25#endif 23#endif
26 24
25#define FIXADDR_TOP ((unsigned long)(-PAGE_SIZE))
26
27/* 27/*
28 * Here we define all the compile-time 'special' virtual 28 * Here we define all the compile-time 'special' virtual
29 * addresses. The point is to have a constant address at 29 * addresses. The point is to have a constant address at
diff --git a/arch/powerpc/include/asm/iseries/iommu.h b/arch/powerpc/include/asm/iseries/iommu.h
index c59ee7e4bed1..1b9692c60899 100644
--- a/arch/powerpc/include/asm/iseries/iommu.h
+++ b/arch/powerpc/include/asm/iseries/iommu.h
@@ -26,10 +26,6 @@ struct vio_dev;
26struct device_node; 26struct device_node;
27struct iommu_table; 27struct iommu_table;
28 28
29/* Creates table for an individual device node */
30extern void iommu_devnode_init_iSeries(struct pci_dev *pdev,
31 struct device_node *dn);
32
33/* Get table parameters from HV */ 29/* Get table parameters from HV */
34extern void iommu_table_getparms_iSeries(unsigned long busno, 30extern void iommu_table_getparms_iSeries(unsigned long busno,
35 unsigned char slotno, unsigned char virtbus, 31 unsigned char slotno, unsigned char virtbus,
diff --git a/arch/powerpc/include/asm/pgtable-ppc32.h b/arch/powerpc/include/asm/pgtable-ppc32.h
index ba45c997830f..c9ff9d75990e 100644
--- a/arch/powerpc/include/asm/pgtable-ppc32.h
+++ b/arch/powerpc/include/asm/pgtable-ppc32.h
@@ -10,7 +10,7 @@
10 10
11extern unsigned long va_to_phys(unsigned long address); 11extern unsigned long va_to_phys(unsigned long address);
12extern pte_t *va_to_pte(unsigned long address); 12extern pte_t *va_to_pte(unsigned long address);
13extern unsigned long ioremap_bot, ioremap_base; 13extern unsigned long ioremap_bot;
14 14
15#ifdef CONFIG_44x 15#ifdef CONFIG_44x
16extern int icache_44x_need_flush; 16extern int icache_44x_need_flush;
@@ -56,8 +56,30 @@ extern int icache_44x_need_flush;
56 printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e)) 56 printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
57 57
58/* 58/*
59 * This is the bottom of the PKMAP area with HIGHMEM or an arbitrary
60 * value (for now) on others, from where we can start layout kernel
61 * virtual space that goes below PKMAP and FIXMAP
62 */
63#ifdef CONFIG_HIGHMEM
64#define KVIRT_TOP PKMAP_BASE
65#else
66#define KVIRT_TOP (0xfe000000UL) /* for now, could be FIXMAP_BASE ? */
67#endif
68
69/*
70 * ioremap_bot starts at that address. Early ioremaps move down from there,
71 * until mem_init() at which point this becomes the top of the vmalloc
72 * and ioremap space
73 */
74#ifdef CONFIG_NOT_COHERENT_CACHE
75#define IOREMAP_TOP ((KVIRT_TOP - CONFIG_CONSISTENT_SIZE) & PAGE_MASK)
76#else
77#define IOREMAP_TOP KVIRT_TOP
78#endif
79
80/*
59 * Just any arbitrary offset to the start of the vmalloc VM area: the 81 * Just any arbitrary offset to the start of the vmalloc VM area: the
60 * current 64MB value just means that there will be a 64MB "hole" after the 82 * current 16MB value just means that there will be a 64MB "hole" after the
61 * physical memory until the kernel virtual memory starts. That means that 83 * physical memory until the kernel virtual memory starts. That means that
62 * any out-of-bounds memory accesses will hopefully be caught. 84 * any out-of-bounds memory accesses will hopefully be caught.
63 * The vmalloc() routines leaves a hole of 4kB between each vmalloced 85 * The vmalloc() routines leaves a hole of 4kB between each vmalloced
diff --git a/arch/powerpc/include/asm/system.h b/arch/powerpc/include/asm/system.h
index f612798e1c93..2b2420a49884 100644
--- a/arch/powerpc/include/asm/system.h
+++ b/arch/powerpc/include/asm/system.h
@@ -212,7 +212,7 @@ extern struct task_struct *_switch(struct thread_struct *prev,
212extern unsigned int rtas_data; 212extern unsigned int rtas_data;
213extern int mem_init_done; /* set on boot once kmalloc can be called */ 213extern int mem_init_done; /* set on boot once kmalloc can be called */
214extern int init_bootmem_done; /* set on !NUMA once bootmem is available */ 214extern int init_bootmem_done; /* set on !NUMA once bootmem is available */
215extern unsigned long memory_limit; 215extern phys_addr_t memory_limit;
216extern unsigned long klimit; 216extern unsigned long klimit;
217 217
218extern void *alloc_maybe_bootmem(size_t size, gfp_t mask); 218extern void *alloc_maybe_bootmem(size_t size, gfp_t mask);
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index f9c40f869c6e..3e33fb933d99 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -1836,7 +1836,7 @@ static void __init setup_cpu_spec(unsigned long offset, struct cpu_spec *s)
1836 * and, in that case, keep the current value for 1836 * and, in that case, keep the current value for
1837 * oprofile_cpu_type. 1837 * oprofile_cpu_type.
1838 */ 1838 */
1839 if (old.oprofile_cpu_type == NULL) { 1839 if (old.oprofile_cpu_type != NULL) {
1840 t->oprofile_cpu_type = old.oprofile_cpu_type; 1840 t->oprofile_cpu_type = old.oprofile_cpu_type;
1841 t->oprofile_type = old.oprofile_type; 1841 t->oprofile_type = old.oprofile_type;
1842 } 1842 }
diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
index 53c7788cba78..6b02793dc75b 100644
--- a/arch/powerpc/kernel/dma.c
+++ b/arch/powerpc/kernel/dma.c
@@ -32,7 +32,7 @@ void *dma_direct_alloc_coherent(struct device *dev, size_t size,
32{ 32{
33 void *ret; 33 void *ret;
34#ifdef CONFIG_NOT_COHERENT_CACHE 34#ifdef CONFIG_NOT_COHERENT_CACHE
35 ret = __dma_alloc_coherent(size, dma_handle, flag); 35 ret = __dma_alloc_coherent(dev, size, dma_handle, flag);
36 if (ret == NULL) 36 if (ret == NULL)
37 return NULL; 37 return NULL;
38 *dma_handle += get_dma_direct_offset(dev); 38 *dma_handle += get_dma_direct_offset(dev);
diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c
index 70e2a736be1f..2d182f119d1d 100644
--- a/arch/powerpc/kernel/ftrace.c
+++ b/arch/powerpc/kernel/ftrace.c
@@ -157,7 +157,7 @@ __ftrace_make_nop(struct module *mod,
157 * 0xe8, 0x4c, 0x00, 0x28, ld r2,40(r12) 157 * 0xe8, 0x4c, 0x00, 0x28, ld r2,40(r12)
158 */ 158 */
159 159
160 pr_debug("ip:%lx jumps to %lx r2: %lx", ip, tramp, mod->arch.toc); 160 pr_devel("ip:%lx jumps to %lx r2: %lx", ip, tramp, mod->arch.toc);
161 161
162 /* Find where the trampoline jumps to */ 162 /* Find where the trampoline jumps to */
163 if (probe_kernel_read(jmp, (void *)tramp, sizeof(jmp))) { 163 if (probe_kernel_read(jmp, (void *)tramp, sizeof(jmp))) {
@@ -165,7 +165,7 @@ __ftrace_make_nop(struct module *mod,
165 return -EFAULT; 165 return -EFAULT;
166 } 166 }
167 167
168 pr_debug(" %08x %08x", jmp[0], jmp[1]); 168 pr_devel(" %08x %08x", jmp[0], jmp[1]);
169 169
170 /* verify that this is what we expect it to be */ 170 /* verify that this is what we expect it to be */
171 if (((jmp[0] & 0xffff0000) != 0x3d820000) || 171 if (((jmp[0] & 0xffff0000) != 0x3d820000) ||
@@ -181,18 +181,18 @@ __ftrace_make_nop(struct module *mod,
181 offset = ((unsigned)((unsigned short)jmp[0]) << 16) + 181 offset = ((unsigned)((unsigned short)jmp[0]) << 16) +
182 (int)((short)jmp[1]); 182 (int)((short)jmp[1]);
183 183
184 pr_debug(" %x ", offset); 184 pr_devel(" %x ", offset);
185 185
186 /* get the address this jumps too */ 186 /* get the address this jumps too */
187 tramp = mod->arch.toc + offset + 32; 187 tramp = mod->arch.toc + offset + 32;
188 pr_debug("toc: %lx", tramp); 188 pr_devel("toc: %lx", tramp);
189 189
190 if (probe_kernel_read(jmp, (void *)tramp, 8)) { 190 if (probe_kernel_read(jmp, (void *)tramp, 8)) {
191 printk(KERN_ERR "Failed to read %lx\n", tramp); 191 printk(KERN_ERR "Failed to read %lx\n", tramp);
192 return -EFAULT; 192 return -EFAULT;
193 } 193 }
194 194
195 pr_debug(" %08x %08x\n", jmp[0], jmp[1]); 195 pr_devel(" %08x %08x\n", jmp[0], jmp[1]);
196 196
197 ptr = ((unsigned long)jmp[0] << 32) + jmp[1]; 197 ptr = ((unsigned long)jmp[0] << 32) + jmp[1];
198 198
@@ -269,7 +269,7 @@ __ftrace_make_nop(struct module *mod,
269 * 0x4e, 0x80, 0x04, 0x20 bctr 269 * 0x4e, 0x80, 0x04, 0x20 bctr
270 */ 270 */
271 271
272 pr_debug("ip:%lx jumps to %lx", ip, tramp); 272 pr_devel("ip:%lx jumps to %lx", ip, tramp);
273 273
274 /* Find where the trampoline jumps to */ 274 /* Find where the trampoline jumps to */
275 if (probe_kernel_read(jmp, (void *)tramp, sizeof(jmp))) { 275 if (probe_kernel_read(jmp, (void *)tramp, sizeof(jmp))) {
@@ -277,7 +277,7 @@ __ftrace_make_nop(struct module *mod,
277 return -EFAULT; 277 return -EFAULT;
278 } 278 }
279 279
280 pr_debug(" %08x %08x ", jmp[0], jmp[1]); 280 pr_devel(" %08x %08x ", jmp[0], jmp[1]);
281 281
282 /* verify that this is what we expect it to be */ 282 /* verify that this is what we expect it to be */
283 if (((jmp[0] & 0xffff0000) != 0x3d600000) || 283 if (((jmp[0] & 0xffff0000) != 0x3d600000) ||
@@ -293,7 +293,7 @@ __ftrace_make_nop(struct module *mod,
293 if (tramp & 0x8000) 293 if (tramp & 0x8000)
294 tramp -= 0x10000; 294 tramp -= 0x10000;
295 295
296 pr_debug(" %lx ", tramp); 296 pr_devel(" %lx ", tramp);
297 297
298 if (tramp != addr) { 298 if (tramp != addr) {
299 printk(KERN_ERR 299 printk(KERN_ERR
@@ -402,7 +402,7 @@ __ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
402 /* ld r2,40(r1) */ 402 /* ld r2,40(r1) */
403 op[1] = 0xe8410028; 403 op[1] = 0xe8410028;
404 404
405 pr_debug("write to %lx\n", rec->ip); 405 pr_devel("write to %lx\n", rec->ip);
406 406
407 if (probe_kernel_write((void *)ip, op, MCOUNT_INSN_SIZE * 2)) 407 if (probe_kernel_write((void *)ip, op, MCOUNT_INSN_SIZE * 2))
408 return -EPERM; 408 return -EPERM;
@@ -442,7 +442,7 @@ __ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
442 return -EINVAL; 442 return -EINVAL;
443 } 443 }
444 444
445 pr_debug("write to %lx\n", rec->ip); 445 pr_devel("write to %lx\n", rec->ip);
446 446
447 if (probe_kernel_write((void *)ip, &op, MCOUNT_INSN_SIZE)) 447 if (probe_kernel_write((void *)ip, &op, MCOUNT_INSN_SIZE))
448 return -EPERM; 448 return -EPERM;
@@ -594,7 +594,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
594 PPC_LONG "2b,4b\n" 594 PPC_LONG "2b,4b\n"
595 ".previous" 595 ".previous"
596 596
597 : [old] "=r" (old), [faulted] "=r" (faulted) 597 : [old] "=&r" (old), [faulted] "=r" (faulted)
598 : [parent] "r" (parent), [return_hooker] "r" (return_hooker) 598 : [parent] "r" (parent), [return_hooker] "r" (return_hooker)
599 : "memory" 599 : "memory"
600 ); 600 );
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c
index d59e2b1bdcba..bb3d893a8353 100644
--- a/arch/powerpc/kernel/machine_kexec.c
+++ b/arch/powerpc/kernel/machine_kexec.c
@@ -125,8 +125,8 @@ void __init reserve_crashkernel(void)
125 /* Crash kernel trumps memory limit */ 125 /* Crash kernel trumps memory limit */
126 if (memory_limit && memory_limit <= crashk_res.end) { 126 if (memory_limit && memory_limit <= crashk_res.end) {
127 memory_limit = crashk_res.end + 1; 127 memory_limit = crashk_res.end + 1;
128 printk("Adjusted memory limit for crashkernel, now 0x%lx\n", 128 printk("Adjusted memory limit for crashkernel, now 0x%llx\n",
129 memory_limit); 129 (unsigned long long)memory_limit);
130 } 130 }
131 131
132 printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " 132 printk(KERN_INFO "Reserving %ldMB of memory at %ldMB "
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 9c69e7e145c5..4fee63cb53ff 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1366,12 +1366,17 @@ static void __init pcibios_allocate_resources(int pass)
1366 1366
1367 for_each_pci_dev(dev) { 1367 for_each_pci_dev(dev) {
1368 pci_read_config_word(dev, PCI_COMMAND, &command); 1368 pci_read_config_word(dev, PCI_COMMAND, &command);
1369 for (idx = 0; idx < 6; idx++) { 1369 for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) {
1370 r = &dev->resource[idx]; 1370 r = &dev->resource[idx];
1371 if (r->parent) /* Already allocated */ 1371 if (r->parent) /* Already allocated */
1372 continue; 1372 continue;
1373 if (!r->flags || (r->flags & IORESOURCE_UNSET)) 1373 if (!r->flags || (r->flags & IORESOURCE_UNSET))
1374 continue; /* Not assigned at all */ 1374 continue; /* Not assigned at all */
1375 /* We only allocate ROMs on pass 1 just in case they
1376 * have been screwed up by firmware
1377 */
1378 if (idx == PCI_ROM_RESOURCE )
1379 disabled = 1;
1375 if (r->flags & IORESOURCE_IO) 1380 if (r->flags & IORESOURCE_IO)
1376 disabled = !(command & PCI_COMMAND_IO); 1381 disabled = !(command & PCI_COMMAND_IO);
1377 else 1382 else
@@ -1382,17 +1387,19 @@ static void __init pcibios_allocate_resources(int pass)
1382 if (pass) 1387 if (pass)
1383 continue; 1388 continue;
1384 r = &dev->resource[PCI_ROM_RESOURCE]; 1389 r = &dev->resource[PCI_ROM_RESOURCE];
1385 if (r->flags & IORESOURCE_ROM_ENABLE) { 1390 if (r->flags) {
1386 /* Turn the ROM off, leave the resource region, 1391 /* Turn the ROM off, leave the resource region,
1387 * but keep it unregistered. 1392 * but keep it unregistered.
1388 */ 1393 */
1389 u32 reg; 1394 u32 reg;
1390 pr_debug("PCI: Switching off ROM of %s\n",
1391 pci_name(dev));
1392 r->flags &= ~IORESOURCE_ROM_ENABLE;
1393 pci_read_config_dword(dev, dev->rom_base_reg, &reg); 1395 pci_read_config_dword(dev, dev->rom_base_reg, &reg);
1394 pci_write_config_dword(dev, dev->rom_base_reg, 1396 if (reg & PCI_ROM_ADDRESS_ENABLE) {
1395 reg & ~PCI_ROM_ADDRESS_ENABLE); 1397 pr_debug("PCI: Switching off ROM of %s\n",
1398 pci_name(dev));
1399 r->flags &= ~IORESOURCE_ROM_ENABLE;
1400 pci_write_config_dword(dev, dev->rom_base_reg,
1401 reg & ~PCI_ROM_ADDRESS_ENABLE);
1402 }
1396 } 1403 }
1397 } 1404 }
1398} 1405}
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index be574fc0d92f..96edb6f8babb 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -64,7 +64,7 @@ static u32 get_int_prop(struct device_node *np, const char *name, u32 def)
64 return def; 64 return def;
65} 65}
66 66
67static unsigned int pci_parse_of_flags(u32 addr0) 67static unsigned int pci_parse_of_flags(u32 addr0, int bridge)
68{ 68{
69 unsigned int flags = 0; 69 unsigned int flags = 0;
70 70
@@ -75,8 +75,17 @@ static unsigned int pci_parse_of_flags(u32 addr0)
75 if (addr0 & 0x40000000) 75 if (addr0 & 0x40000000)
76 flags |= IORESOURCE_PREFETCH 76 flags |= IORESOURCE_PREFETCH
77 | PCI_BASE_ADDRESS_MEM_PREFETCH; 77 | PCI_BASE_ADDRESS_MEM_PREFETCH;
78 /* Note: We don't know whether the ROM has been left enabled
79 * by the firmware or not. We mark it as disabled (ie, we do
80 * not set the IORESOURCE_ROM_ENABLE flag) for now rather than
81 * do a config space read, it will be force-enabled if needed
82 */
83 if (!bridge && (addr0 & 0xff) == 0x30)
84 flags |= IORESOURCE_READONLY;
78 } else if (addr0 & 0x01000000) 85 } else if (addr0 & 0x01000000)
79 flags = IORESOURCE_IO | PCI_BASE_ADDRESS_SPACE_IO; 86 flags = IORESOURCE_IO | PCI_BASE_ADDRESS_SPACE_IO;
87 if (flags)
88 flags |= IORESOURCE_SIZEALIGN;
80 return flags; 89 return flags;
81} 90}
82 91
@@ -95,7 +104,7 @@ static void pci_parse_of_addrs(struct device_node *node, struct pci_dev *dev)
95 return; 104 return;
96 pr_debug(" parse addresses (%d bytes) @ %p\n", proplen, addrs); 105 pr_debug(" parse addresses (%d bytes) @ %p\n", proplen, addrs);
97 for (; proplen >= 20; proplen -= 20, addrs += 5) { 106 for (; proplen >= 20; proplen -= 20, addrs += 5) {
98 flags = pci_parse_of_flags(addrs[0]); 107 flags = pci_parse_of_flags(addrs[0], 0);
99 if (!flags) 108 if (!flags)
100 continue; 109 continue;
101 base = of_read_number(&addrs[1], 2); 110 base = of_read_number(&addrs[1], 2);
@@ -293,7 +302,7 @@ void __devinit of_scan_pci_bridge(struct device_node *node,
293 } 302 }
294 i = 1; 303 i = 1;
295 for (; len >= 32; len -= 32, ranges += 8) { 304 for (; len >= 32; len -= 32, ranges += 8) {
296 flags = pci_parse_of_flags(ranges[0]); 305 flags = pci_parse_of_flags(ranges[0], 1);
297 size = of_read_number(&ranges[6], 2); 306 size = of_read_number(&ranges[6], 2);
298 if (flags == 0 || size == 0) 307 if (flags == 0 || size == 0)
299 continue; 308 continue;
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 5ec6a9e23933..ce01ff2474da 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -426,7 +426,7 @@ static int __init early_parse_mem(char *p)
426 return 1; 426 return 1;
427 427
428 memory_limit = PAGE_ALIGN(memparse(p, &p)); 428 memory_limit = PAGE_ALIGN(memparse(p, &p));
429 DBG("memory limit = 0x%lx\n", memory_limit); 429 DBG("memory limit = 0x%llx\n", (unsigned long long)memory_limit);
430 430
431 return 0; 431 return 0;
432} 432}
@@ -1160,7 +1160,7 @@ static inline void __init phyp_dump_reserve_mem(void) {}
1160 1160
1161void __init early_init_devtree(void *params) 1161void __init early_init_devtree(void *params)
1162{ 1162{
1163 unsigned long limit; 1163 phys_addr_t limit;
1164 1164
1165 DBG(" -> early_init_devtree(%p)\n", params); 1165 DBG(" -> early_init_devtree(%p)\n", params);
1166 1166
@@ -1204,7 +1204,7 @@ void __init early_init_devtree(void *params)
1204 1204
1205 limit = memory_limit; 1205 limit = memory_limit;
1206 if (! limit) { 1206 if (! limit) {
1207 unsigned long memsize; 1207 phys_addr_t memsize;
1208 1208
1209 /* Ensure that total memory size is page-aligned, because 1209 /* Ensure that total memory size is page-aligned, because
1210 * otherwise mark_bootmem() gets upset. */ 1210 * otherwise mark_bootmem() gets upset. */
@@ -1218,7 +1218,7 @@ void __init early_init_devtree(void *params)
1218 lmb_analyze(); 1218 lmb_analyze();
1219 lmb_dump_all(); 1219 lmb_dump_all();
1220 1220
1221 DBG("Phys. mem: %lx\n", lmb_phys_mem_size()); 1221 DBG("Phys. mem: %llx\n", lmb_phys_mem_size());
1222 1222
1223 /* We may need to relocate the flat tree, do it now. 1223 /* We may need to relocate the flat tree, do it now.
1224 * FIXME .. and the initrd too? */ 1224 * FIXME .. and the initrd too? */
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index a047a6cfca4d..8ef8a14abc95 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -264,6 +264,7 @@ SECTIONS
264 *(.data.page_aligned) 264 *(.data.page_aligned)
265 } 265 }
266 266
267 . = ALIGN(L1_CACHE_BYTES);
267 .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { 268 .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {
268 *(.data.cacheline_aligned) 269 *(.data.cacheline_aligned)
269 } 270 }
diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile
index 8db35278a4b4..29b742b90f1f 100644
--- a/arch/powerpc/lib/Makefile
+++ b/arch/powerpc/lib/Makefile
@@ -18,7 +18,6 @@ obj-$(CONFIG_PPC64) += copypage_64.o copyuser_64.o \
18 memcpy_64.o usercopy_64.o mem_64.o string.o 18 memcpy_64.o usercopy_64.o mem_64.o string.o
19obj-$(CONFIG_XMON) += sstep.o 19obj-$(CONFIG_XMON) += sstep.o
20obj-$(CONFIG_KPROBES) += sstep.o 20obj-$(CONFIG_KPROBES) += sstep.o
21obj-$(CONFIG_NOT_COHERENT_CACHE) += dma-noncoherent.o
22 21
23ifeq ($(CONFIG_PPC64),y) 22ifeq ($(CONFIG_PPC64),y)
24obj-$(CONFIG_SMP) += locks.o 23obj-$(CONFIG_SMP) += locks.o
diff --git a/arch/powerpc/lib/dma-noncoherent.c b/arch/powerpc/lib/dma-noncoherent.c
deleted file mode 100644
index 005a28d380af..000000000000
--- a/arch/powerpc/lib/dma-noncoherent.c
+++ /dev/null
@@ -1,237 +0,0 @@
1/*
2 * PowerPC version derived from arch/arm/mm/consistent.c
3 * Copyright (C) 2001 Dan Malek (dmalek@jlc.net)
4 *
5 * Copyright (C) 2000 Russell King
6 *
7 * Consistent memory allocators. Used for DMA devices that want to
8 * share uncached memory with the processor core. The function return
9 * is the virtual address and 'dma_handle' is the physical address.
10 * Mostly stolen from the ARM port, with some changes for PowerPC.
11 * -- Dan
12 *
13 * Reorganized to get rid of the arch-specific consistent_* functions
14 * and provide non-coherent implementations for the DMA API. -Matt
15 *
16 * Added in_interrupt() safe dma_alloc_coherent()/dma_free_coherent()
17 * implementation. This is pulled straight from ARM and barely
18 * modified. -Matt
19 *
20 * This program is free software; you can redistribute it and/or modify
21 * it under the terms of the GNU General Public License version 2 as
22 * published by the Free Software Foundation.
23 */
24
25#include <linux/sched.h>
26#include <linux/kernel.h>
27#include <linux/errno.h>
28#include <linux/string.h>
29#include <linux/types.h>
30#include <linux/highmem.h>
31#include <linux/dma-mapping.h>
32#include <linux/vmalloc.h>
33
34#include <asm/tlbflush.h>
35
36/*
37 * Allocate DMA-coherent memory space and return both the kernel remapped
38 * virtual and bus address for that space.
39 */
40void *
41__dma_alloc_coherent(size_t size, dma_addr_t *handle, gfp_t gfp)
42{
43 struct page *page;
44 unsigned long order;
45 int i;
46 unsigned int nr_pages = PAGE_ALIGN(size)>>PAGE_SHIFT;
47 unsigned int array_size = nr_pages * sizeof(struct page *);
48 struct page **pages;
49 struct page *end;
50 u64 mask = 0x00ffffff, limit; /* ISA default */
51 struct vm_struct *area;
52
53 BUG_ON(!mem_init_done);
54 size = PAGE_ALIGN(size);
55 limit = (mask + 1) & ~mask;
56 if (limit && size >= limit) {
57 printk(KERN_WARNING "coherent allocation too big (requested "
58 "%#x mask %#Lx)\n", size, mask);
59 return NULL;
60 }
61
62 order = get_order(size);
63
64 if (mask != 0xffffffff)
65 gfp |= GFP_DMA;
66
67 page = alloc_pages(gfp, order);
68 if (!page)
69 goto no_page;
70
71 end = page + (1 << order);
72
73 /*
74 * Invalidate any data that might be lurking in the
75 * kernel direct-mapped region for device DMA.
76 */
77 {
78 unsigned long kaddr = (unsigned long)page_address(page);
79 memset(page_address(page), 0, size);
80 flush_dcache_range(kaddr, kaddr + size);
81 }
82
83 split_page(page, order);
84
85 /*
86 * Set the "dma handle"
87 */
88 *handle = page_to_phys(page);
89
90 area = get_vm_area_caller(size, VM_IOREMAP,
91 __builtin_return_address(1));
92 if (!area)
93 goto out_free_pages;
94
95 if (array_size > PAGE_SIZE) {
96 pages = vmalloc(array_size);
97 area->flags |= VM_VPAGES;
98 } else {
99 pages = kmalloc(array_size, GFP_KERNEL);
100 }
101 if (!pages)
102 goto out_free_area;
103
104 area->pages = pages;
105 area->nr_pages = nr_pages;
106
107 for (i = 0; i < nr_pages; i++)
108 pages[i] = page + i;
109
110 if (map_vm_area(area, pgprot_noncached(PAGE_KERNEL), &pages))
111 goto out_unmap;
112
113 /*
114 * Free the otherwise unused pages.
115 */
116 page += nr_pages;
117 while (page < end) {
118 __free_page(page);
119 page++;
120 }
121
122 return area->addr;
123out_unmap:
124 vunmap(area->addr);
125 if (array_size > PAGE_SIZE)
126 vfree(pages);
127 else
128 kfree(pages);
129 goto out_free_pages;
130out_free_area:
131 free_vm_area(area);
132out_free_pages:
133 if (page)
134 __free_pages(page, order);
135no_page:
136 return NULL;
137}
138EXPORT_SYMBOL(__dma_alloc_coherent);
139
140/*
141 * free a page as defined by the above mapping.
142 */
143void __dma_free_coherent(size_t size, void *vaddr)
144{
145 vfree(vaddr);
146
147}
148EXPORT_SYMBOL(__dma_free_coherent);
149
150/*
151 * make an area consistent.
152 */
153void __dma_sync(void *vaddr, size_t size, int direction)
154{
155 unsigned long start = (unsigned long)vaddr;
156 unsigned long end = start + size;
157
158 switch (direction) {
159 case DMA_NONE:
160 BUG();
161 case DMA_FROM_DEVICE:
162 /*
163 * invalidate only when cache-line aligned otherwise there is
164 * the potential for discarding uncommitted data from the cache
165 */
166 if ((start & (L1_CACHE_BYTES - 1)) || (size & (L1_CACHE_BYTES - 1)))
167 flush_dcache_range(start, end);
168 else
169 invalidate_dcache_range(start, end);
170 break;
171 case DMA_TO_DEVICE: /* writeback only */
172 clean_dcache_range(start, end);
173 break;
174 case DMA_BIDIRECTIONAL: /* writeback and invalidate */
175 flush_dcache_range(start, end);
176 break;
177 }
178}
179EXPORT_SYMBOL(__dma_sync);
180
181#ifdef CONFIG_HIGHMEM
182/*
183 * __dma_sync_page() implementation for systems using highmem.
184 * In this case, each page of a buffer must be kmapped/kunmapped
185 * in order to have a virtual address for __dma_sync(). This must
186 * not sleep so kmap_atomic()/kunmap_atomic() are used.
187 *
188 * Note: yes, it is possible and correct to have a buffer extend
189 * beyond the first page.
190 */
191static inline void __dma_sync_page_highmem(struct page *page,
192 unsigned long offset, size_t size, int direction)
193{
194 size_t seg_size = min((size_t)(PAGE_SIZE - offset), size);
195 size_t cur_size = seg_size;
196 unsigned long flags, start, seg_offset = offset;
197 int nr_segs = 1 + ((size - seg_size) + PAGE_SIZE - 1)/PAGE_SIZE;
198 int seg_nr = 0;
199
200 local_irq_save(flags);
201
202 do {
203 start = (unsigned long)kmap_atomic(page + seg_nr,
204 KM_PPC_SYNC_PAGE) + seg_offset;
205
206 /* Sync this buffer segment */
207 __dma_sync((void *)start, seg_size, direction);
208 kunmap_atomic((void *)start, KM_PPC_SYNC_PAGE);
209 seg_nr++;
210
211 /* Calculate next buffer segment size */
212 seg_size = min((size_t)PAGE_SIZE, size - cur_size);
213
214 /* Add the segment size to our running total */
215 cur_size += seg_size;
216 seg_offset = 0;
217 } while (seg_nr < nr_segs);
218
219 local_irq_restore(flags);
220}
221#endif /* CONFIG_HIGHMEM */
222
223/*
224 * __dma_sync_page makes memory consistent. identical to __dma_sync, but
225 * takes a struct page instead of a virtual address
226 */
227void __dma_sync_page(struct page *page, unsigned long offset,
228 size_t size, int direction)
229{
230#ifdef CONFIG_HIGHMEM
231 __dma_sync_page_highmem(page, offset, size, direction);
232#else
233 unsigned long start = (unsigned long)page_address(page) + offset;
234 __dma_sync((void *)start, size, direction);
235#endif
236}
237EXPORT_SYMBOL(__dma_sync_page);
diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile
index 17290bcedc5e..b746f4ca4209 100644
--- a/arch/powerpc/mm/Makefile
+++ b/arch/powerpc/mm/Makefile
@@ -26,3 +26,4 @@ obj-$(CONFIG_NEED_MULTIPLE_NODES) += numa.o
26obj-$(CONFIG_PPC_MM_SLICES) += slice.o 26obj-$(CONFIG_PPC_MM_SLICES) += slice.o
27obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o 27obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
28obj-$(CONFIG_PPC_SUBPAGE_PROT) += subpage-prot.o 28obj-$(CONFIG_PPC_SUBPAGE_PROT) += subpage-prot.o
29obj-$(CONFIG_NOT_COHERENT_CACHE) += dma-noncoherent.o
diff --git a/arch/powerpc/mm/dma-noncoherent.c b/arch/powerpc/mm/dma-noncoherent.c
new file mode 100644
index 000000000000..36692f5c9a76
--- /dev/null
+++ b/arch/powerpc/mm/dma-noncoherent.c
@@ -0,0 +1,400 @@
1/*
2 * PowerPC version derived from arch/arm/mm/consistent.c
3 * Copyright (C) 2001 Dan Malek (dmalek@jlc.net)
4 *
5 * Copyright (C) 2000 Russell King
6 *
7 * Consistent memory allocators. Used for DMA devices that want to
8 * share uncached memory with the processor core. The function return
9 * is the virtual address and 'dma_handle' is the physical address.
10 * Mostly stolen from the ARM port, with some changes for PowerPC.
11 * -- Dan
12 *
13 * Reorganized to get rid of the arch-specific consistent_* functions
14 * and provide non-coherent implementations for the DMA API. -Matt
15 *
16 * Added in_interrupt() safe dma_alloc_coherent()/dma_free_coherent()
17 * implementation. This is pulled straight from ARM and barely
18 * modified. -Matt
19 *
20 * This program is free software; you can redistribute it and/or modify
21 * it under the terms of the GNU General Public License version 2 as
22 * published by the Free Software Foundation.
23 */
24
25#include <linux/sched.h>
26#include <linux/kernel.h>
27#include <linux/errno.h>
28#include <linux/string.h>
29#include <linux/types.h>
30#include <linux/highmem.h>
31#include <linux/dma-mapping.h>
32
33#include <asm/tlbflush.h>
34
35#include "mmu_decl.h"
36
37/*
38 * This address range defaults to a value that is safe for all
39 * platforms which currently set CONFIG_NOT_COHERENT_CACHE. It
40 * can be further configured for specific applications under
41 * the "Advanced Setup" menu. -Matt
42 */
43#define CONSISTENT_BASE (IOREMAP_TOP)
44#define CONSISTENT_END (CONSISTENT_BASE + CONFIG_CONSISTENT_SIZE)
45#define CONSISTENT_OFFSET(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PAGE_SHIFT)
46
47/*
48 * This is the page table (2MB) covering uncached, DMA consistent allocations
49 */
50static DEFINE_SPINLOCK(consistent_lock);
51
52/*
53 * VM region handling support.
54 *
55 * This should become something generic, handling VM region allocations for
56 * vmalloc and similar (ioremap, module space, etc).
57 *
58 * I envisage vmalloc()'s supporting vm_struct becoming:
59 *
60 * struct vm_struct {
61 * struct vm_region region;
62 * unsigned long flags;
63 * struct page **pages;
64 * unsigned int nr_pages;
65 * unsigned long phys_addr;
66 * };
67 *
68 * get_vm_area() would then call vm_region_alloc with an appropriate
69 * struct vm_region head (eg):
70 *
71 * struct vm_region vmalloc_head = {
72 * .vm_list = LIST_HEAD_INIT(vmalloc_head.vm_list),
73 * .vm_start = VMALLOC_START,
74 * .vm_end = VMALLOC_END,
75 * };
76 *
77 * However, vmalloc_head.vm_start is variable (typically, it is dependent on
78 * the amount of RAM found at boot time.) I would imagine that get_vm_area()
79 * would have to initialise this each time prior to calling vm_region_alloc().
80 */
81struct ppc_vm_region {
82 struct list_head vm_list;
83 unsigned long vm_start;
84 unsigned long vm_end;
85};
86
87static struct ppc_vm_region consistent_head = {
88 .vm_list = LIST_HEAD_INIT(consistent_head.vm_list),
89 .vm_start = CONSISTENT_BASE,
90 .vm_end = CONSISTENT_END,
91};
92
93static struct ppc_vm_region *
94ppc_vm_region_alloc(struct ppc_vm_region *head, size_t size, gfp_t gfp)
95{
96 unsigned long addr = head->vm_start, end = head->vm_end - size;
97 unsigned long flags;
98 struct ppc_vm_region *c, *new;
99
100 new = kmalloc(sizeof(struct ppc_vm_region), gfp);
101 if (!new)
102 goto out;
103
104 spin_lock_irqsave(&consistent_lock, flags);
105
106 list_for_each_entry(c, &head->vm_list, vm_list) {
107 if ((addr + size) < addr)
108 goto nospc;
109 if ((addr + size) <= c->vm_start)
110 goto found;
111 addr = c->vm_end;
112 if (addr > end)
113 goto nospc;
114 }
115
116 found:
117 /*
118 * Insert this entry _before_ the one we found.
119 */
120 list_add_tail(&new->vm_list, &c->vm_list);
121 new->vm_start = addr;
122 new->vm_end = addr + size;
123
124 spin_unlock_irqrestore(&consistent_lock, flags);
125 return new;
126
127 nospc:
128 spin_unlock_irqrestore(&consistent_lock, flags);
129 kfree(new);
130 out:
131 return NULL;
132}
133
134static struct ppc_vm_region *ppc_vm_region_find(struct ppc_vm_region *head, unsigned long addr)
135{
136 struct ppc_vm_region *c;
137
138 list_for_each_entry(c, &head->vm_list, vm_list) {
139 if (c->vm_start == addr)
140 goto out;
141 }
142 c = NULL;
143 out:
144 return c;
145}
146
147/*
148 * Allocate DMA-coherent memory space and return both the kernel remapped
149 * virtual and bus address for that space.
150 */
151void *
152__dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp)
153{
154 struct page *page;
155 struct ppc_vm_region *c;
156 unsigned long order;
157 u64 mask = ISA_DMA_THRESHOLD, limit;
158
159 if (dev) {
160 mask = dev->coherent_dma_mask;
161
162 /*
163 * Sanity check the DMA mask - it must be non-zero, and
164 * must be able to be satisfied by a DMA allocation.
165 */
166 if (mask == 0) {
167 dev_warn(dev, "coherent DMA mask is unset\n");
168 goto no_page;
169 }
170
171 if ((~mask) & ISA_DMA_THRESHOLD) {
172 dev_warn(dev, "coherent DMA mask %#llx is smaller "
173 "than system GFP_DMA mask %#llx\n",
174 mask, (unsigned long long)ISA_DMA_THRESHOLD);
175 goto no_page;
176 }
177 }
178
179
180 size = PAGE_ALIGN(size);
181 limit = (mask + 1) & ~mask;
182 if ((limit && size >= limit) ||
183 size >= (CONSISTENT_END - CONSISTENT_BASE)) {
184 printk(KERN_WARNING "coherent allocation too big (requested %#x mask %#Lx)\n",
185 size, mask);
186 return NULL;
187 }
188
189 order = get_order(size);
190
191 /* Might be useful if we ever have a real legacy DMA zone... */
192 if (mask != 0xffffffff)
193 gfp |= GFP_DMA;
194
195 page = alloc_pages(gfp, order);
196 if (!page)
197 goto no_page;
198
199 /*
200 * Invalidate any data that might be lurking in the
201 * kernel direct-mapped region for device DMA.
202 */
203 {
204 unsigned long kaddr = (unsigned long)page_address(page);
205 memset(page_address(page), 0, size);
206 flush_dcache_range(kaddr, kaddr + size);
207 }
208
209 /*
210 * Allocate a virtual address in the consistent mapping region.
211 */
212 c = ppc_vm_region_alloc(&consistent_head, size,
213 gfp & ~(__GFP_DMA | __GFP_HIGHMEM));
214 if (c) {
215 unsigned long vaddr = c->vm_start;
216 struct page *end = page + (1 << order);
217
218 split_page(page, order);
219
220 /*
221 * Set the "dma handle"
222 */
223 *handle = page_to_phys(page);
224
225 do {
226 SetPageReserved(page);
227 map_page(vaddr, page_to_phys(page),
228 pgprot_noncached(PAGE_KERNEL));
229 page++;
230 vaddr += PAGE_SIZE;
231 } while (size -= PAGE_SIZE);
232
233 /*
234 * Free the otherwise unused pages.
235 */
236 while (page < end) {
237 __free_page(page);
238 page++;
239 }
240
241 return (void *)c->vm_start;
242 }
243
244 if (page)
245 __free_pages(page, order);
246 no_page:
247 return NULL;
248}
249EXPORT_SYMBOL(__dma_alloc_coherent);
250
251/*
252 * free a page as defined by the above mapping.
253 */
254void __dma_free_coherent(size_t size, void *vaddr)
255{
256 struct ppc_vm_region *c;
257 unsigned long flags, addr;
258
259 size = PAGE_ALIGN(size);
260
261 spin_lock_irqsave(&consistent_lock, flags);
262
263 c = ppc_vm_region_find(&consistent_head, (unsigned long)vaddr);
264 if (!c)
265 goto no_area;
266
267 if ((c->vm_end - c->vm_start) != size) {
268 printk(KERN_ERR "%s: freeing wrong coherent size (%ld != %d)\n",
269 __func__, c->vm_end - c->vm_start, size);
270 dump_stack();
271 size = c->vm_end - c->vm_start;
272 }
273
274 addr = c->vm_start;
275 do {
276 pte_t *ptep;
277 unsigned long pfn;
278
279 ptep = pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(addr),
280 addr),
281 addr),
282 addr);
283 if (!pte_none(*ptep) && pte_present(*ptep)) {
284 pfn = pte_pfn(*ptep);
285 pte_clear(&init_mm, addr, ptep);
286 if (pfn_valid(pfn)) {
287 struct page *page = pfn_to_page(pfn);
288
289 ClearPageReserved(page);
290 __free_page(page);
291 }
292 }
293 addr += PAGE_SIZE;
294 } while (size -= PAGE_SIZE);
295
296 flush_tlb_kernel_range(c->vm_start, c->vm_end);
297
298 list_del(&c->vm_list);
299
300 spin_unlock_irqrestore(&consistent_lock, flags);
301
302 kfree(c);
303 return;
304
305 no_area:
306 spin_unlock_irqrestore(&consistent_lock, flags);
307 printk(KERN_ERR "%s: trying to free invalid coherent area: %p\n",
308 __func__, vaddr);
309 dump_stack();
310}
311EXPORT_SYMBOL(__dma_free_coherent);
312
313/*
314 * make an area consistent.
315 */
316void __dma_sync(void *vaddr, size_t size, int direction)
317{
318 unsigned long start = (unsigned long)vaddr;
319 unsigned long end = start + size;
320
321 switch (direction) {
322 case DMA_NONE:
323 BUG();
324 case DMA_FROM_DEVICE:
325 /*
326 * invalidate only when cache-line aligned otherwise there is
327 * the potential for discarding uncommitted data from the cache
328 */
329 if ((start & (L1_CACHE_BYTES - 1)) || (size & (L1_CACHE_BYTES - 1)))
330 flush_dcache_range(start, end);
331 else
332 invalidate_dcache_range(start, end);
333 break;
334 case DMA_TO_DEVICE: /* writeback only */
335 clean_dcache_range(start, end);
336 break;
337 case DMA_BIDIRECTIONAL: /* writeback and invalidate */
338 flush_dcache_range(start, end);
339 break;
340 }
341}
342EXPORT_SYMBOL(__dma_sync);
343
344#ifdef CONFIG_HIGHMEM
345/*
346 * __dma_sync_page() implementation for systems using highmem.
347 * In this case, each page of a buffer must be kmapped/kunmapped
348 * in order to have a virtual address for __dma_sync(). This must
349 * not sleep so kmap_atomic()/kunmap_atomic() are used.
350 *
351 * Note: yes, it is possible and correct to have a buffer extend
352 * beyond the first page.
353 */
354static inline void __dma_sync_page_highmem(struct page *page,
355 unsigned long offset, size_t size, int direction)
356{
357 size_t seg_size = min((size_t)(PAGE_SIZE - offset), size);
358 size_t cur_size = seg_size;
359 unsigned long flags, start, seg_offset = offset;
360 int nr_segs = 1 + ((size - seg_size) + PAGE_SIZE - 1)/PAGE_SIZE;
361 int seg_nr = 0;
362
363 local_irq_save(flags);
364
365 do {
366 start = (unsigned long)kmap_atomic(page + seg_nr,
367 KM_PPC_SYNC_PAGE) + seg_offset;
368
369 /* Sync this buffer segment */
370 __dma_sync((void *)start, seg_size, direction);
371 kunmap_atomic((void *)start, KM_PPC_SYNC_PAGE);
372 seg_nr++;
373
374 /* Calculate next buffer segment size */
375 seg_size = min((size_t)PAGE_SIZE, size - cur_size);
376
377 /* Add the segment size to our running total */
378 cur_size += seg_size;
379 seg_offset = 0;
380 } while (seg_nr < nr_segs);
381
382 local_irq_restore(flags);
383}
384#endif /* CONFIG_HIGHMEM */
385
386/*
387 * __dma_sync_page makes memory consistent. identical to __dma_sync, but
388 * takes a struct page instead of a virtual address
389 */
390void __dma_sync_page(struct page *page, unsigned long offset,
391 size_t size, int direction)
392{
393#ifdef CONFIG_HIGHMEM
394 __dma_sync_page_highmem(page, offset, size, direction);
395#else
396 unsigned long start = (unsigned long)page_address(page) + offset;
397 __dma_sync((void *)start, size, direction);
398#endif
399}
400EXPORT_SYMBOL(__dma_sync_page);
diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c
index 666a5e8a5be1..3de6a0d93824 100644
--- a/arch/powerpc/mm/init_32.c
+++ b/arch/powerpc/mm/init_32.c
@@ -168,12 +168,8 @@ void __init MMU_init(void)
168 ppc_md.progress("MMU:mapin", 0x301); 168 ppc_md.progress("MMU:mapin", 0x301);
169 mapin_ram(); 169 mapin_ram();
170 170
171#ifdef CONFIG_HIGHMEM 171 /* Initialize early top-down ioremap allocator */
172 ioremap_base = PKMAP_BASE; 172 ioremap_bot = IOREMAP_TOP;
173#else
174 ioremap_base = 0xfe000000UL; /* for now, could be 0xfffff000 */
175#endif /* CONFIG_HIGHMEM */
176 ioremap_bot = ioremap_base;
177 173
178 /* Map in I/O resources */ 174 /* Map in I/O resources */
179 if (ppc_md.progress) 175 if (ppc_md.progress)
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index f668fa9ba804..579382c163a9 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -57,7 +57,7 @@
57 57
58int init_bootmem_done; 58int init_bootmem_done;
59int mem_init_done; 59int mem_init_done;
60unsigned long memory_limit; 60phys_addr_t memory_limit;
61 61
62#ifdef CONFIG_HIGHMEM 62#ifdef CONFIG_HIGHMEM
63pte_t *kmap_pte; 63pte_t *kmap_pte;
@@ -380,6 +380,23 @@ void __init mem_init(void)
380 bsssize >> 10, 380 bsssize >> 10,
381 initsize >> 10); 381 initsize >> 10);
382 382
383#ifdef CONFIG_PPC32
384 pr_info("Kernel virtual memory layout:\n");
385 pr_info(" * 0x%08lx..0x%08lx : fixmap\n", FIXADDR_START, FIXADDR_TOP);
386#ifdef CONFIG_HIGHMEM
387 pr_info(" * 0x%08lx..0x%08lx : highmem PTEs\n",
388 PKMAP_BASE, PKMAP_ADDR(LAST_PKMAP));
389#endif /* CONFIG_HIGHMEM */
390#ifdef CONFIG_NOT_COHERENT_CACHE
391 pr_info(" * 0x%08lx..0x%08lx : consistent mem\n",
392 IOREMAP_TOP, IOREMAP_TOP + CONFIG_CONSISTENT_SIZE);
393#endif /* CONFIG_NOT_COHERENT_CACHE */
394 pr_info(" * 0x%08lx..0x%08lx : early ioremap\n",
395 ioremap_bot, IOREMAP_TOP);
396 pr_info(" * 0x%08lx..0x%08lx : vmalloc & ioremap\n",
397 VMALLOC_START, VMALLOC_END);
398#endif /* CONFIG_PPC32 */
399
383 mem_init_done = 1; 400 mem_init_done = 1;
384} 401}
385 402
diff --git a/arch/powerpc/mm/mmu_context_nohash.c b/arch/powerpc/mm/mmu_context_nohash.c
index a70e311bd457..030d0005b4d2 100644
--- a/arch/powerpc/mm/mmu_context_nohash.c
+++ b/arch/powerpc/mm/mmu_context_nohash.c
@@ -127,12 +127,12 @@ static unsigned int steal_context_up(unsigned int id)
127 127
128 pr_debug("[%d] steal context %d from mm @%p\n", cpu, id, mm); 128 pr_debug("[%d] steal context %d from mm @%p\n", cpu, id, mm);
129 129
130 /* Mark this mm has having no context anymore */
131 mm->context.id = MMU_NO_CONTEXT;
132
133 /* Flush the TLB for that context */ 130 /* Flush the TLB for that context */
134 local_flush_tlb_mm(mm); 131 local_flush_tlb_mm(mm);
135 132
133 /* Mark this mm has having no context anymore */
134 mm->context.id = MMU_NO_CONTEXT;
135
136 /* XXX This clear should ultimately be part of local_flush_tlb_mm */ 136 /* XXX This clear should ultimately be part of local_flush_tlb_mm */
137 __clear_bit(id, stale_map[cpu]); 137 __clear_bit(id, stale_map[cpu]);
138 138
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index f5c6fd42265c..ae1d67cc090c 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -219,7 +219,8 @@ int ptep_set_access_flags(struct vm_area_struct *vma, unsigned long address,
219 entry = do_dcache_icache_coherency(entry); 219 entry = do_dcache_icache_coherency(entry);
220 changed = !pte_same(*(ptep), entry); 220 changed = !pte_same(*(ptep), entry);
221 if (changed) { 221 if (changed) {
222 assert_pte_locked(vma->vm_mm, address); 222 if (!(vma->vm_flags & VM_HUGETLB))
223 assert_pte_locked(vma->vm_mm, address);
223 __ptep_set_access_flags(ptep, entry); 224 __ptep_set_access_flags(ptep, entry);
224 flush_tlb_page_nohash(vma, address); 225 flush_tlb_page_nohash(vma, address);
225 } 226 }
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index 430d0908fa50..5422169626ba 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -399,8 +399,6 @@ void kernel_map_pages(struct page *page, int numpages, int enable)
399#endif /* CONFIG_DEBUG_PAGEALLOC */ 399#endif /* CONFIG_DEBUG_PAGEALLOC */
400 400
401static int fixmaps; 401static int fixmaps;
402unsigned long FIXADDR_TOP = (-PAGE_SIZE);
403EXPORT_SYMBOL(FIXADDR_TOP);
404 402
405void __set_fixmap (enum fixed_addresses idx, phys_addr_t phys, pgprot_t flags) 403void __set_fixmap (enum fixed_addresses idx, phys_addr_t phys, pgprot_t flags)
406{ 404{
diff --git a/arch/powerpc/oprofile/op_model_power4.c b/arch/powerpc/oprofile/op_model_power4.c
index 3e3d91f536e0..80774092db77 100644
--- a/arch/powerpc/oprofile/op_model_power4.c
+++ b/arch/powerpc/oprofile/op_model_power4.c
@@ -26,6 +26,7 @@
26static unsigned long reset_value[OP_MAX_COUNTER]; 26static unsigned long reset_value[OP_MAX_COUNTER];
27 27
28static int oprofile_running; 28static int oprofile_running;
29static int use_slot_nums;
29 30
30/* mmcr values are set in power4_reg_setup, used in power4_cpu_setup */ 31/* mmcr values are set in power4_reg_setup, used in power4_cpu_setup */
31static u32 mmcr0_val; 32static u32 mmcr0_val;
@@ -61,6 +62,12 @@ static int power4_reg_setup(struct op_counter_config *ctr,
61 else 62 else
62 mmcr0_val |= MMCR0_PROBLEM_DISABLE; 63 mmcr0_val |= MMCR0_PROBLEM_DISABLE;
63 64
65 if (__is_processor(PV_POWER4) || __is_processor(PV_POWER4p) ||
66 __is_processor(PV_970) || __is_processor(PV_970FX) ||
67 __is_processor(PV_970MP) || __is_processor(PV_970GX) ||
68 __is_processor(PV_POWER5) || __is_processor(PV_POWER5p))
69 use_slot_nums = 1;
70
64 return 0; 71 return 0;
65} 72}
66 73
@@ -206,7 +213,7 @@ static unsigned long get_pc(struct pt_regs *regs)
206 213
207 mmcra = mfspr(SPRN_MMCRA); 214 mmcra = mfspr(SPRN_MMCRA);
208 215
209 if (mmcra & MMCRA_SAMPLE_ENABLE) { 216 if (use_slot_nums && (mmcra & MMCRA_SAMPLE_ENABLE)) {
210 slot = ((mmcra & MMCRA_SLOT) >> MMCRA_SLOT_SHIFT); 217 slot = ((mmcra & MMCRA_SLOT) >> MMCRA_SLOT_SHIFT);
211 if (slot > 1) 218 if (slot > 1)
212 pc += 4 * (slot - 1); 219 pc += 4 * (slot - 1);
diff --git a/arch/powerpc/platforms/40x/Kconfig b/arch/powerpc/platforms/40x/Kconfig
index 14e027f5be66..f39c953d5353 100644
--- a/arch/powerpc/platforms/40x/Kconfig
+++ b/arch/powerpc/platforms/40x/Kconfig
@@ -153,6 +153,7 @@ config 405GPR
153 153
154config XILINX_VIRTEX 154config XILINX_VIRTEX
155 bool 155 bool
156 select DEFAULT_UIMAGE
156 157
157config XILINX_VIRTEX_II_PRO 158config XILINX_VIRTEX_II_PRO
158 bool 159 bool
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
index bf5c7ff2e6e5..0d83a6a0397d 100644
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
@@ -246,6 +246,7 @@ config IBM440EP_ERR42
246# Xilinx specific config options. 246# Xilinx specific config options.
247config XILINX_VIRTEX 247config XILINX_VIRTEX
248 bool 248 bool
249 select DEFAULT_UIMAGE
249 250
250# Xilinx Virtex 5 FXT FPGA architecture, selected by a Xilinx board above 251# Xilinx Virtex 5 FXT FPGA architecture, selected by a Xilinx board above
251config XILINX_VIRTEX_5_FXT 252config XILINX_VIRTEX_5_FXT
diff --git a/arch/powerpc/platforms/cell/ras.c b/arch/powerpc/platforms/cell/ras.c
index 5f961c464cc4..296b5268754e 100644
--- a/arch/powerpc/platforms/cell/ras.c
+++ b/arch/powerpc/platforms/cell/ras.c
@@ -122,12 +122,23 @@ static int __init cbe_ptcal_enable_on_node(int nid, int order)
122 122
123 area->nid = nid; 123 area->nid = nid;
124 area->order = order; 124 area->order = order;
125 area->pages = alloc_pages_node(area->nid, GFP_KERNEL, area->order); 125 area->pages = alloc_pages_node(area->nid, GFP_KERNEL | GFP_THISNODE,
126 area->order);
126 127
127 if (!area->pages) 128 if (!area->pages) {
129 printk(KERN_WARNING "%s: no page on node %d\n",
130 __func__, area->nid);
128 goto out_free_area; 131 goto out_free_area;
132 }
129 133
130 addr = __pa(page_address(area->pages)); 134 /*
135 * We move the ptcal area to the middle of the allocated
136 * page, in order to avoid prefetches in memcpy and similar
137 * functions stepping on it.
138 */
139 addr = __pa(page_address(area->pages)) + (PAGE_SIZE >> 1);
140 printk(KERN_DEBUG "%s: enabling PTCAL on node %d address=0x%016lx\n",
141 __func__, area->nid, addr);
131 142
132 ret = -EIO; 143 ret = -EIO;
133 if (rtas_call(ptcal_start_tok, 3, 1, NULL, area->nid, 144 if (rtas_call(ptcal_start_tok, 3, 1, NULL, area->nid,
diff --git a/arch/powerpc/platforms/iseries/Kconfig b/arch/powerpc/platforms/iseries/Kconfig
index 647e87787437..47a20cfb4486 100644
--- a/arch/powerpc/platforms/iseries/Kconfig
+++ b/arch/powerpc/platforms/iseries/Kconfig
@@ -17,6 +17,7 @@ config VIODASD
17 17
18config VIOCD 18config VIOCD
19 tristate "iSeries Virtual I/O CD support" 19 tristate "iSeries Virtual I/O CD support"
20 depends on BLOCK
20 select VIOPATH 21 select VIOPATH
21 help 22 help
22 If you are running Linux on an IBM iSeries system and you want to 23 If you are running Linux on an IBM iSeries system and you want to
diff --git a/arch/powerpc/platforms/iseries/iommu.c b/arch/powerpc/platforms/iseries/iommu.c
index ff43f1fd8343..40219823d9b0 100644
--- a/arch/powerpc/platforms/iseries/iommu.c
+++ b/arch/powerpc/platforms/iseries/iommu.c
@@ -174,9 +174,10 @@ static struct iommu_table *iommu_table_find(struct iommu_table * tbl)
174} 174}
175 175
176 176
177void iommu_devnode_init_iSeries(struct pci_dev *pdev, struct device_node *dn) 177static void pci_dma_dev_setup_iseries(struct pci_dev *pdev)
178{ 178{
179 struct iommu_table *tbl; 179 struct iommu_table *tbl;
180 struct device_node *dn = pdev->sysdata;
180 struct pci_dn *pdn = PCI_DN(dn); 181 struct pci_dn *pdn = PCI_DN(dn);
181 const u32 *lsn = of_get_property(dn, "linux,logical-slot-number", NULL); 182 const u32 *lsn = of_get_property(dn, "linux,logical-slot-number", NULL);
182 183
@@ -194,6 +195,8 @@ void iommu_devnode_init_iSeries(struct pci_dev *pdev, struct device_node *dn)
194 kfree(tbl); 195 kfree(tbl);
195 pdev->dev.archdata.dma_data = pdn->iommu_table; 196 pdev->dev.archdata.dma_data = pdn->iommu_table;
196} 197}
198#else
199#define pci_dma_dev_setup_iseries NULL
197#endif 200#endif
198 201
199static struct iommu_table veth_iommu_table; 202static struct iommu_table veth_iommu_table;
@@ -251,5 +254,6 @@ void iommu_init_early_iSeries(void)
251 ppc_md.tce_build = tce_build_iSeries; 254 ppc_md.tce_build = tce_build_iSeries;
252 ppc_md.tce_free = tce_free_iSeries; 255 ppc_md.tce_free = tce_free_iSeries;
253 256
257 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_iseries;
254 set_pci_dma_ops(&dma_iommu_ops); 258 set_pci_dma_ops(&dma_iommu_ops);
255} 259}
diff --git a/arch/powerpc/platforms/iseries/pci.c b/arch/powerpc/platforms/iseries/pci.c
index 02a634faedbe..21cddc30220b 100644
--- a/arch/powerpc/platforms/iseries/pci.c
+++ b/arch/powerpc/platforms/iseries/pci.c
@@ -444,7 +444,6 @@ void __init iSeries_pcibios_fixup_resources(struct pci_dev *pdev)
444 pdev->sysdata = node; 444 pdev->sysdata = node;
445 allocate_device_bars(pdev); 445 allocate_device_bars(pdev);
446 iseries_device_information(pdev, bus, *sub_bus); 446 iseries_device_information(pdev, bus, *sub_bus);
447 iommu_devnode_init_iSeries(pdev, node);
448} 447}
449 448
450/* 449/*
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c
index 301855263b81..04296ffff8bf 100644
--- a/arch/powerpc/platforms/maple/pci.c
+++ b/arch/powerpc/platforms/maple/pci.c
@@ -592,3 +592,17 @@ int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel)
592 } 592 }
593 return irq; 593 return irq;
594} 594}
595
596static void __devinit quirk_ipr_msi(struct pci_dev *dev)
597{
598 /* Something prevents MSIs from the IPR from working on Bimini,
599 * and the driver has no smarts to recover. So disable MSI
600 * on it for now. */
601
602 if (machine_is(maple)) {
603 dev->no_msi = 1;
604 dev_info(&dev->dev, "Quirk disabled MSI\n");
605 }
606}
607DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN,
608 quirk_ipr_msi);
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index afe8dbc964aa..5c64ccd402e2 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -208,52 +208,6 @@ static int __init of_add_fixed_phys(void)
208arch_initcall(of_add_fixed_phys); 208arch_initcall(of_add_fixed_phys);
209#endif /* CONFIG_FIXED_PHY */ 209#endif /* CONFIG_FIXED_PHY */
210 210
211#ifdef CONFIG_PPC_83xx
212static int __init mpc83xx_wdt_init(void)
213{
214 struct resource r;
215 struct device_node *np;
216 struct platform_device *dev;
217 u32 freq = fsl_get_sys_freq();
218 int ret;
219
220 np = of_find_compatible_node(NULL, "watchdog", "mpc83xx_wdt");
221
222 if (!np) {
223 ret = -ENODEV;
224 goto nodev;
225 }
226
227 memset(&r, 0, sizeof(r));
228
229 ret = of_address_to_resource(np, 0, &r);
230 if (ret)
231 goto err;
232
233 dev = platform_device_register_simple("mpc83xx_wdt", 0, &r, 1);
234 if (IS_ERR(dev)) {
235 ret = PTR_ERR(dev);
236 goto err;
237 }
238
239 ret = platform_device_add_data(dev, &freq, sizeof(freq));
240 if (ret)
241 goto unreg;
242
243 of_node_put(np);
244 return 0;
245
246unreg:
247 platform_device_unregister(dev);
248err:
249 of_node_put(np);
250nodev:
251 return ret;
252}
253
254arch_initcall(mpc83xx_wdt_init);
255#endif
256
257static enum fsl_usb2_phy_modes determine_usb_phy(const char *phy_type) 211static enum fsl_usb2_phy_modes determine_usb_phy(const char *phy_type)
258{ 212{
259 if (!phy_type) 213 if (!phy_type)
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 21b956701596..0efc12d1a3d7 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1057,13 +1057,6 @@ struct mpic * __init mpic_alloc(struct device_node *node,
1057 memset(mpic, 0, sizeof(struct mpic)); 1057 memset(mpic, 0, sizeof(struct mpic));
1058 mpic->name = name; 1058 mpic->name = name;
1059 1059
1060 mpic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR,
1061 isu_size, &mpic_host_ops,
1062 flags & MPIC_LARGE_VECTORS ? 2048 : 256);
1063 if (mpic->irqhost == NULL)
1064 return NULL;
1065
1066 mpic->irqhost->host_data = mpic;
1067 mpic->hc_irq = mpic_irq_chip; 1060 mpic->hc_irq = mpic_irq_chip;
1068 mpic->hc_irq.typename = name; 1061 mpic->hc_irq.typename = name;
1069 if (flags & MPIC_PRIMARY) 1062 if (flags & MPIC_PRIMARY)
@@ -1213,6 +1206,15 @@ struct mpic * __init mpic_alloc(struct device_node *node,
1213 mpic->isu_shift = 1 + __ilog2(mpic->isu_size - 1); 1206 mpic->isu_shift = 1 + __ilog2(mpic->isu_size - 1);
1214 mpic->isu_mask = (1 << mpic->isu_shift) - 1; 1207 mpic->isu_mask = (1 << mpic->isu_shift) - 1;
1215 1208
1209 mpic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR,
1210 isu_size ? isu_size : mpic->num_sources,
1211 &mpic_host_ops,
1212 flags & MPIC_LARGE_VECTORS ? 2048 : 256);
1213 if (mpic->irqhost == NULL)
1214 return NULL;
1215
1216 mpic->irqhost->host_data = mpic;
1217
1216 /* Display version */ 1218 /* Display version */
1217 switch (greg_feature & MPIC_GREG_FEATURE_VERSION_MASK) { 1219 switch (greg_feature & MPIC_GREG_FEATURE_VERSION_MASK) {
1218 case 1: 1220 case 1:
diff --git a/arch/powerpc/sysdev/xilinx_intc.c b/arch/powerpc/sysdev/xilinx_intc.c
index a22e1a2df1af..c658b413c9b4 100644
--- a/arch/powerpc/sysdev/xilinx_intc.c
+++ b/arch/powerpc/sysdev/xilinx_intc.c
@@ -41,8 +41,32 @@
41 41
42static struct irq_host *master_irqhost; 42static struct irq_host *master_irqhost;
43 43
44#define XILINX_INTC_MAXIRQS (32)
45
46/* The following table allows the interrupt type, edge or level,
47 * to be cached after being read from the device tree until the interrupt
48 * is mapped
49 */
50static int xilinx_intc_typetable[XILINX_INTC_MAXIRQS];
51
52/* Map the interrupt type from the device tree to the interrupt types
53 * used by the interrupt subsystem
54 */
55static unsigned char xilinx_intc_map_senses[] = {
56 IRQ_TYPE_EDGE_RISING,
57 IRQ_TYPE_EDGE_FALLING,
58 IRQ_TYPE_LEVEL_HIGH,
59 IRQ_TYPE_LEVEL_LOW,
60};
61
44/* 62/*
45 * IRQ Chip operations 63 * The interrupt controller is setup such that it doesn't work well with
64 * the level interrupt handler in the kernel because the handler acks the
65 * interrupt before calling the application interrupt handler. To deal with
66 * that, we use 2 different irq chips so that different functions can be
67 * used for level and edge type interrupts.
68 *
69 * IRQ Chip common (across level and edge) operations
46 */ 70 */
47static void xilinx_intc_mask(unsigned int virq) 71static void xilinx_intc_mask(unsigned int virq)
48{ 72{
@@ -52,15 +76,54 @@ static void xilinx_intc_mask(unsigned int virq)
52 out_be32(regs + XINTC_CIE, 1 << irq); 76 out_be32(regs + XINTC_CIE, 1 << irq);
53} 77}
54 78
55static void xilinx_intc_unmask(unsigned int virq) 79static int xilinx_intc_set_type(unsigned int virq, unsigned int flow_type)
80{
81 struct irq_desc *desc = get_irq_desc(virq);
82
83 desc->status &= ~(IRQ_TYPE_SENSE_MASK | IRQ_LEVEL);
84 desc->status |= flow_type & IRQ_TYPE_SENSE_MASK;
85 if (flow_type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW))
86 desc->status |= IRQ_LEVEL;
87 return 0;
88}
89
90/*
91 * IRQ Chip level operations
92 */
93static void xilinx_intc_level_unmask(unsigned int virq)
56{ 94{
57 int irq = virq_to_hw(virq); 95 int irq = virq_to_hw(virq);
58 void * regs = get_irq_chip_data(virq); 96 void * regs = get_irq_chip_data(virq);
59 pr_debug("unmask: %d\n", irq); 97 pr_debug("unmask: %d\n", irq);
60 out_be32(regs + XINTC_SIE, 1 << irq); 98 out_be32(regs + XINTC_SIE, 1 << irq);
99
100 /* ack level irqs because they can't be acked during
101 * ack function since the handle_level_irq function
102 * acks the irq before calling the inerrupt handler
103 */
104 out_be32(regs + XINTC_IAR, 1 << irq);
61} 105}
62 106
63static void xilinx_intc_ack(unsigned int virq) 107static struct irq_chip xilinx_intc_level_irqchip = {
108 .typename = "Xilinx Level INTC",
109 .mask = xilinx_intc_mask,
110 .mask_ack = xilinx_intc_mask,
111 .unmask = xilinx_intc_level_unmask,
112 .set_type = xilinx_intc_set_type,
113};
114
115/*
116 * IRQ Chip edge operations
117 */
118static void xilinx_intc_edge_unmask(unsigned int virq)
119{
120 int irq = virq_to_hw(virq);
121 void *regs = get_irq_chip_data(virq);
122 pr_debug("unmask: %d\n", irq);
123 out_be32(regs + XINTC_SIE, 1 << irq);
124}
125
126static void xilinx_intc_edge_ack(unsigned int virq)
64{ 127{
65 int irq = virq_to_hw(virq); 128 int irq = virq_to_hw(virq);
66 void * regs = get_irq_chip_data(virq); 129 void * regs = get_irq_chip_data(virq);
@@ -68,27 +131,60 @@ static void xilinx_intc_ack(unsigned int virq)
68 out_be32(regs + XINTC_IAR, 1 << irq); 131 out_be32(regs + XINTC_IAR, 1 << irq);
69} 132}
70 133
71static struct irq_chip xilinx_intc_irqchip = { 134static struct irq_chip xilinx_intc_edge_irqchip = {
72 .typename = "Xilinx INTC", 135 .typename = "Xilinx Edge INTC",
73 .mask = xilinx_intc_mask, 136 .mask = xilinx_intc_mask,
74 .unmask = xilinx_intc_unmask, 137 .unmask = xilinx_intc_edge_unmask,
75 .ack = xilinx_intc_ack, 138 .ack = xilinx_intc_edge_ack,
139 .set_type = xilinx_intc_set_type,
76}; 140};
77 141
78/* 142/*
79 * IRQ Host operations 143 * IRQ Host operations
80 */ 144 */
145
146/**
147 * xilinx_intc_xlate - translate virq# from device tree interrupts property
148 */
149static int xilinx_intc_xlate(struct irq_host *h, struct device_node *ct,
150 u32 *intspec, unsigned int intsize,
151 irq_hw_number_t *out_hwirq,
152 unsigned int *out_flags)
153{
154 if ((intsize < 2) || (intspec[0] >= XILINX_INTC_MAXIRQS))
155 return -EINVAL;
156
157 /* keep a copy of the interrupt type til the interrupt is mapped
158 */
159 xilinx_intc_typetable[intspec[0]] = xilinx_intc_map_senses[intspec[1]];
160
161 /* Xilinx uses 2 interrupt entries, the 1st being the h/w
162 * interrupt number, the 2nd being the interrupt type, edge or level
163 */
164 *out_hwirq = intspec[0];
165 *out_flags = xilinx_intc_map_senses[intspec[1]];
166
167 return 0;
168}
81static int xilinx_intc_map(struct irq_host *h, unsigned int virq, 169static int xilinx_intc_map(struct irq_host *h, unsigned int virq,
82 irq_hw_number_t irq) 170 irq_hw_number_t irq)
83{ 171{
84 set_irq_chip_data(virq, h->host_data); 172 set_irq_chip_data(virq, h->host_data);
85 set_irq_chip_and_handler(virq, &xilinx_intc_irqchip, handle_level_irq); 173
86 set_irq_type(virq, IRQ_TYPE_NONE); 174 if (xilinx_intc_typetable[irq] == IRQ_TYPE_LEVEL_HIGH ||
175 xilinx_intc_typetable[irq] == IRQ_TYPE_LEVEL_LOW) {
176 set_irq_chip_and_handler(virq, &xilinx_intc_level_irqchip,
177 handle_level_irq);
178 } else {
179 set_irq_chip_and_handler(virq, &xilinx_intc_edge_irqchip,
180 handle_edge_irq);
181 }
87 return 0; 182 return 0;
88} 183}
89 184
90static struct irq_host_ops xilinx_intc_ops = { 185static struct irq_host_ops xilinx_intc_ops = {
91 .map = xilinx_intc_map, 186 .map = xilinx_intc_map,
187 .xlate = xilinx_intc_xlate,
92}; 188};
93 189
94struct irq_host * __init 190struct irq_host * __init
@@ -116,7 +212,8 @@ xilinx_intc_init(struct device_node *np)
116 out_be32(regs + XINTC_MER, 0x3UL); /* Turn on the Master Enable. */ 212 out_be32(regs + XINTC_MER, 0x3UL); /* Turn on the Master Enable. */
117 213
118 /* Allocate and initialize an irq_host structure. */ 214 /* Allocate and initialize an irq_host structure. */
119 irq = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, 32, &xilinx_intc_ops, -1); 215 irq = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, XILINX_INTC_MAXIRQS,
216 &xilinx_intc_ops, -1);
120 if (!irq) 217 if (!irq)
121 panic(__FILE__ ": Cannot allocate IRQ host\n"); 218 panic(__FILE__ ": Cannot allocate IRQ host\n");
122 irq->host_data = regs; 219 irq->host_data = regs;
diff --git a/arch/sh/boards/board-ap325rxa.c b/arch/sh/boards/board-ap325rxa.c
index 39e46919df14..f2a29641b6a3 100644
--- a/arch/sh/boards/board-ap325rxa.c
+++ b/arch/sh/boards/board-ap325rxa.c
@@ -263,6 +263,9 @@ static int camera_probe(void)
263 struct i2c_msg msg; 263 struct i2c_msg msg;
264 int ret; 264 int ret;
265 265
266 if (!a)
267 return -ENODEV;
268
266 camera_power(1); 269 camera_power(1);
267 msg.addr = 0x6e; 270 msg.addr = 0x6e;
268 msg.buf = camera_ncm03j_magic; 271 msg.buf = camera_ncm03j_magic;
diff --git a/arch/sh/include/asm/flat.h b/arch/sh/include/asm/flat.h
index d3b2b4f109e3..5d84df5e27f6 100644
--- a/arch/sh/include/asm/flat.h
+++ b/arch/sh/include/asm/flat.h
@@ -12,7 +12,6 @@
12#ifndef __ASM_SH_FLAT_H 12#ifndef __ASM_SH_FLAT_H
13#define __ASM_SH_FLAT_H 13#define __ASM_SH_FLAT_H
14 14
15#define flat_stack_align(sp) /* nothing needed */
16#define flat_argvp_envp_on_stack() 0 15#define flat_argvp_envp_on_stack() 0
17#define flat_old_ram_flag(flags) (flags) 16#define flat_old_ram_flag(flags) (flags)
18#define flat_reloc_valid(reloc, size) ((reloc) <= (size)) 17#define flat_reloc_valid(reloc, size) ((reloc) <= (size))
diff --git a/arch/sparc/include/asm/elf_64.h b/arch/sparc/include/asm/elf_64.h
index 425c2f9be6d5..d42e393078c4 100644
--- a/arch/sparc/include/asm/elf_64.h
+++ b/arch/sparc/include/asm/elf_64.h
@@ -208,8 +208,9 @@ do { unsigned long new_flags = current_thread_info()->flags; \
208 else \ 208 else \
209 clear_thread_flag(TIF_ABI_PENDING); \ 209 clear_thread_flag(TIF_ABI_PENDING); \
210 /* flush_thread will update pgd cache */ \ 210 /* flush_thread will update pgd cache */ \
211 if (current->personality != PER_LINUX32) \ 211 if (personality(current->personality) != PER_LINUX32) \
212 set_personality(PER_LINUX); \ 212 set_personality(PER_LINUX | \
213 (current->personality & (~PER_MASK))); \
213} while (0) 214} while (0)
214 215
215#endif /* !(__ASM_SPARC64_ELF_H) */ 216#endif /* !(__ASM_SPARC64_ELF_H) */
diff --git a/arch/sparc/lib/csum_copy_from_user.S b/arch/sparc/lib/csum_copy_from_user.S
index a22eddbe5dba..e0304e6a2242 100644
--- a/arch/sparc/lib/csum_copy_from_user.S
+++ b/arch/sparc/lib/csum_copy_from_user.S
@@ -5,7 +5,7 @@
5 5
6#define EX_LD(x) \ 6#define EX_LD(x) \
798: x; \ 798: x; \
8 .section .fixup; \ 8 .section .fixup, "ax"; \
9 .align 4; \ 9 .align 4; \
1099: retl; \ 1099: retl; \
11 mov -1, %o0; \ 11 mov -1, %o0; \
diff --git a/arch/sparc/lib/csum_copy_to_user.S b/arch/sparc/lib/csum_copy_to_user.S
index d5b12f441f02..afd01acc587c 100644
--- a/arch/sparc/lib/csum_copy_to_user.S
+++ b/arch/sparc/lib/csum_copy_to_user.S
@@ -5,7 +5,7 @@
5 5
6#define EX_ST(x) \ 6#define EX_ST(x) \
798: x; \ 798: x; \
8 .section .fixup; \ 8 .section .fixup,"ax"; \
9 .align 4; \ 9 .align 4; \
1099: retl; \ 1099: retl; \
11 mov -1, %o0; \ 11 mov -1, %o0; \
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index df9e885eee14..a6efe0a2e9ae 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -498,6 +498,19 @@ config PARAVIRT
498 over full virtualization. However, when run without a hypervisor 498 over full virtualization. However, when run without a hypervisor
499 the kernel is theoretically slower and slightly larger. 499 the kernel is theoretically slower and slightly larger.
500 500
501config PARAVIRT_SPINLOCKS
502 bool "Paravirtualization layer for spinlocks"
503 depends on PARAVIRT && SMP && EXPERIMENTAL
504 ---help---
505 Paravirtualized spinlocks allow a pvops backend to replace the
506 spinlock implementation with something virtualization-friendly
507 (for example, block the virtual CPU rather than spinning).
508
509 Unfortunately the downside is an up to 5% performance hit on
510 native kernels, with various workloads.
511
512 If you are unsure how to answer this question, answer N.
513
501config PARAVIRT_CLOCK 514config PARAVIRT_CLOCK
502 bool 515 bool
503 default n 516 default n
diff --git a/arch/x86/boot/compressed/relocs.c b/arch/x86/boot/compressed/relocs.c
index 857e492c571e..bbeb0c3fbd90 100644
--- a/arch/x86/boot/compressed/relocs.c
+++ b/arch/x86/boot/compressed/relocs.c
@@ -504,8 +504,11 @@ static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym))
504 if (sym->st_shndx == SHN_ABS) { 504 if (sym->st_shndx == SHN_ABS) {
505 continue; 505 continue;
506 } 506 }
507 if (r_type == R_386_PC32) { 507 if (r_type == R_386_NONE || r_type == R_386_PC32) {
508 /* PC relative relocations don't need to be adjusted */ 508 /*
509 * NONE can be ignored and and PC relative
510 * relocations don't need to be adjusted.
511 */
509 } 512 }
510 else if (r_type == R_386_32) { 513 else if (r_type == R_386_32) {
511 /* Visit relocations that need to be adjusted */ 514 /* Visit relocations that need to be adjusted */
diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c
index 5054c2ddd1a0..74b3d2ba84e9 100644
--- a/arch/x86/boot/memory.c
+++ b/arch/x86/boot/memory.c
@@ -17,11 +17,6 @@
17 17
18#define SMAP 0x534d4150 /* ASCII "SMAP" */ 18#define SMAP 0x534d4150 /* ASCII "SMAP" */
19 19
20struct e820_ext_entry {
21 struct e820entry std;
22 u32 ext_flags;
23} __attribute__((packed));
24
25static int detect_memory_e820(void) 20static int detect_memory_e820(void)
26{ 21{
27 int count = 0; 22 int count = 0;
@@ -29,13 +24,21 @@ static int detect_memory_e820(void)
29 u32 size, id, edi; 24 u32 size, id, edi;
30 u8 err; 25 u8 err;
31 struct e820entry *desc = boot_params.e820_map; 26 struct e820entry *desc = boot_params.e820_map;
32 static struct e820_ext_entry buf; /* static so it is zeroed */ 27 static struct e820entry buf; /* static so it is zeroed */
33 28
34 /* 29 /*
35 * Set this here so that if the BIOS doesn't change this field 30 * Note: at least one BIOS is known which assumes that the
36 * but still doesn't change %ecx, we're still okay... 31 * buffer pointed to by one e820 call is the same one as
32 * the previous call, and only changes modified fields. Therefore,
33 * we use a temporary buffer and copy the results entry by entry.
34 *
35 * This routine deliberately does not try to account for
36 * ACPI 3+ extended attributes. This is because there are
37 * BIOSes in the field which report zero for the valid bit for
38 * all ranges, and we don't currently make any use of the
39 * other attribute bits. Revisit this if we see the extended
40 * attribute bits deployed in a meaningful way in the future.
37 */ 41 */
38 buf.ext_flags = 1;
39 42
40 do { 43 do {
41 size = sizeof buf; 44 size = sizeof buf;
@@ -66,13 +69,7 @@ static int detect_memory_e820(void)
66 break; 69 break;
67 } 70 }
68 71
69 /* ACPI 3.0 added the extended flags support. If bit 0 72 *desc++ = buf;
70 in the extended flags is zero, we're supposed to simply
71 ignore the entry -- a backwards incompatible change! */
72 if (size > 20 && !(buf.ext_flags & 1))
73 continue;
74
75 *desc++ = buf.std;
76 count++; 73 count++;
77 } while (next && count < ARRAY_SIZE(boot_params.e820_map)); 74 } while (next && count < ARRAY_SIZE(boot_params.e820_map));
78 75
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 378e3691c08c..a53da004e08e 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -1443,7 +1443,7 @@ u64 _paravirt_ident_64(u64);
1443 1443
1444#define paravirt_nop ((void *)_paravirt_nop) 1444#define paravirt_nop ((void *)_paravirt_nop)
1445 1445
1446#ifdef CONFIG_SMP 1446#if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT_SPINLOCKS)
1447 1447
1448static inline int __raw_spin_is_locked(struct raw_spinlock *lock) 1448static inline int __raw_spin_is_locked(struct raw_spinlock *lock)
1449{ 1449{
diff --git a/arch/x86/include/asm/percpu.h b/arch/x86/include/asm/percpu.h
index aee103b26d01..02ecb30982a3 100644
--- a/arch/x86/include/asm/percpu.h
+++ b/arch/x86/include/asm/percpu.h
@@ -82,22 +82,22 @@ do { \
82 case 1: \ 82 case 1: \
83 asm(op "b %1,"__percpu_arg(0) \ 83 asm(op "b %1,"__percpu_arg(0) \
84 : "+m" (var) \ 84 : "+m" (var) \
85 : "ri" ((T__)val)); \ 85 : "qi" ((T__)(val))); \
86 break; \ 86 break; \
87 case 2: \ 87 case 2: \
88 asm(op "w %1,"__percpu_arg(0) \ 88 asm(op "w %1,"__percpu_arg(0) \
89 : "+m" (var) \ 89 : "+m" (var) \
90 : "ri" ((T__)val)); \ 90 : "ri" ((T__)(val))); \
91 break; \ 91 break; \
92 case 4: \ 92 case 4: \
93 asm(op "l %1,"__percpu_arg(0) \ 93 asm(op "l %1,"__percpu_arg(0) \
94 : "+m" (var) \ 94 : "+m" (var) \
95 : "ri" ((T__)val)); \ 95 : "ri" ((T__)(val))); \
96 break; \ 96 break; \
97 case 8: \ 97 case 8: \
98 asm(op "q %1,"__percpu_arg(0) \ 98 asm(op "q %1,"__percpu_arg(0) \
99 : "+m" (var) \ 99 : "+m" (var) \
100 : "re" ((T__)val)); \ 100 : "re" ((T__)(val))); \
101 break; \ 101 break; \
102 default: __bad_percpu_size(); \ 102 default: __bad_percpu_size(); \
103 } \ 103 } \
@@ -109,7 +109,7 @@ do { \
109 switch (sizeof(var)) { \ 109 switch (sizeof(var)) { \
110 case 1: \ 110 case 1: \
111 asm(op "b "__percpu_arg(1)",%0" \ 111 asm(op "b "__percpu_arg(1)",%0" \
112 : "=r" (ret__) \ 112 : "=q" (ret__) \
113 : "m" (var)); \ 113 : "m" (var)); \
114 break; \ 114 break; \
115 case 2: \ 115 case 2: \
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
index e304b66abeea..624f133943ed 100644
--- a/arch/x86/include/asm/ptrace.h
+++ b/arch/x86/include/asm/ptrace.h
@@ -187,14 +187,15 @@ static inline int v8086_mode(struct pt_regs *regs)
187 187
188/* 188/*
189 * X86_32 CPUs don't save ss and esp if the CPU is already in kernel mode 189 * X86_32 CPUs don't save ss and esp if the CPU is already in kernel mode
190 * when it traps. So regs will be the current sp. 190 * when it traps. The previous stack will be directly underneath the saved
191 * registers, and 'sp/ss' won't even have been saved. Thus the '&regs->sp'.
191 * 192 *
192 * This is valid only for kernel mode traps. 193 * This is valid only for kernel mode traps.
193 */ 194 */
194static inline unsigned long kernel_trap_sp(struct pt_regs *regs) 195static inline unsigned long kernel_stack_pointer(struct pt_regs *regs)
195{ 196{
196#ifdef CONFIG_X86_32 197#ifdef CONFIG_X86_32
197 return (unsigned long)regs; 198 return (unsigned long)(&regs->sp);
198#else 199#else
199 return regs->sp; 200 return regs->sp;
200#endif 201#endif
diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h
index e5e6caffec87..b7e5db876399 100644
--- a/arch/x86/include/asm/spinlock.h
+++ b/arch/x86/include/asm/spinlock.h
@@ -172,7 +172,7 @@ static inline int __ticket_spin_is_contended(raw_spinlock_t *lock)
172 return (((tmp >> TICKET_SHIFT) - tmp) & ((1 << TICKET_SHIFT) - 1)) > 1; 172 return (((tmp >> TICKET_SHIFT) - tmp) & ((1 << TICKET_SHIFT) - 1)) > 1;
173} 173}
174 174
175#ifndef CONFIG_PARAVIRT 175#ifndef CONFIG_PARAVIRT_SPINLOCKS
176 176
177static inline int __raw_spin_is_locked(raw_spinlock_t *lock) 177static inline int __raw_spin_is_locked(raw_spinlock_t *lock)
178{ 178{
@@ -206,7 +206,7 @@ static __always_inline void __raw_spin_lock_flags(raw_spinlock_t *lock,
206 __raw_spin_lock(lock); 206 __raw_spin_lock(lock);
207} 207}
208 208
209#endif 209#endif /* CONFIG_PARAVIRT_SPINLOCKS */
210 210
211static inline void __raw_spin_unlock_wait(raw_spinlock_t *lock) 211static inline void __raw_spin_unlock_wait(raw_spinlock_t *lock)
212{ 212{
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index 145cce75cda7..88d1bfc847d3 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -89,7 +89,8 @@ obj-$(CONFIG_DEBUG_NX_TEST) += test_nx.o
89obj-$(CONFIG_VMI) += vmi_32.o vmiclock_32.o 89obj-$(CONFIG_VMI) += vmi_32.o vmiclock_32.o
90obj-$(CONFIG_KVM_GUEST) += kvm.o 90obj-$(CONFIG_KVM_GUEST) += kvm.o
91obj-$(CONFIG_KVM_CLOCK) += kvmclock.o 91obj-$(CONFIG_KVM_CLOCK) += kvmclock.o
92obj-$(CONFIG_PARAVIRT) += paravirt.o paravirt_patch_$(BITS).o paravirt-spinlocks.o 92obj-$(CONFIG_PARAVIRT) += paravirt.o paravirt_patch_$(BITS).o
93obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= paravirt-spinlocks.o
93obj-$(CONFIG_PARAVIRT_CLOCK) += pvclock.o 94obj-$(CONFIG_PARAVIRT_CLOCK) += pvclock.o
94 95
95obj-$(CONFIG_PCSPKR_PLATFORM) += pcspeaker.o 96obj-$(CONFIG_PCSPKR_PLATFORM) += pcspeaker.o
diff --git a/arch/x86/kernel/apic/es7000_32.c b/arch/x86/kernel/apic/es7000_32.c
index 1c11b819f245..302947775575 100644
--- a/arch/x86/kernel/apic/es7000_32.c
+++ b/arch/x86/kernel/apic/es7000_32.c
@@ -254,7 +254,7 @@ static int parse_unisys_oem(char *oemptr)
254} 254}
255 255
256#ifdef CONFIG_ACPI 256#ifdef CONFIG_ACPI
257static int find_unisys_acpi_oem_table(unsigned long *oem_addr) 257static int __init find_unisys_acpi_oem_table(unsigned long *oem_addr)
258{ 258{
259 struct acpi_table_header *header = NULL; 259 struct acpi_table_header *header = NULL;
260 struct es7000_oem_table *table; 260 struct es7000_oem_table *table;
@@ -285,7 +285,7 @@ static int find_unisys_acpi_oem_table(unsigned long *oem_addr)
285 return 0; 285 return 0;
286} 286}
287 287
288static void unmap_unisys_acpi_oem_table(unsigned long oem_addr) 288static void __init unmap_unisys_acpi_oem_table(unsigned long oem_addr)
289{ 289{
290 if (!oem_addr) 290 if (!oem_addr)
291 return; 291 return;
@@ -306,7 +306,7 @@ static int es7000_check_dsdt(void)
306static int es7000_acpi_ret; 306static int es7000_acpi_ret;
307 307
308/* Hook from generic ACPI tables.c */ 308/* Hook from generic ACPI tables.c */
309static int es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id) 309static int __init es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
310{ 310{
311 unsigned long oem_addr = 0; 311 unsigned long oem_addr = 0;
312 int check_dsdt; 312 int check_dsdt;
@@ -717,7 +717,7 @@ struct apic apic_es7000_cluster = {
717 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle, 717 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
718}; 718};
719 719
720struct apic apic_es7000 = { 720struct apic __refdata apic_es7000 = {
721 721
722 .name = "es7000", 722 .name = "es7000",
723 .probe = probe_es7000, 723 .probe = probe_es7000,
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index c1caefc82e62..77848d9fca68 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -114,6 +114,13 @@ DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
114} }; 114} };
115EXPORT_PER_CPU_SYMBOL_GPL(gdt_page); 115EXPORT_PER_CPU_SYMBOL_GPL(gdt_page);
116 116
117static int __init x86_xsave_setup(char *s)
118{
119 setup_clear_cpu_cap(X86_FEATURE_XSAVE);
120 return 1;
121}
122__setup("noxsave", x86_xsave_setup);
123
117#ifdef CONFIG_X86_32 124#ifdef CONFIG_X86_32
118static int cachesize_override __cpuinitdata = -1; 125static int cachesize_override __cpuinitdata = -1;
119static int disable_x86_serial_nr __cpuinitdata = 1; 126static int disable_x86_serial_nr __cpuinitdata = 1;
diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
index 208ecf6643df..752e8c6b2c7e 100644
--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -550,7 +550,7 @@ static int __init acpi_cpufreq_early_init(void)
550 return -ENOMEM; 550 return -ENOMEM;
551 } 551 }
552 for_each_possible_cpu(i) { 552 for_each_possible_cpu(i) {
553 if (!alloc_cpumask_var_node( 553 if (!zalloc_cpumask_var_node(
554 &per_cpu_ptr(acpi_perf_data, i)->shared_cpu_map, 554 &per_cpu_ptr(acpi_perf_data, i)->shared_cpu_map,
555 GFP_KERNEL, cpu_to_node(i))) { 555 GFP_KERNEL, cpu_to_node(i))) {
556 556
@@ -693,8 +693,8 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
693 if (perf->control_register.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE && 693 if (perf->control_register.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE &&
694 policy->cpuinfo.transition_latency > 20 * 1000) { 694 policy->cpuinfo.transition_latency > 20 * 1000) {
695 policy->cpuinfo.transition_latency = 20 * 1000; 695 policy->cpuinfo.transition_latency = 20 * 1000;
696 printk_once(KERN_INFO "Capping off P-state tranision" 696 printk_once(KERN_INFO
697 " latency at 20 uS\n"); 697 "P-state transition latency capped at 20 uS\n");
698 } 698 }
699 699
700 /* table init */ 700 /* table init */
diff --git a/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c b/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
index 6ac55bd341ae..869615193720 100644
--- a/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
+++ b/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
@@ -168,6 +168,7 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
168 case 0x0E: /* Core */ 168 case 0x0E: /* Core */
169 case 0x0F: /* Core Duo */ 169 case 0x0F: /* Core Duo */
170 case 0x16: /* Celeron Core */ 170 case 0x16: /* Celeron Core */
171 case 0x1C: /* Atom */
171 p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS; 172 p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
172 return speedstep_get_frequency(SPEEDSTEP_CPU_PCORE); 173 return speedstep_get_frequency(SPEEDSTEP_CPU_PCORE);
173 case 0x0D: /* Pentium M (Dothan) */ 174 case 0x0D: /* Pentium M (Dothan) */
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k7.c b/arch/x86/kernel/cpu/cpufreq/powernow-k7.c
index 3c28ccd49742..d47c775eb0ab 100644
--- a/arch/x86/kernel/cpu/cpufreq/powernow-k7.c
+++ b/arch/x86/kernel/cpu/cpufreq/powernow-k7.c
@@ -168,10 +168,12 @@ static int check_powernow(void)
168 return 1; 168 return 1;
169} 169}
170 170
171#ifdef CONFIG_X86_POWERNOW_K7_ACPI
171static void invalidate_entry(unsigned int entry) 172static void invalidate_entry(unsigned int entry)
172{ 173{
173 powernow_table[entry].frequency = CPUFREQ_ENTRY_INVALID; 174 powernow_table[entry].frequency = CPUFREQ_ENTRY_INVALID;
174} 175}
176#endif
175 177
176static int get_ranges(unsigned char *pst) 178static int get_ranges(unsigned char *pst)
177{ 179{
@@ -320,7 +322,7 @@ static int powernow_acpi_init(void)
320 goto err0; 322 goto err0;
321 } 323 }
322 324
323 if (!alloc_cpumask_var(&acpi_processor_perf->shared_cpu_map, 325 if (!zalloc_cpumask_var(&acpi_processor_perf->shared_cpu_map,
324 GFP_KERNEL)) { 326 GFP_KERNEL)) {
325 retval = -ENOMEM; 327 retval = -ENOMEM;
326 goto err05; 328 goto err05;
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
index 4709ead2db52..cf52215d9eb1 100644
--- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
+++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
@@ -649,6 +649,20 @@ static void print_basics(struct powernow_k8_data *data)
649 data->batps); 649 data->batps);
650} 650}
651 651
652static u32 freq_from_fid_did(u32 fid, u32 did)
653{
654 u32 mhz = 0;
655
656 if (boot_cpu_data.x86 == 0x10)
657 mhz = (100 * (fid + 0x10)) >> did;
658 else if (boot_cpu_data.x86 == 0x11)
659 mhz = (100 * (fid + 8)) >> did;
660 else
661 BUG();
662
663 return mhz * 1000;
664}
665
652static int fill_powernow_table(struct powernow_k8_data *data, 666static int fill_powernow_table(struct powernow_k8_data *data,
653 struct pst_s *pst, u8 maxvid) 667 struct pst_s *pst, u8 maxvid)
654{ 668{
@@ -821,7 +835,7 @@ static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data)
821{ 835{
822 struct cpufreq_frequency_table *powernow_table; 836 struct cpufreq_frequency_table *powernow_table;
823 int ret_val = -ENODEV; 837 int ret_val = -ENODEV;
824 acpi_integer space_id; 838 acpi_integer control, status;
825 839
826 if (acpi_processor_register_performance(&data->acpi_data, data->cpu)) { 840 if (acpi_processor_register_performance(&data->acpi_data, data->cpu)) {
827 dprintk("register performance failed: bad ACPI data\n"); 841 dprintk("register performance failed: bad ACPI data\n");
@@ -834,12 +848,13 @@ static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data)
834 goto err_out; 848 goto err_out;
835 } 849 }
836 850
837 space_id = data->acpi_data.control_register.space_id; 851 control = data->acpi_data.control_register.space_id;
838 if ((space_id != ACPI_ADR_SPACE_FIXED_HARDWARE) || 852 status = data->acpi_data.status_register.space_id;
839 (space_id != ACPI_ADR_SPACE_FIXED_HARDWARE)) { 853
854 if ((control != ACPI_ADR_SPACE_FIXED_HARDWARE) ||
855 (status != ACPI_ADR_SPACE_FIXED_HARDWARE)) {
840 dprintk("Invalid control/status registers (%x - %x)\n", 856 dprintk("Invalid control/status registers (%x - %x)\n",
841 data->acpi_data.control_register.space_id, 857 control, status);
842 space_id);
843 goto err_out; 858 goto err_out;
844 } 859 }
845 860
@@ -872,7 +887,7 @@ static int powernow_k8_cpu_init_acpi(struct powernow_k8_data *data)
872 /* notify BIOS that we exist */ 887 /* notify BIOS that we exist */
873 acpi_processor_notify_smm(THIS_MODULE); 888 acpi_processor_notify_smm(THIS_MODULE);
874 889
875 if (!alloc_cpumask_var(&data->acpi_data.shared_cpu_map, GFP_KERNEL)) { 890 if (!zalloc_cpumask_var(&data->acpi_data.shared_cpu_map, GFP_KERNEL)) {
876 printk(KERN_ERR PFX 891 printk(KERN_ERR PFX
877 "unable to alloc powernow_k8_data cpumask\n"); 892 "unable to alloc powernow_k8_data cpumask\n");
878 ret_val = -ENOMEM; 893 ret_val = -ENOMEM;
@@ -923,8 +938,13 @@ static int fill_powernow_table_pstate(struct powernow_k8_data *data,
923 938
924 powernow_table[i].index = index; 939 powernow_table[i].index = index;
925 940
926 powernow_table[i].frequency = 941 /* Frequency may be rounded for these */
927 data->acpi_data.states[i].core_frequency * 1000; 942 if (boot_cpu_data.x86 == 0x10 || boot_cpu_data.x86 == 0x11) {
943 powernow_table[i].frequency =
944 freq_from_fid_did(lo & 0x3f, (lo >> 6) & 7);
945 } else
946 powernow_table[i].frequency =
947 data->acpi_data.states[i].core_frequency * 1000;
928 } 948 }
929 return 0; 949 return 0;
930} 950}
@@ -1215,13 +1235,16 @@ static int powernowk8_verify(struct cpufreq_policy *pol)
1215 return cpufreq_frequency_table_verify(pol, data->powernow_table); 1235 return cpufreq_frequency_table_verify(pol, data->powernow_table);
1216} 1236}
1217 1237
1238static const char ACPI_PSS_BIOS_BUG_MSG[] =
1239 KERN_ERR FW_BUG PFX "No compatible ACPI _PSS objects found.\n"
1240 KERN_ERR FW_BUG PFX "Try again with latest BIOS.\n";
1241
1218/* per CPU init entry point to the driver */ 1242/* per CPU init entry point to the driver */
1219static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) 1243static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
1220{ 1244{
1221 struct powernow_k8_data *data; 1245 struct powernow_k8_data *data;
1222 cpumask_t oldmask; 1246 cpumask_t oldmask;
1223 int rc; 1247 int rc;
1224 static int print_once;
1225 1248
1226 if (!cpu_online(pol->cpu)) 1249 if (!cpu_online(pol->cpu))
1227 return -ENODEV; 1250 return -ENODEV;
@@ -1244,19 +1267,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
1244 * an UP version, and is deprecated by AMD. 1267 * an UP version, and is deprecated by AMD.
1245 */ 1268 */
1246 if (num_online_cpus() != 1) { 1269 if (num_online_cpus() != 1) {
1247 /* 1270 printk_once(ACPI_PSS_BIOS_BUG_MSG);
1248 * Replace this one with print_once as soon as such a
1249 * thing gets introduced
1250 */
1251 if (!print_once) {
1252 WARN_ONCE(1, KERN_ERR FW_BUG PFX "Your BIOS "
1253 "does not provide ACPI _PSS objects "
1254 "in a way that Linux understands. "
1255 "Please report this to the Linux ACPI"
1256 " maintainers and complain to your "
1257 "BIOS vendor.\n");
1258 print_once++;
1259 }
1260 goto err_out; 1271 goto err_out;
1261 } 1272 }
1262 if (pol->cpu != 0) { 1273 if (pol->cpu != 0) {
diff --git a/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c b/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
index c9f1fdc02830..55c831ed71ce 100644
--- a/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
+++ b/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
@@ -471,7 +471,7 @@ static int centrino_target (struct cpufreq_policy *policy,
471 471
472 if (unlikely(!alloc_cpumask_var(&saved_mask, GFP_KERNEL))) 472 if (unlikely(!alloc_cpumask_var(&saved_mask, GFP_KERNEL)))
473 return -ENOMEM; 473 return -ENOMEM;
474 if (unlikely(!alloc_cpumask_var(&covered_cpus, GFP_KERNEL))) { 474 if (unlikely(!zalloc_cpumask_var(&covered_cpus, GFP_KERNEL))) {
475 free_cpumask_var(saved_mask); 475 free_cpumask_var(saved_mask);
476 return -ENOMEM; 476 return -ENOMEM;
477 } 477 }
diff --git a/arch/x86/kernel/cpu/mcheck/mce_64.c b/arch/x86/kernel/cpu/mcheck/mce_64.c
index 6fb0b359d2a5..09dd1d414fc3 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_64.c
@@ -1163,7 +1163,7 @@ static __init int mce_init_device(void)
1163 if (!mce_available(&boot_cpu_data)) 1163 if (!mce_available(&boot_cpu_data))
1164 return -EIO; 1164 return -EIO;
1165 1165
1166 alloc_cpumask_var(&mce_device_initialized, GFP_KERNEL); 1166 zalloc_cpumask_var(&mce_device_initialized, GFP_KERNEL);
1167 1167
1168 err = mce_init_banks(); 1168 err = mce_init_banks();
1169 if (err) 1169 if (err)
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index 0b776c09aff3..d21d4fb161f7 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -275,7 +275,11 @@ static void __init print_mtrr_state(void)
275 } 275 }
276 printk(KERN_DEBUG "MTRR variable ranges %sabled:\n", 276 printk(KERN_DEBUG "MTRR variable ranges %sabled:\n",
277 mtrr_state.enabled & 2 ? "en" : "dis"); 277 mtrr_state.enabled & 2 ? "en" : "dis");
278 high_width = ((size_or_mask ? ffs(size_or_mask) - 1 : 32) - (32 - PAGE_SHIFT) + 3) / 4; 278 if (size_or_mask & 0xffffffffUL)
279 high_width = ffs(size_or_mask & 0xffffffffUL) - 1;
280 else
281 high_width = ffs(size_or_mask>>32) + 32 - 1;
282 high_width = (high_width - (32 - PAGE_SHIFT) + 3) / 4;
279 for (i = 0; i < num_var_ranges; ++i) { 283 for (i = 0; i < num_var_ranges; ++i) {
280 if (mtrr_state.var_ranges[i].mask_lo & (1 << 11)) 284 if (mtrr_state.var_ranges[i].mask_lo & (1 << 11))
281 printk(KERN_DEBUG " %u base %0*X%05X000 mask %0*X%05X000 %s\n", 285 printk(KERN_DEBUG " %u base %0*X%05X000 mask %0*X%05X000 %s\n",
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index 18dfa30795c9..b79c5533c421 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -442,7 +442,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
442 _ASM_EXTABLE(1b, 4b) 442 _ASM_EXTABLE(1b, 4b)
443 _ASM_EXTABLE(2b, 4b) 443 _ASM_EXTABLE(2b, 4b)
444 444
445 : [old] "=r" (old), [faulted] "=r" (faulted) 445 : [old] "=&r" (old), [faulted] "=r" (faulted)
446 : [parent] "r" (parent), [return_hooker] "r" (return_hooker) 446 : [parent] "r" (parent), [return_hooker] "r" (return_hooker)
447 : "memory" 447 : "memory"
448 ); 448 );
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
index eedfaebe1063..b1f4dffb919e 100644
--- a/arch/x86/kernel/kgdb.c
+++ b/arch/x86/kernel/kgdb.c
@@ -88,6 +88,7 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
88 gdb_regs[GDB_SS] = __KERNEL_DS; 88 gdb_regs[GDB_SS] = __KERNEL_DS;
89 gdb_regs[GDB_FS] = 0xFFFF; 89 gdb_regs[GDB_FS] = 0xFFFF;
90 gdb_regs[GDB_GS] = 0xFFFF; 90 gdb_regs[GDB_GS] = 0xFFFF;
91 gdb_regs[GDB_SP] = (int)&regs->sp;
91#else 92#else
92 gdb_regs[GDB_R8] = regs->r8; 93 gdb_regs[GDB_R8] = regs->r8;
93 gdb_regs[GDB_R9] = regs->r9; 94 gdb_regs[GDB_R9] = regs->r9;
@@ -100,8 +101,8 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
100 gdb_regs32[GDB_PS] = regs->flags; 101 gdb_regs32[GDB_PS] = regs->flags;
101 gdb_regs32[GDB_CS] = regs->cs; 102 gdb_regs32[GDB_CS] = regs->cs;
102 gdb_regs32[GDB_SS] = regs->ss; 103 gdb_regs32[GDB_SS] = regs->ss;
103#endif
104 gdb_regs[GDB_SP] = regs->sp; 104 gdb_regs[GDB_SP] = regs->sp;
105#endif
105} 106}
106 107
107/** 108/**
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 8e45f4464880..9faf43bea336 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -134,7 +134,9 @@ static void *get_call_destination(u8 type)
134 .pv_irq_ops = pv_irq_ops, 134 .pv_irq_ops = pv_irq_ops,
135 .pv_apic_ops = pv_apic_ops, 135 .pv_apic_ops = pv_apic_ops,
136 .pv_mmu_ops = pv_mmu_ops, 136 .pv_mmu_ops = pv_mmu_ops,
137#ifdef CONFIG_PARAVIRT_SPINLOCKS
137 .pv_lock_ops = pv_lock_ops, 138 .pv_lock_ops = pv_lock_ops,
139#endif
138 }; 140 };
139 return *((void **)&tmpl + type); 141 return *((void **)&tmpl + type);
140} 142}
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 1340dad417f4..667188e0b5a0 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -232,6 +232,14 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
232 DMI_MATCH(DMI_PRODUCT_NAME, "Dell DXP061"), 232 DMI_MATCH(DMI_PRODUCT_NAME, "Dell DXP061"),
233 }, 233 },
234 }, 234 },
235 { /* Handle problems with rebooting on Sony VGN-Z540N */
236 .callback = set_bios_reboot,
237 .ident = "Sony VGN-Z540N",
238 .matches = {
239 DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
240 DMI_MATCH(DMI_PRODUCT_NAME, "VGN-Z540N"),
241 },
242 },
235 { } 243 { }
236}; 244};
237 245
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
index 3a97a4cf1872..8f0e13be36b3 100644
--- a/arch/x86/kernel/setup_percpu.c
+++ b/arch/x86/kernel/setup_percpu.c
@@ -160,8 +160,10 @@ static ssize_t __init setup_pcpu_remap(size_t static_size)
160 /* 160 /*
161 * If large page isn't supported, there's no benefit in doing 161 * If large page isn't supported, there's no benefit in doing
162 * this. Also, on non-NUMA, embedding is better. 162 * this. Also, on non-NUMA, embedding is better.
163 *
164 * NOTE: disabled for now.
163 */ 165 */
164 if (!cpu_has_pse || !pcpu_need_numa()) 166 if (true || !cpu_has_pse || !pcpu_need_numa())
165 return -EINVAL; 167 return -EINVAL;
166 168
167 /* 169 /*
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index ed0c33761e6d..8c7b03b0cfcb 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -832,7 +832,7 @@ static int __init uv_bau_init(void)
832 return 0; 832 return 0;
833 833
834 for_each_possible_cpu(cur_cpu) 834 for_each_possible_cpu(cur_cpu)
835 alloc_cpumask_var_node(&per_cpu(uv_flush_tlb_mask, cur_cpu), 835 zalloc_cpumask_var_node(&per_cpu(uv_flush_tlb_mask, cur_cpu),
836 GFP_KERNEL, cpu_to_node(cur_cpu)); 836 GFP_KERNEL, cpu_to_node(cur_cpu));
837 837
838 uv_bau_retry_limit = 1; 838 uv_bau_retry_limit = 1;
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index b6caf1329b1b..32cf11e5728a 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -2897,8 +2897,7 @@ static int kvm_pv_mmu_write(struct kvm_vcpu *vcpu,
2897 2897
2898static int kvm_pv_mmu_flush_tlb(struct kvm_vcpu *vcpu) 2898static int kvm_pv_mmu_flush_tlb(struct kvm_vcpu *vcpu)
2899{ 2899{
2900 kvm_x86_ops->tlb_flush(vcpu); 2900 kvm_set_cr3(vcpu, vcpu->arch.cr3);
2901 set_bit(KVM_REQ_MMU_SYNC, &vcpu->requests);
2902 return 1; 2901 return 1;
2903} 2902}
2904 2903
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 1821c2078199..1f8510c51d6e 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -411,7 +411,6 @@ static __init int svm_hardware_setup(void)
411 411
412 iopm_va = page_address(iopm_pages); 412 iopm_va = page_address(iopm_pages);
413 memset(iopm_va, 0xff, PAGE_SIZE * (1 << IOPM_ALLOC_ORDER)); 413 memset(iopm_va, 0xff, PAGE_SIZE * (1 << IOPM_ALLOC_ORDER));
414 clear_bit(0x80, iopm_va); /* allow direct access to PC debug port */
415 iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT; 414 iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT;
416 415
417 if (boot_cpu_has(X86_FEATURE_NX)) 416 if (boot_cpu_has(X86_FEATURE_NX))
@@ -796,6 +795,11 @@ static void svm_get_segment(struct kvm_vcpu *vcpu,
796 var->db = (s->attrib >> SVM_SELECTOR_DB_SHIFT) & 1; 795 var->db = (s->attrib >> SVM_SELECTOR_DB_SHIFT) & 1;
797 var->g = (s->attrib >> SVM_SELECTOR_G_SHIFT) & 1; 796 var->g = (s->attrib >> SVM_SELECTOR_G_SHIFT) & 1;
798 797
798 /* AMD's VMCB does not have an explicit unusable field, so emulate it
799 * for cross vendor migration purposes by "not present"
800 */
801 var->unusable = !var->present || (var->type == 0);
802
799 switch (seg) { 803 switch (seg) {
800 case VCPU_SREG_CS: 804 case VCPU_SREG_CS:
801 /* 805 /*
@@ -827,8 +831,6 @@ static void svm_get_segment(struct kvm_vcpu *vcpu,
827 var->type |= 0x1; 831 var->type |= 0x1;
828 break; 832 break;
829 } 833 }
830
831 var->unusable = !var->present;
832} 834}
833 835
834static int svm_get_cpl(struct kvm_vcpu *vcpu) 836static int svm_get_cpl(struct kvm_vcpu *vcpu)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 7c1ce5ac6131..3944e917e794 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -338,6 +338,9 @@ EXPORT_SYMBOL_GPL(kvm_lmsw);
338 338
339void kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) 339void kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
340{ 340{
341 unsigned long old_cr4 = vcpu->arch.cr4;
342 unsigned long pdptr_bits = X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE;
343
341 if (cr4 & CR4_RESERVED_BITS) { 344 if (cr4 & CR4_RESERVED_BITS) {
342 printk(KERN_DEBUG "set_cr4: #GP, reserved bits\n"); 345 printk(KERN_DEBUG "set_cr4: #GP, reserved bits\n");
343 kvm_inject_gp(vcpu, 0); 346 kvm_inject_gp(vcpu, 0);
@@ -351,7 +354,8 @@ void kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
351 kvm_inject_gp(vcpu, 0); 354 kvm_inject_gp(vcpu, 0);
352 return; 355 return;
353 } 356 }
354 } else if (is_paging(vcpu) && !is_pae(vcpu) && (cr4 & X86_CR4_PAE) 357 } else if (is_paging(vcpu) && (cr4 & X86_CR4_PAE)
358 && ((cr4 ^ old_cr4) & pdptr_bits)
355 && !load_pdptrs(vcpu, vcpu->arch.cr3)) { 359 && !load_pdptrs(vcpu, vcpu->arch.cr3)) {
356 printk(KERN_DEBUG "set_cr4: #GP, pdptrs reserved bits\n"); 360 printk(KERN_DEBUG "set_cr4: #GP, pdptrs reserved bits\n");
357 kvm_inject_gp(vcpu, 0); 361 kvm_inject_gp(vcpu, 0);
@@ -1121,9 +1125,9 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
1121 1125
1122static int is_efer_nx(void) 1126static int is_efer_nx(void)
1123{ 1127{
1124 u64 efer; 1128 unsigned long long efer = 0;
1125 1129
1126 rdmsrl(MSR_EFER, efer); 1130 rdmsrl_safe(MSR_EFER, &efer);
1127 return efer & EFER_NX; 1131 return efer & EFER_NX;
1128} 1132}
1129 1133
@@ -1259,7 +1263,7 @@ static void do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function,
1259 bit(X86_FEATURE_CMOV) | bit(X86_FEATURE_PSE36) | 1263 bit(X86_FEATURE_CMOV) | bit(X86_FEATURE_PSE36) |
1260 bit(X86_FEATURE_MMX) | bit(X86_FEATURE_FXSR) | 1264 bit(X86_FEATURE_MMX) | bit(X86_FEATURE_FXSR) |
1261 bit(X86_FEATURE_SYSCALL) | 1265 bit(X86_FEATURE_SYSCALL) |
1262 (bit(X86_FEATURE_NX) && is_efer_nx()) | 1266 (is_efer_nx() ? bit(X86_FEATURE_NX) : 0) |
1263#ifdef CONFIG_X86_64 1267#ifdef CONFIG_X86_64
1264 bit(X86_FEATURE_LM) | 1268 bit(X86_FEATURE_LM) |
1265#endif 1269#endif
diff --git a/arch/x86/lguest/Makefile b/arch/x86/lguest/Makefile
index 27f0c9ed7f60..94e0e54056a9 100644
--- a/arch/x86/lguest/Makefile
+++ b/arch/x86/lguest/Makefile
@@ -1 +1,2 @@
1obj-y := i386_head.o boot.o 1obj-y := i386_head.o boot.o
2CFLAGS_boot.o := $(call cc-option, -fno-stack-protector)
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index ca7ec44bafc3..33a93b417396 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -67,6 +67,7 @@
67#include <asm/mce.h> 67#include <asm/mce.h>
68#include <asm/io.h> 68#include <asm/io.h>
69#include <asm/i387.h> 69#include <asm/i387.h>
70#include <asm/stackprotector.h>
70#include <asm/reboot.h> /* for struct machine_ops */ 71#include <asm/reboot.h> /* for struct machine_ops */
71 72
72/*G:010 Welcome to the Guest! 73/*G:010 Welcome to the Guest!
@@ -1088,13 +1089,21 @@ __init void lguest_init(void)
1088 * lguest_init() where the rest of the fairly chaotic boot setup 1089 * lguest_init() where the rest of the fairly chaotic boot setup
1089 * occurs. */ 1090 * occurs. */
1090 1091
1092 /* The stack protector is a weird thing where gcc places a canary
1093 * value on the stack and then checks it on return. This file is
1094 * compiled with -fno-stack-protector it, so we got this far without
1095 * problems. The value of the canary is kept at offset 20 from the
1096 * %gs register, so we need to set that up before calling C functions
1097 * in other files. */
1098 setup_stack_canary_segment(0);
1099 /* We could just call load_stack_canary_segment(), but we might as
1100 * call switch_to_new_gdt() which loads the whole table and sets up
1101 * the per-cpu segment descriptor register %fs as well. */
1102 switch_to_new_gdt(0);
1103
1091 /* As described in head_32.S, we map the first 128M of memory. */ 1104 /* As described in head_32.S, we map the first 128M of memory. */
1092 max_pfn_mapped = (128*1024*1024) >> PAGE_SHIFT; 1105 max_pfn_mapped = (128*1024*1024) >> PAGE_SHIFT;
1093 1106
1094 /* Load the %fs segment register (the per-cpu segment register) with
1095 * the normal data segment to get through booting. */
1096 asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory");
1097
1098 /* The Host<->Guest Switcher lives at the top of our address space, and 1107 /* The Host<->Guest Switcher lives at the top of our address space, and
1099 * the Host told us how big it is when we made LGUEST_INIT hypercall: 1108 * the Host told us how big it is when we made LGUEST_INIT hypercall:
1100 * it put the answer in lguest_data.reserve_mem */ 1109 * it put the answer in lguest_data.reserve_mem */
diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
index 8f307d914c2e..f46c340727b8 100644
--- a/arch/x86/mm/hugetlbpage.c
+++ b/arch/x86/mm/hugetlbpage.c
@@ -26,12 +26,16 @@ static unsigned long page_table_shareable(struct vm_area_struct *svma,
26 unsigned long sbase = saddr & PUD_MASK; 26 unsigned long sbase = saddr & PUD_MASK;
27 unsigned long s_end = sbase + PUD_SIZE; 27 unsigned long s_end = sbase + PUD_SIZE;
28 28
29 /* Allow segments to share if only one is marked locked */
30 unsigned long vm_flags = vma->vm_flags & ~VM_LOCKED;
31 unsigned long svm_flags = svma->vm_flags & ~VM_LOCKED;
32
29 /* 33 /*
30 * match the virtual addresses, permission and the alignment of the 34 * match the virtual addresses, permission and the alignment of the
31 * page table page. 35 * page table page.
32 */ 36 */
33 if (pmd_index(addr) != pmd_index(saddr) || 37 if (pmd_index(addr) != pmd_index(saddr) ||
34 vma->vm_flags != svma->vm_flags || 38 vm_flags != svm_flags ||
35 sbase < svma->vm_start || svma->vm_end < s_end) 39 sbase < svma->vm_start || svma->vm_end < s_end)
36 return 0; 40 return 0;
37 41
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 797f9f107cb6..e17efed088c5 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -153,7 +153,7 @@ static void __cpa_flush_all(void *arg)
153 */ 153 */
154 __flush_tlb_all(); 154 __flush_tlb_all();
155 155
156 if (cache && boot_cpu_data.x86_model >= 4) 156 if (cache && boot_cpu_data.x86 >= 4)
157 wbinvd(); 157 wbinvd();
158} 158}
159 159
@@ -208,20 +208,15 @@ static void cpa_flush_array(unsigned long *start, int numpages, int cache,
208 int in_flags, struct page **pages) 208 int in_flags, struct page **pages)
209{ 209{
210 unsigned int i, level; 210 unsigned int i, level;
211 unsigned long do_wbinvd = cache && numpages >= 1024; /* 4M threshold */
211 212
212 BUG_ON(irqs_disabled()); 213 BUG_ON(irqs_disabled());
213 214
214 on_each_cpu(__cpa_flush_range, NULL, 1); 215 on_each_cpu(__cpa_flush_all, (void *) do_wbinvd, 1);
215 216
216 if (!cache) 217 if (!cache || do_wbinvd)
217 return; 218 return;
218 219
219 /* 4M threshold */
220 if (numpages >= 1024) {
221 if (boot_cpu_data.x86_model >= 4)
222 wbinvd();
223 return;
224 }
225 /* 220 /*
226 * We only need to flush on one CPU, 221 * We only need to flush on one CPU,
227 * clflush is a MESI-coherent instruction that 222 * clflush is a MESI-coherent instruction that
diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c
index 04df67f8a7ba..044897be021f 100644
--- a/arch/x86/oprofile/backtrace.c
+++ b/arch/x86/oprofile/backtrace.c
@@ -76,9 +76,9 @@ void
76x86_backtrace(struct pt_regs * const regs, unsigned int depth) 76x86_backtrace(struct pt_regs * const regs, unsigned int depth)
77{ 77{
78 struct frame_head *head = (struct frame_head *)frame_pointer(regs); 78 struct frame_head *head = (struct frame_head *)frame_pointer(regs);
79 unsigned long stack = kernel_trap_sp(regs);
80 79
81 if (!user_mode_vm(regs)) { 80 if (!user_mode_vm(regs)) {
81 unsigned long stack = kernel_stack_pointer(regs);
82 if (depth) 82 if (depth)
83 dump_trace(NULL, regs, (unsigned long *)stack, 0, 83 dump_trace(NULL, regs, (unsigned long *)stack, 0,
84 &backtrace_ops, &depth); 84 &backtrace_ops, &depth);
diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 5fa10bb9604f..8766b0e216c5 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -375,7 +375,7 @@ static acpi_status __init check_mcfg_resource(struct acpi_resource *res,
375 if (!fixmem32) 375 if (!fixmem32)
376 return AE_OK; 376 return AE_OK;
377 if ((mcfg_res->start >= fixmem32->address) && 377 if ((mcfg_res->start >= fixmem32->address) &&
378 (mcfg_res->end <= (fixmem32->address + 378 (mcfg_res->end < (fixmem32->address +
379 fixmem32->address_length))) { 379 fixmem32->address_length))) {
380 mcfg_res->flags = 1; 380 mcfg_res->flags = 1;
381 return AE_CTRL_TERMINATE; 381 return AE_CTRL_TERMINATE;
@@ -392,7 +392,7 @@ static acpi_status __init check_mcfg_resource(struct acpi_resource *res,
392 return AE_OK; 392 return AE_OK;
393 393
394 if ((mcfg_res->start >= address.minimum) && 394 if ((mcfg_res->start >= address.minimum) &&
395 (mcfg_res->end <= (address.minimum + address.address_length))) { 395 (mcfg_res->end < (address.minimum + address.address_length))) {
396 mcfg_res->flags = 1; 396 mcfg_res->flags = 1;
397 return AE_CTRL_TERMINATE; 397 return AE_CTRL_TERMINATE;
398 } 398 }
@@ -418,7 +418,7 @@ static int __init is_acpi_reserved(u64 start, u64 end, unsigned not_used)
418 struct resource mcfg_res; 418 struct resource mcfg_res;
419 419
420 mcfg_res.start = start; 420 mcfg_res.start = start;
421 mcfg_res.end = end; 421 mcfg_res.end = end - 1;
422 mcfg_res.flags = 0; 422 mcfg_res.flags = 0;
423 423
424 acpi_get_devices("PNP0C01", find_mboard_resource, &mcfg_res, NULL); 424 acpi_get_devices("PNP0C01", find_mboard_resource, &mcfg_res, NULL);
diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
index 3b767d03fd6a..172438f86a02 100644
--- a/arch/x86/xen/Makefile
+++ b/arch/x86/xen/Makefile
@@ -9,5 +9,6 @@ obj-y := enlighten.o setup.o multicalls.o mmu.o irq.o \
9 time.o xen-asm.o xen-asm_$(BITS).o \ 9 time.o xen-asm.o xen-asm_$(BITS).o \
10 grant-table.o suspend.o 10 grant-table.o suspend.o
11 11
12obj-$(CONFIG_SMP) += smp.o spinlock.o 12obj-$(CONFIG_SMP) += smp.o
13obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o \ No newline at end of file 13obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o
14obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index e25a78e1113a..fba55b1a4021 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -42,6 +42,7 @@
42#include <linux/highmem.h> 42#include <linux/highmem.h>
43#include <linux/debugfs.h> 43#include <linux/debugfs.h>
44#include <linux/bug.h> 44#include <linux/bug.h>
45#include <linux/module.h>
45 46
46#include <asm/pgtable.h> 47#include <asm/pgtable.h>
47#include <asm/tlbflush.h> 48#include <asm/tlbflush.h>
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 20139464943c..ca6596b05d53 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -62,15 +62,26 @@ void xen_setup_vcpu_info_placement(void);
62#ifdef CONFIG_SMP 62#ifdef CONFIG_SMP
63void xen_smp_init(void); 63void xen_smp_init(void);
64 64
65void __init xen_init_spinlocks(void);
66__cpuinit void xen_init_lock_cpu(int cpu);
67void xen_uninit_lock_cpu(int cpu);
68
69extern cpumask_var_t xen_cpu_initialized_map; 65extern cpumask_var_t xen_cpu_initialized_map;
70#else 66#else
71static inline void xen_smp_init(void) {} 67static inline void xen_smp_init(void) {}
72#endif 68#endif
73 69
70#ifdef CONFIG_PARAVIRT_SPINLOCKS
71void __init xen_init_spinlocks(void);
72__cpuinit void xen_init_lock_cpu(int cpu);
73void xen_uninit_lock_cpu(int cpu);
74#else
75static inline void xen_init_spinlocks(void)
76{
77}
78static inline void xen_init_lock_cpu(int cpu)
79{
80}
81static inline void xen_uninit_lock_cpu(int cpu)
82{
83}
84#endif
74 85
75/* Declare an asm function, along with symbols needed to make it 86/* Declare an asm function, along with symbols needed to make it
76 inlineable */ 87 inlineable */
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index fa6dc4dd3b19..ebe228d02b08 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -80,6 +80,7 @@ config XTENSA_VARIANT_S6000
80 bool "s6000 - Stretch software configurable processor" 80 bool "s6000 - Stretch software configurable processor"
81 select VARIANT_IRQ_SWITCH 81 select VARIANT_IRQ_SWITCH
82 select ARCH_REQUIRE_GPIOLIB 82 select ARCH_REQUIRE_GPIOLIB
83 select XTENSA_CALIBRATE_CCOUNT
83endchoice 84endchoice
84 85
85config XTENSA_UNALIGNED_USER 86config XTENSA_UNALIGNED_USER
@@ -137,6 +138,8 @@ config PCI
137 138
138source "drivers/pci/Kconfig" 139source "drivers/pci/Kconfig"
139 140
141endmenu
142
140menu "Platform options" 143menu "Platform options"
141 144
142choice 145choice
@@ -153,8 +156,6 @@ config XTENSA_PLATFORM_ISS
153 156
154config XTENSA_PLATFORM_XT2000 157config XTENSA_PLATFORM_XT2000
155 bool "XT2000" 158 bool "XT2000"
156 select XTENSA_CALIBRATE_CCOUNT
157 select PCI
158 help 159 help
159 XT2000 is the name of Tensilica's feature-rich emulation platform. 160 XT2000 is the name of Tensilica's feature-rich emulation platform.
160 This hardware is capable of running a full Linux distribution. 161 This hardware is capable of running a full Linux distribution.
@@ -192,8 +193,6 @@ config CMDLINE
192 193
193source "mm/Kconfig" 194source "mm/Kconfig"
194 195
195endmenu
196
197config HOTPLUG 196config HOTPLUG
198 bool "Support for hot-pluggable devices" 197 bool "Support for hot-pluggable devices"
199 help 198 help
diff --git a/arch/xtensa/configs/s6105_defconfig b/arch/xtensa/configs/s6105_defconfig
index 6e1deff41590..768bee006037 100644
--- a/arch/xtensa/configs/s6105_defconfig
+++ b/arch/xtensa/configs/s6105_defconfig
@@ -115,7 +115,7 @@ CONFIG_XTENSA_VARIANT_S6000=y
115CONFIG_PREEMPT=y 115CONFIG_PREEMPT=y
116# CONFIG_MATH_EMULATION is not set 116# CONFIG_MATH_EMULATION is not set
117# CONFIG_HIGHMEM is not set 117# CONFIG_HIGHMEM is not set
118# CONFIG_XTENSA_CALIBRATE_CCOUNT is not set 118CONFIG_XTENSA_CALIBRATE_CCOUNT=y
119CONFIG_SERIAL_CONSOLE=y 119CONFIG_SERIAL_CONSOLE=y
120# CONFIG_XTENSA_ISS_NETWORK is not set 120# CONFIG_XTENSA_ISS_NETWORK is not set
121 121
@@ -131,7 +131,6 @@ CONFIG_SERIAL_CONSOLE=y
131# CONFIG_XTENSA_PLATFORM_ISS is not set 131# CONFIG_XTENSA_PLATFORM_ISS is not set
132# CONFIG_XTENSA_PLATFORM_XT2000 is not set 132# CONFIG_XTENSA_PLATFORM_XT2000 is not set
133CONFIG_XTENSA_PLATFORM_S6105=y 133CONFIG_XTENSA_PLATFORM_S6105=y
134CONFIG_XTENSA_CPU_CLOCK=300
135CONFIG_GENERIC_CALIBRATE_DELAY=y 134CONFIG_GENERIC_CALIBRATE_DELAY=y
136CONFIG_CMDLINE_BOOL=y 135CONFIG_CMDLINE_BOOL=y
137CONFIG_CMDLINE="console=ttyS1,38400 debug bootmem_debug loglevel=7" 136CONFIG_CMDLINE="console=ttyS1,38400 debug bootmem_debug loglevel=7"
diff --git a/arch/xtensa/include/asm/checksum.h b/arch/xtensa/include/asm/checksum.h
index f84d3f00774a..e4d831a30772 100644
--- a/arch/xtensa/include/asm/checksum.h
+++ b/arch/xtensa/include/asm/checksum.h
@@ -113,7 +113,8 @@ static __inline__ __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
113 are modified, we must also specify them as outputs, or gcc 113 are modified, we must also specify them as outputs, or gcc
114 will assume they contain their original values. */ 114 will assume they contain their original values. */
115 : "=r" (sum), "=r" (iph), "=r" (ihl), "=&r" (tmp), "=&r" (endaddr) 115 : "=r" (sum), "=r" (iph), "=r" (ihl), "=&r" (tmp), "=&r" (endaddr)
116 : "1" (iph), "2" (ihl)); 116 : "1" (iph), "2" (ihl)
117 : "memory");
117 118
118 return csum_fold(sum); 119 return csum_fold(sum);
119} 120}
@@ -227,7 +228,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
227 "1:\t" 228 "1:\t"
228 : "=r" (sum), "=&r" (__dummy) 229 : "=r" (sum), "=&r" (__dummy)
229 : "r" (saddr), "r" (daddr), 230 : "r" (saddr), "r" (daddr),
230 "r" (htonl(len)), "r" (htonl(proto)), "0" (sum)); 231 "r" (htonl(len)), "r" (htonl(proto)), "0" (sum)
232 : "memory");
231 233
232 return csum_fold(sum); 234 return csum_fold(sum);
233} 235}
diff --git a/arch/xtensa/include/asm/timex.h b/arch/xtensa/include/asm/timex.h
index b83a8181d448..053bc4272106 100644
--- a/arch/xtensa/include/asm/timex.h
+++ b/arch/xtensa/include/asm/timex.h
@@ -39,9 +39,9 @@
39 39
40#ifdef CONFIG_XTENSA_CALIBRATE_CCOUNT 40#ifdef CONFIG_XTENSA_CALIBRATE_CCOUNT
41extern unsigned long ccount_per_jiffy; 41extern unsigned long ccount_per_jiffy;
42extern unsigned long ccount_nsec; 42extern unsigned long nsec_per_ccount;
43#define CCOUNT_PER_JIFFY ccount_per_jiffy 43#define CCOUNT_PER_JIFFY ccount_per_jiffy
44#define NSEC_PER_CCOUNT ccount_nsec 44#define NSEC_PER_CCOUNT nsec_per_ccount
45#else 45#else
46#define CCOUNT_PER_JIFFY (CONFIG_XTENSA_CPU_CLOCK*(1000000UL/HZ)) 46#define CCOUNT_PER_JIFFY (CONFIG_XTENSA_CPU_CLOCK*(1000000UL/HZ))
47#define NSEC_PER_CCOUNT (1000UL / CONFIG_XTENSA_CPU_CLOCK) 47#define NSEC_PER_CCOUNT (1000UL / CONFIG_XTENSA_CPU_CLOCK)
diff --git a/arch/xtensa/kernel/Makefile b/arch/xtensa/kernel/Makefile
index 7419dbccf027..fe3186de6a33 100644
--- a/arch/xtensa/kernel/Makefile
+++ b/arch/xtensa/kernel/Makefile
@@ -4,15 +4,30 @@
4 4
5extra-y := head.o vmlinux.lds 5extra-y := head.o vmlinux.lds
6 6
7
8obj-y := align.o entry.o irq.o coprocessor.o process.o ptrace.o \ 7obj-y := align.o entry.o irq.o coprocessor.o process.o ptrace.o \
9 setup.o signal.o syscall.o time.o traps.o vectors.o platform.o \ 8 setup.o signal.o syscall.o time.o traps.o vectors.o platform.o \
10 pci-dma.o init_task.o io.o 9 pci-dma.o init_task.o io.o
11 10
12## windowspill.o
13
14obj-$(CONFIG_KGDB) += xtensa-stub.o 11obj-$(CONFIG_KGDB) += xtensa-stub.o
15obj-$(CONFIG_PCI) += pci.o 12obj-$(CONFIG_PCI) += pci.o
16obj-$(CONFIG_MODULES) += xtensa_ksyms.o module.o 13obj-$(CONFIG_MODULES) += xtensa_ksyms.o module.o
17 14
15# In the Xtensa architecture, assembly generates literals which must always
16# precede the L32R instruction with a relative offset less than 256 kB.
17# Therefore, the .text and .literal section must be combined in parenthesis
18# in the linker script, such as: *(.literal .text).
19#
20# We need to post-process the generated vmlinux.lds scripts to convert
21# *(xxx.text) to *(xxx.literal xxx.text) for the following text sections:
22# .text .ref.text .*init.text .*exit.text .text.*
23#
24# Replicate rules in scripts/Makefile.build
25
26sed-y = -e 's/(\(\.[a-z]*it\|\.ref\|\)\.text)/(\1.literal \1.text)/g' \
27 -e 's/(\(\.text\.[a-z]*\))/(\1.literal \1)/g'
28
29quiet_cmd__cpp_lds_S = LDS $@
30 cmd__cpp_lds_S = $(CPP) $(cpp_flags) -D__ASSEMBLY__ $< | sed $(sed-y) >$@
18 31
32$(obj)/vmlinux.lds: $(src)/vmlinux.lds.S FORCE
33 $(call if_changed_dep,_cpp_lds_S)
diff --git a/arch/xtensa/kernel/traps.c b/arch/xtensa/kernel/traps.c
index 9f0b71189e94..ba9ab9349782 100644
--- a/arch/xtensa/kernel/traps.c
+++ b/arch/xtensa/kernel/traps.c
@@ -369,6 +369,18 @@ void show_regs(struct pt_regs * regs)
369 regs->syscall); 369 regs->syscall);
370} 370}
371 371
372static __always_inline unsigned long *stack_pointer(struct task_struct *task)
373{
374 unsigned long *sp;
375
376 if (!task || task == current)
377 __asm__ __volatile__ ("mov %0, a1\n" : "=a"(sp));
378 else
379 sp = (unsigned long *)task->thread.sp;
380
381 return sp;
382}
383
372void show_trace(struct task_struct *task, unsigned long *sp) 384void show_trace(struct task_struct *task, unsigned long *sp)
373{ 385{
374 unsigned long a0, a1, pc; 386 unsigned long a0, a1, pc;
@@ -377,7 +389,7 @@ void show_trace(struct task_struct *task, unsigned long *sp)
377 if (sp) 389 if (sp)
378 a1 = (unsigned long)sp; 390 a1 = (unsigned long)sp;
379 else 391 else
380 a1 = task->thread.sp; 392 a1 = (unsigned long)stack_pointer(task);
381 393
382 sp_start = a1 & ~(THREAD_SIZE-1); 394 sp_start = a1 & ~(THREAD_SIZE-1);
383 sp_end = sp_start + THREAD_SIZE; 395 sp_end = sp_start + THREAD_SIZE;
@@ -420,7 +432,7 @@ void show_stack(struct task_struct *task, unsigned long *sp)
420 unsigned long *stack; 432 unsigned long *stack;
421 433
422 if (!sp) 434 if (!sp)
423 sp = (unsigned long *)task->thread.sp; 435 sp = stack_pointer(task);
424 stack = sp; 436 stack = sp;
425 437
426 printk("\nStack: "); 438 printk("\nStack: ");
diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S
index 5accf51053da..41c159cd872f 100644
--- a/arch/xtensa/kernel/vmlinux.lds.S
+++ b/arch/xtensa/kernel/vmlinux.lds.S
@@ -87,7 +87,7 @@ SECTIONS
87 { 87 {
88 /* The HEAD_TEXT section must be the first section! */ 88 /* The HEAD_TEXT section must be the first section! */
89 HEAD_TEXT 89 HEAD_TEXT
90 *(.literal .text) 90 TEXT_TEXT
91 VMLINUX_SYMBOL(__sched_text_start) = .; 91 VMLINUX_SYMBOL(__sched_text_start) = .;
92 *(.sched.literal .sched.text) 92 *(.sched.literal .sched.text)
93 VMLINUX_SYMBOL(__sched_text_end) = .; 93 VMLINUX_SYMBOL(__sched_text_end) = .;
@@ -139,8 +139,6 @@ SECTIONS
139 __init_begin = .; 139 __init_begin = .;
140 .init.text : { 140 .init.text : {
141 _sinittext = .; 141 _sinittext = .;
142 *(.init.literal) *(.cpuinit.literal)
143 *(.devinit.literal) *(.meminit.literal)
144 INIT_TEXT 142 INIT_TEXT
145 _einittext = .; 143 _einittext = .;
146 } 144 }
diff --git a/arch/xtensa/platforms/s6105/setup.c b/arch/xtensa/platforms/s6105/setup.c
index ae041d5027a2..855ddeadc43d 100644
--- a/arch/xtensa/platforms/s6105/setup.c
+++ b/arch/xtensa/platforms/s6105/setup.c
@@ -10,6 +10,8 @@
10#include <asm/bootparam.h> 10#include <asm/bootparam.h>
11 11
12#include <variant/hardware.h> 12#include <variant/hardware.h>
13#include <variant/gpio.h>
14
13#include <platform/gpio.h> 15#include <platform/gpio.h>
14 16
15void platform_halt(void) 17void platform_halt(void)
@@ -47,6 +49,7 @@ void __init platform_setup(char **cmdline)
47 49
48void __init platform_init(bp_tag_t *first) 50void __init platform_init(bp_tag_t *first)
49{ 51{
52 s6_gpio_init();
50 gpio_request(GPIO_LED1_NGREEN, "led1_green"); 53 gpio_request(GPIO_LED1_NGREEN, "led1_green");
51 gpio_request(GPIO_LED1_RED, "led1_red"); 54 gpio_request(GPIO_LED1_RED, "led1_red");
52 gpio_direction_output(GPIO_LED1_NGREEN, 1); 55 gpio_direction_output(GPIO_LED1_NGREEN, 1);
diff --git a/arch/xtensa/variants/s6000/Makefile b/arch/xtensa/variants/s6000/Makefile
index 03b3975468bd..d83f3805130c 100644
--- a/arch/xtensa/variants/s6000/Makefile
+++ b/arch/xtensa/variants/s6000/Makefile
@@ -1,3 +1,4 @@
1# s6000 Makefile 1# s6000 Makefile
2 2
3obj-y += irq.o gpio.o 3obj-y += irq.o gpio.o
4obj-$(CONFIG_XTENSA_CALIBRATE_CCOUNT) += delay.o
diff --git a/arch/xtensa/variants/s6000/delay.c b/arch/xtensa/variants/s6000/delay.c
new file mode 100644
index 000000000000..54b2b573f166
--- /dev/null
+++ b/arch/xtensa/variants/s6000/delay.c
@@ -0,0 +1,27 @@
1#include <asm/delay.h>
2#include <asm/timex.h>
3#include <asm/io.h>
4#include <variant/hardware.h>
5
6#define LOOPS 10
7void platform_calibrate_ccount(void)
8{
9 u32 uninitialized_var(a);
10 u32 uninitialized_var(u);
11 u32 b;
12 u32 tstamp = S6_REG_GREG1 + S6_GREG1_GLOBAL_TIMER;
13 int i = LOOPS+1;
14 do {
15 u32 t = u;
16 asm volatile(
17 "1: l32i %0, %2, 0 ;"
18 " beq %0, %1, 1b ;"
19 : "=&a"(u) : "a"(t), "a"(tstamp));
20 b = xtensa_get_ccount();
21 if (i == LOOPS)
22 a = b;
23 } while (--i >= 0);
24 b -= a;
25 nsec_per_ccount = (LOOPS * 10000) / b;
26 ccount_per_jiffy = b * (100000UL / (LOOPS * HZ));
27}
diff --git a/arch/xtensa/variants/s6000/gpio.c b/arch/xtensa/variants/s6000/gpio.c
index 33a8d952934c..79317fdcf14c 100644
--- a/arch/xtensa/variants/s6000/gpio.c
+++ b/arch/xtensa/variants/s6000/gpio.c
@@ -64,8 +64,7 @@ static struct gpio_chip gpiochip = {
64 .exported = 0, /* no exporting to userspace */ 64 .exported = 0, /* no exporting to userspace */
65}; 65};
66 66
67static int gpio_init(void) 67int s6_gpio_init(void)
68{ 68{
69 return gpiochip_add(&gpiochip); 69 return gpiochip_add(&gpiochip);
70} 70}
71device_initcall(gpio_init);
diff --git a/arch/xtensa/variants/s6000/include/variant/gpio.h b/arch/xtensa/variants/s6000/include/variant/gpio.h
new file mode 100644
index 000000000000..8327f62167eb
--- /dev/null
+++ b/arch/xtensa/variants/s6000/include/variant/gpio.h
@@ -0,0 +1,6 @@
1#ifndef _XTENSA_VARIANT_S6000_GPIO_H
2#define _XTENSA_VARIANT_S6000_GPIO_H
3
4extern int s6_gpio_init(void);
5
6#endif /* _XTENSA_VARIANT_S6000_GPIO_H */
diff --git a/block/blk-core.c b/block/blk-core.c
index 2998fe3a2377..c89883be8737 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1768,10 +1768,10 @@ static int __end_that_request_first(struct request *req, int error,
1768 } else { 1768 } else {
1769 int idx = bio->bi_idx + next_idx; 1769 int idx = bio->bi_idx + next_idx;
1770 1770
1771 if (unlikely(bio->bi_idx >= bio->bi_vcnt)) { 1771 if (unlikely(idx >= bio->bi_vcnt)) {
1772 blk_dump_rq_flags(req, "__end_that"); 1772 blk_dump_rq_flags(req, "__end_that");
1773 printk(KERN_ERR "%s: bio idx %d >= vcnt %d\n", 1773 printk(KERN_ERR "%s: bio idx %d >= vcnt %d\n",
1774 __func__, bio->bi_idx, bio->bi_vcnt); 1774 __func__, idx, bio->bi_vcnt);
1775 break; 1775 break;
1776 } 1776 }
1777 1777
diff --git a/block/bsg.c b/block/bsg.c
index 206060e795da..dd81be455e00 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -315,6 +315,7 @@ out:
315 blk_put_request(rq); 315 blk_put_request(rq);
316 if (next_rq) { 316 if (next_rq) {
317 blk_rq_unmap_user(next_rq->bio); 317 blk_rq_unmap_user(next_rq->bio);
318 next_rq->bio = NULL;
318 blk_put_request(next_rq); 319 blk_put_request(next_rq);
319 } 320 }
320 return ERR_PTR(ret); 321 return ERR_PTR(ret);
@@ -448,6 +449,7 @@ static int blk_complete_sgv4_hdr_rq(struct request *rq, struct sg_io_v4 *hdr,
448 hdr->dout_resid = rq->data_len; 449 hdr->dout_resid = rq->data_len;
449 hdr->din_resid = rq->next_rq->data_len; 450 hdr->din_resid = rq->next_rq->data_len;
450 blk_rq_unmap_user(bidi_bio); 451 blk_rq_unmap_user(bidi_bio);
452 rq->next_rq->bio = NULL;
451 blk_put_request(rq->next_rq); 453 blk_put_request(rq->next_rq);
452 } else if (rq_data_dir(rq) == READ) 454 } else if (rq_data_dir(rq) == READ)
453 hdr->din_resid = rq->data_len; 455 hdr->din_resid = rq->data_len;
@@ -466,6 +468,7 @@ static int blk_complete_sgv4_hdr_rq(struct request *rq, struct sg_io_v4 *hdr,
466 blk_rq_unmap_user(bio); 468 blk_rq_unmap_user(bio);
467 if (rq->cmd != rq->__cmd) 469 if (rq->cmd != rq->__cmd)
468 kfree(rq->cmd); 470 kfree(rq->cmd);
471 rq->bio = NULL;
469 blk_put_request(rq); 472 blk_put_request(rq);
470 473
471 return ret; 474 return ret;
diff --git a/crypto/ahash.c b/crypto/ahash.c
index b2d1ee32cfe8..f3476374f764 100644
--- a/crypto/ahash.c
+++ b/crypto/ahash.c
@@ -82,10 +82,11 @@ int crypto_hash_walk_done(struct crypto_hash_walk *walk, int err)
82 if (err) 82 if (err)
83 return err; 83 return err;
84 84
85 walk->offset = 0; 85 if (nbytes) {
86 86 walk->offset = 0;
87 if (nbytes) 87 walk->pg++;
88 return hash_walk_next(walk); 88 return hash_walk_next(walk);
89 }
89 90
90 if (!walk->total) 91 if (!walk->total)
91 return 0; 92 return 0;
diff --git a/crypto/api.c b/crypto/api.c
index 314dab96840e..fd2545decb28 100644
--- a/crypto/api.c
+++ b/crypto/api.c
@@ -221,7 +221,8 @@ struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, u32 mask)
221 221
222 request_module(name); 222 request_module(name);
223 223
224 if (!((type ^ CRYPTO_ALG_NEED_FALLBACK) & mask) && 224 if (!((type ^ CRYPTO_ALG_NEED_FALLBACK) & mask &
225 CRYPTO_ALG_NEED_FALLBACK) &&
225 snprintf(tmp, sizeof(tmp), "%s-all", name) < sizeof(tmp)) 226 snprintf(tmp, sizeof(tmp), "%s-all", name) < sizeof(tmp))
226 request_module(tmp); 227 request_module(tmp);
227 228
diff --git a/crypto/eseqiv.c b/crypto/eseqiv.c
index 2a342c8e52b3..3ca3b669d5d5 100644
--- a/crypto/eseqiv.c
+++ b/crypto/eseqiv.c
@@ -153,7 +153,8 @@ static int eseqiv_givencrypt(struct skcipher_givcrypt_request *req)
153 if (err) 153 if (err)
154 goto out; 154 goto out;
155 155
156 eseqiv_complete2(req); 156 if (giv != req->giv)
157 eseqiv_complete2(req);
157 158
158out: 159out:
159 return err; 160 return err;
diff --git a/drivers/acpi/acpica/Makefile b/drivers/acpi/acpica/Makefile
index 17e50824a6f1..72ac28da14e3 100644
--- a/drivers/acpi/acpica/Makefile
+++ b/drivers/acpi/acpica/Makefile
@@ -5,40 +5,43 @@
5ccflags-y := -Os 5ccflags-y := -Os
6ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT 6ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
7 7
8obj-y := dsfield.o dsmthdat.o dsopcode.o dswexec.o dswscope.o \ 8# use acpi.o to put all files here into acpi.o modparam namespace
9obj-y += acpi.o
10
11acpi-y := dsfield.o dsmthdat.o dsopcode.o dswexec.o dswscope.o \
9 dsmethod.o dsobject.o dsutils.o dswload.o dswstate.o \ 12 dsmethod.o dsobject.o dsutils.o dswload.o dswstate.o \
10 dsinit.o 13 dsinit.o
11 14
12obj-y += evevent.o evregion.o evsci.o evxfevnt.o \ 15acpi-y += evevent.o evregion.o evsci.o evxfevnt.o \
13 evmisc.o evrgnini.o evxface.o evxfregn.o \ 16 evmisc.o evrgnini.o evxface.o evxfregn.o \
14 evgpe.o evgpeblk.o 17 evgpe.o evgpeblk.o
15 18
16obj-y += exconfig.o exfield.o exnames.o exoparg6.o exresolv.o exstorob.o\ 19acpi-y += exconfig.o exfield.o exnames.o exoparg6.o exresolv.o exstorob.o\
17 exconvrt.o exfldio.o exoparg1.o exprep.o exresop.o exsystem.o\ 20 exconvrt.o exfldio.o exoparg1.o exprep.o exresop.o exsystem.o\
18 excreate.o exmisc.o exoparg2.o exregion.o exstore.o exutils.o \ 21 excreate.o exmisc.o exoparg2.o exregion.o exstore.o exutils.o \
19 exdump.o exmutex.o exoparg3.o exresnte.o exstoren.o 22 exdump.o exmutex.o exoparg3.o exresnte.o exstoren.o
20 23
21obj-y += hwacpi.o hwgpe.o hwregs.o hwsleep.o hwxface.o hwvalid.o 24acpi-y += hwacpi.o hwgpe.o hwregs.o hwsleep.o hwxface.o hwvalid.o
22 25
23obj-$(ACPI_FUTURE_USAGE) += hwtimer.o 26acpi-$(ACPI_FUTURE_USAGE) += hwtimer.o
24 27
25obj-y += nsaccess.o nsload.o nssearch.o nsxfeval.o \ 28acpi-y += nsaccess.o nsload.o nssearch.o nsxfeval.o \
26 nsalloc.o nseval.o nsnames.o nsutils.o nsxfname.o \ 29 nsalloc.o nseval.o nsnames.o nsutils.o nsxfname.o \
27 nsdump.o nsinit.o nsobject.o nswalk.o nsxfobj.o \ 30 nsdump.o nsinit.o nsobject.o nswalk.o nsxfobj.o \
28 nsparse.o nspredef.o 31 nsparse.o nspredef.o
29 32
30obj-$(ACPI_FUTURE_USAGE) += nsdumpdv.o 33acpi-$(ACPI_FUTURE_USAGE) += nsdumpdv.o
31 34
32obj-y += psargs.o psparse.o psloop.o pstree.o pswalk.o \ 35acpi-y += psargs.o psparse.o psloop.o pstree.o pswalk.o \
33 psopcode.o psscope.o psutils.o psxface.o 36 psopcode.o psscope.o psutils.o psxface.o
34 37
35obj-y += rsaddr.o rscreate.o rsinfo.o rsio.o rslist.o rsmisc.o rsxface.o \ 38acpi-y += rsaddr.o rscreate.o rsinfo.o rsio.o rslist.o rsmisc.o rsxface.o \
36 rscalc.o rsirq.o rsmemory.o rsutils.o 39 rscalc.o rsirq.o rsmemory.o rsutils.o
37 40
38obj-$(ACPI_FUTURE_USAGE) += rsdump.o 41acpi-$(ACPI_FUTURE_USAGE) += rsdump.o
39 42
40obj-y += tbxface.o tbinstal.o tbutils.o tbfind.o tbfadt.o tbxfroot.o 43acpi-y += tbxface.o tbinstal.o tbutils.o tbfind.o tbfadt.o tbxfroot.o
41 44
42obj-y += utalloc.o utdebug.o uteval.o utinit.o utmisc.o utxface.o \ 45acpi-y += utalloc.o utdebug.o uteval.o utinit.o utmisc.o utxface.o \
43 utcopy.o utdelete.o utglobal.o utmath.o utobject.o \ 46 utcopy.o utdelete.o utglobal.o utmath.o utobject.o \
44 utstate.o utmutex.o utobject.o utresrc.o utlock.o 47 utstate.o utmutex.o utobject.o utresrc.o utlock.o
diff --git a/drivers/acpi/acpica/aclocal.h b/drivers/acpi/acpica/aclocal.h
index 772ee5c4ccca..2ec394a328e9 100644
--- a/drivers/acpi/acpica/aclocal.h
+++ b/drivers/acpi/acpica/aclocal.h
@@ -787,7 +787,12 @@ struct acpi_bit_register_info {
787 787
788/* For control registers, both ignored and reserved bits must be preserved */ 788/* For control registers, both ignored and reserved bits must be preserved */
789 789
790#define ACPI_PM1_CONTROL_IGNORED_BITS 0x0201 /* Bits 9, 0(SCI_EN) */ 790/*
791 * The ACPI spec says to ignore PM1_CTL.SCI_EN (bit 0)
792 * but we need to be able to write ACPI_BITREG_SCI_ENABLE directly
793 * as a BIOS workaround on some machines.
794 */
795#define ACPI_PM1_CONTROL_IGNORED_BITS 0x0200 /* Bits 9 */
791#define ACPI_PM1_CONTROL_RESERVED_BITS 0xC1F8 /* Bits 14-15, 3-8 */ 796#define ACPI_PM1_CONTROL_RESERVED_BITS 0xC1F8 /* Bits 14-15, 3-8 */
792#define ACPI_PM1_CONTROL_PRESERVED_BITS \ 797#define ACPI_PM1_CONTROL_PRESERVED_BITS \
793 (ACPI_PM1_CONTROL_IGNORED_BITS | ACPI_PM1_CONTROL_RESERVED_BITS) 798 (ACPI_PM1_CONTROL_IGNORED_BITS | ACPI_PM1_CONTROL_RESERVED_BITS)
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index e8f7b64e92da..ae862f1798dc 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -312,7 +312,7 @@ int acpi_bus_set_power(acpi_handle handle, int state)
312 end: 312 end:
313 if (result) 313 if (result)
314 printk(KERN_WARNING PREFIX 314 printk(KERN_WARNING PREFIX
315 "Transitioning device [%s] to D%d\n", 315 "Device [%s] failed to transition to D%d\n",
316 device->pnp.bus_id, state); 316 device->pnp.bus_id, state);
317 else { 317 else {
318 device->power.state = state; 318 device->power.state = state;
diff --git a/drivers/acpi/pci_bind.c b/drivers/acpi/pci_bind.c
index 95650f83ce2e..bc46de3d967f 100644
--- a/drivers/acpi/pci_bind.c
+++ b/drivers/acpi/pci_bind.c
@@ -116,9 +116,6 @@ int acpi_pci_bind(struct acpi_device *device)
116 struct acpi_pci_data *pdata; 116 struct acpi_pci_data *pdata;
117 struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; 117 struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
118 acpi_handle handle; 118 acpi_handle handle;
119 struct pci_dev *dev;
120 struct pci_bus *bus;
121
122 119
123 if (!device || !device->parent) 120 if (!device || !device->parent)
124 return -EINVAL; 121 return -EINVAL;
@@ -176,20 +173,9 @@ int acpi_pci_bind(struct acpi_device *device)
176 * Locate matching device in PCI namespace. If it doesn't exist 173 * Locate matching device in PCI namespace. If it doesn't exist
177 * this typically means that the device isn't currently inserted 174 * this typically means that the device isn't currently inserted
178 * (e.g. docking station, port replicator, etc.). 175 * (e.g. docking station, port replicator, etc.).
179 * We cannot simply search the global pci device list, since
180 * PCI devices are added to the global pci list when the root
181 * bridge start ops are run, which may not have happened yet.
182 */ 176 */
183 bus = pci_find_bus(data->id.segment, data->id.bus); 177 data->dev = pci_get_slot(pdata->bus,
184 if (bus) { 178 PCI_DEVFN(data->id.device, data->id.function));
185 list_for_each_entry(dev, &bus->devices, bus_list) {
186 if (dev->devfn == PCI_DEVFN(data->id.device,
187 data->id.function)) {
188 data->dev = dev;
189 break;
190 }
191 }
192 }
193 if (!data->dev) { 179 if (!data->dev) {
194 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 180 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
195 "Device %04x:%02x:%02x.%d not present in PCI namespace\n", 181 "Device %04x:%02x:%02x.%d not present in PCI namespace\n",
@@ -259,9 +245,10 @@ int acpi_pci_bind(struct acpi_device *device)
259 245
260 end: 246 end:
261 kfree(buffer.pointer); 247 kfree(buffer.pointer);
262 if (result) 248 if (result) {
249 pci_dev_put(data->dev);
263 kfree(data); 250 kfree(data);
264 251 }
265 return result; 252 return result;
266} 253}
267 254
@@ -303,6 +290,7 @@ static int acpi_pci_unbind(struct acpi_device *device)
303 if (data->dev->subordinate) { 290 if (data->dev->subordinate) {
304 acpi_pci_irq_del_prt(data->id.segment, data->bus->number); 291 acpi_pci_irq_del_prt(data->id.segment, data->bus->number);
305 } 292 }
293 pci_dev_put(data->dev);
306 kfree(data); 294 kfree(data);
307 295
308 end: 296 end:
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index 45ad3288c5ff..23f0fb84f1c1 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -844,7 +844,7 @@ static int acpi_processor_add(struct acpi_device *device)
844 if (!pr) 844 if (!pr)
845 return -ENOMEM; 845 return -ENOMEM;
846 846
847 if (!alloc_cpumask_var(&pr->throttling.shared_cpu_map, GFP_KERNEL)) { 847 if (!zalloc_cpumask_var(&pr->throttling.shared_cpu_map, GFP_KERNEL)) {
848 kfree(pr); 848 kfree(pr);
849 return -ENOMEM; 849 return -ENOMEM;
850 } 850 }
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index f7ca8c55956b..10a2d913635a 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -148,6 +148,9 @@ static void acpi_timer_check_state(int state, struct acpi_processor *pr,
148 if (cpu_has(&cpu_data(pr->id), X86_FEATURE_ARAT)) 148 if (cpu_has(&cpu_data(pr->id), X86_FEATURE_ARAT))
149 return; 149 return;
150 150
151 if (boot_cpu_has(X86_FEATURE_AMDC1E))
152 type = ACPI_STATE_C1;
153
151 /* 154 /*
152 * Check, if one of the previous states already marked the lapic 155 * Check, if one of the previous states already marked the lapic
153 * unstable 156 * unstable
@@ -202,21 +205,44 @@ static void acpi_state_timer_broadcast(struct acpi_processor *pr,
202 * Suspend / resume control 205 * Suspend / resume control
203 */ 206 */
204static int acpi_idle_suspend; 207static int acpi_idle_suspend;
208static u32 saved_bm_rld;
209
210static void acpi_idle_bm_rld_save(void)
211{
212 acpi_read_bit_register(ACPI_BITREG_BUS_MASTER_RLD, &saved_bm_rld);
213}
214static void acpi_idle_bm_rld_restore(void)
215{
216 u32 resumed_bm_rld;
217
218 acpi_read_bit_register(ACPI_BITREG_BUS_MASTER_RLD, &resumed_bm_rld);
219
220 if (resumed_bm_rld != saved_bm_rld)
221 acpi_write_bit_register(ACPI_BITREG_BUS_MASTER_RLD, saved_bm_rld);
222}
205 223
206int acpi_processor_suspend(struct acpi_device * device, pm_message_t state) 224int acpi_processor_suspend(struct acpi_device * device, pm_message_t state)
207{ 225{
226 if (acpi_idle_suspend == 1)
227 return 0;
228
229 acpi_idle_bm_rld_save();
208 acpi_idle_suspend = 1; 230 acpi_idle_suspend = 1;
209 return 0; 231 return 0;
210} 232}
211 233
212int acpi_processor_resume(struct acpi_device * device) 234int acpi_processor_resume(struct acpi_device * device)
213{ 235{
236 if (acpi_idle_suspend == 0)
237 return 0;
238
239 acpi_idle_bm_rld_restore();
214 acpi_idle_suspend = 0; 240 acpi_idle_suspend = 0;
215 return 0; 241 return 0;
216} 242}
217 243
218#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86) 244#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
219static int tsc_halts_in_c(int state) 245static void tsc_check_state(int state)
220{ 246{
221 switch (boot_cpu_data.x86_vendor) { 247 switch (boot_cpu_data.x86_vendor) {
222 case X86_VENDOR_AMD: 248 case X86_VENDOR_AMD:
@@ -226,13 +252,17 @@ static int tsc_halts_in_c(int state)
226 * C/P/S0/S1 states when this bit is set. 252 * C/P/S0/S1 states when this bit is set.
227 */ 253 */
228 if (boot_cpu_has(X86_FEATURE_NONSTOP_TSC)) 254 if (boot_cpu_has(X86_FEATURE_NONSTOP_TSC))
229 return 0; 255 return;
230 256
231 /*FALL THROUGH*/ 257 /*FALL THROUGH*/
232 default: 258 default:
233 return state > ACPI_STATE_C1; 259 /* TSC could halt in idle, so notify users */
260 if (state > ACPI_STATE_C1)
261 mark_tsc_unstable("TSC halts in idle");
234 } 262 }
235} 263}
264#else
265static void tsc_check_state(int state) { return; }
236#endif 266#endif
237 267
238static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr) 268static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
@@ -578,17 +608,13 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
578 608
579 pr->power.timer_broadcast_on_state = INT_MAX; 609 pr->power.timer_broadcast_on_state = INT_MAX;
580 610
581 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) { 611 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) {
582 struct acpi_processor_cx *cx = &pr->power.states[i]; 612 struct acpi_processor_cx *cx = &pr->power.states[i];
583 613
584#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
585 /* TSC could halt in idle, so notify users */
586 if (tsc_halts_in_c(cx->type))
587 mark_tsc_unstable("TSC halts in idle");;
588#endif
589 switch (cx->type) { 614 switch (cx->type) {
590 case ACPI_STATE_C1: 615 case ACPI_STATE_C1:
591 cx->valid = 1; 616 cx->valid = 1;
617 acpi_timer_check_state(i, pr, cx);
592 break; 618 break;
593 619
594 case ACPI_STATE_C2: 620 case ACPI_STATE_C2:
@@ -603,6 +629,8 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
603 acpi_timer_check_state(i, pr, cx); 629 acpi_timer_check_state(i, pr, cx);
604 break; 630 break;
605 } 631 }
632 if (cx->valid)
633 tsc_check_state(cx->type);
606 634
607 if (cx->valid) 635 if (cx->valid)
608 working++; 636 working++;
@@ -806,11 +834,12 @@ static int acpi_idle_enter_c1(struct cpuidle_device *dev,
806 834
807 /* Do not access any ACPI IO ports in suspend path */ 835 /* Do not access any ACPI IO ports in suspend path */
808 if (acpi_idle_suspend) { 836 if (acpi_idle_suspend) {
809 acpi_safe_halt();
810 local_irq_enable(); 837 local_irq_enable();
838 cpu_relax();
811 return 0; 839 return 0;
812 } 840 }
813 841
842 acpi_state_timer_broadcast(pr, cx, 1);
814 kt1 = ktime_get_real(); 843 kt1 = ktime_get_real();
815 acpi_idle_do_entry(cx); 844 acpi_idle_do_entry(cx);
816 kt2 = ktime_get_real(); 845 kt2 = ktime_get_real();
@@ -818,6 +847,7 @@ static int acpi_idle_enter_c1(struct cpuidle_device *dev,
818 847
819 local_irq_enable(); 848 local_irq_enable();
820 cx->usage++; 849 cx->usage++;
850 acpi_state_timer_broadcast(pr, cx, 0);
821 851
822 return idle_time; 852 return idle_time;
823} 853}
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index cafb41000f6b..60e543d3234e 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -309,9 +309,15 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr)
309 (u32) px->bus_master_latency, 309 (u32) px->bus_master_latency,
310 (u32) px->control, (u32) px->status)); 310 (u32) px->control, (u32) px->status));
311 311
312 if (!px->core_frequency) { 312 /*
313 printk(KERN_ERR PREFIX 313 * Check that ACPI's u64 MHz will be valid as u32 KHz in cpufreq
314 "Invalid _PSS data: freq is zero\n"); 314 */
315 if (!px->core_frequency ||
316 ((u32)(px->core_frequency * 1000) !=
317 (px->core_frequency * 1000))) {
318 printk(KERN_ERR FW_BUG PREFIX
319 "Invalid BIOS _PSS frequency: 0x%llx MHz\n",
320 px->core_frequency);
315 result = -EFAULT; 321 result = -EFAULT;
316 kfree(pr->performance->states); 322 kfree(pr->performance->states);
317 goto end; 323 goto end;
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index d0d1f4d50434..227543789ba9 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -45,6 +45,14 @@
45#define _COMPONENT ACPI_PROCESSOR_COMPONENT 45#define _COMPONENT ACPI_PROCESSOR_COMPONENT
46ACPI_MODULE_NAME("processor_throttling"); 46ACPI_MODULE_NAME("processor_throttling");
47 47
48/* ignore_tpc:
49 * 0 -> acpi processor driver doesn't ignore _TPC values
50 * 1 -> acpi processor driver ignores _TPC values
51 */
52static int ignore_tpc;
53module_param(ignore_tpc, int, 0644);
54MODULE_PARM_DESC(ignore_tpc, "Disable broken BIOS _TPC throttling support");
55
48struct throttling_tstate { 56struct throttling_tstate {
49 unsigned int cpu; /* cpu nr */ 57 unsigned int cpu; /* cpu nr */
50 int target_state; /* target T-state */ 58 int target_state; /* target T-state */
@@ -283,6 +291,10 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
283 291
284 if (!pr) 292 if (!pr)
285 return -EINVAL; 293 return -EINVAL;
294
295 if (ignore_tpc)
296 goto end;
297
286 status = acpi_evaluate_integer(pr->handle, "_TPC", NULL, &tpc); 298 status = acpi_evaluate_integer(pr->handle, "_TPC", NULL, &tpc);
287 if (ACPI_FAILURE(status)) { 299 if (ACPI_FAILURE(status)) {
288 if (status != AE_NOT_FOUND) { 300 if (status != AE_NOT_FOUND) {
@@ -290,6 +302,8 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
290 } 302 }
291 return -ENODEV; 303 return -ENODEV;
292 } 304 }
305
306end:
293 pr->throttling_platform_limit = (int)tpc; 307 pr->throttling_platform_limit = (int)tpc;
294 return 0; 308 return 0;
295} 309}
@@ -302,6 +316,9 @@ int acpi_processor_tstate_has_changed(struct acpi_processor *pr)
302 struct acpi_processor_limit *limit; 316 struct acpi_processor_limit *limit;
303 int target_state; 317 int target_state;
304 318
319 if (ignore_tpc)
320 return 0;
321
305 result = acpi_processor_get_platform_limit(pr); 322 result = acpi_processor_get_platform_limit(pr);
306 if (result) { 323 if (result) {
307 /* Throttling Limit is unsupported */ 324 /* Throttling Limit is unsupported */
@@ -821,6 +838,14 @@ static int acpi_processor_get_throttling_ptc(struct acpi_processor *pr)
821 ret = acpi_read_throttling_status(pr, &value); 838 ret = acpi_read_throttling_status(pr, &value);
822 if (ret >= 0) { 839 if (ret >= 0) {
823 state = acpi_get_throttling_state(pr, value); 840 state = acpi_get_throttling_state(pr, value);
841 if (state == -1) {
842 ACPI_WARNING((AE_INFO,
843 "Invalid throttling state, reset"));
844 state = 0;
845 ret = acpi_processor_set_throttling(pr, state);
846 if (ret)
847 return ret;
848 }
824 pr->throttling.state = state; 849 pr->throttling.state = state;
825 } 850 }
826 851
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index d7ff61c0d571..1bdfb37377e3 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -538,6 +538,57 @@ acpi_video_device_lcd_set_level(struct acpi_video_device *device, int level)
538 return -EINVAL; 538 return -EINVAL;
539} 539}
540 540
541/*
542 * For some buggy _BQC methods, we need to add a constant value to
543 * the _BQC return value to get the actual current brightness level
544 */
545
546static int bqc_offset_aml_bug_workaround;
547static int __init video_set_bqc_offset(const struct dmi_system_id *d)
548{
549 bqc_offset_aml_bug_workaround = 9;
550 return 0;
551}
552
553static struct dmi_system_id video_dmi_table[] __initdata = {
554 /*
555 * Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121
556 */
557 {
558 .callback = video_set_bqc_offset,
559 .ident = "Acer Aspire 5720",
560 .matches = {
561 DMI_MATCH(DMI_BOARD_VENDOR, "Acer"),
562 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5720"),
563 },
564 },
565 {
566 .callback = video_set_bqc_offset,
567 .ident = "Acer Aspire 5710Z",
568 .matches = {
569 DMI_MATCH(DMI_BOARD_VENDOR, "Acer"),
570 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5710Z"),
571 },
572 },
573 {
574 .callback = video_set_bqc_offset,
575 .ident = "eMachines E510",
576 .matches = {
577 DMI_MATCH(DMI_BOARD_VENDOR, "EMACHINES"),
578 DMI_MATCH(DMI_PRODUCT_NAME, "eMachines E510"),
579 },
580 },
581 {
582 .callback = video_set_bqc_offset,
583 .ident = "Acer Aspire 5315",
584 .matches = {
585 DMI_MATCH(DMI_BOARD_VENDOR, "Acer"),
586 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5315"),
587 },
588 },
589 {}
590};
591
541static int 592static int
542acpi_video_device_lcd_get_level_current(struct acpi_video_device *device, 593acpi_video_device_lcd_get_level_current(struct acpi_video_device *device,
543 unsigned long long *level) 594 unsigned long long *level)
@@ -557,6 +608,7 @@ acpi_video_device_lcd_get_level_current(struct acpi_video_device *device,
557 *level = device->brightness->levels[*level + 2]; 608 *level = device->brightness->levels[*level + 2];
558 609
559 } 610 }
611 *level += bqc_offset_aml_bug_workaround;
560 device->brightness->curr = *level; 612 device->brightness->curr = *level;
561 return 0; 613 return 0;
562 } else { 614 } else {
@@ -2290,13 +2342,15 @@ EXPORT_SYMBOL(acpi_video_register);
2290 2342
2291static int __init acpi_video_init(void) 2343static int __init acpi_video_init(void)
2292{ 2344{
2345 dmi_check_system(video_dmi_table);
2346
2293 if (intel_opregion_present()) 2347 if (intel_opregion_present())
2294 return 0; 2348 return 0;
2295 2349
2296 return acpi_video_register(); 2350 return acpi_video_register();
2297} 2351}
2298 2352
2299void __exit acpi_video_exit(void) 2353void acpi_video_exit(void)
2300{ 2354{
2301 2355
2302 acpi_bus_unregister_driver(&acpi_video_bus); 2356 acpi_bus_unregister_driver(&acpi_video_bus);
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 08186ecbaf8d..6b91c26a4635 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -220,6 +220,7 @@ enum {
220 AHCI_HFLAG_NO_HOTPLUG = (1 << 7), /* ignore PxSERR.DIAG.N */ 220 AHCI_HFLAG_NO_HOTPLUG = (1 << 7), /* ignore PxSERR.DIAG.N */
221 AHCI_HFLAG_SECT255 = (1 << 8), /* max 255 sectors */ 221 AHCI_HFLAG_SECT255 = (1 << 8), /* max 255 sectors */
222 AHCI_HFLAG_YES_NCQ = (1 << 9), /* force NCQ cap on */ 222 AHCI_HFLAG_YES_NCQ = (1 << 9), /* force NCQ cap on */
223 AHCI_HFLAG_NO_SUSPEND = (1 << 10), /* don't suspend */
223 224
224 /* ap->flags bits */ 225 /* ap->flags bits */
225 226
@@ -2316,9 +2317,17 @@ static int ahci_port_suspend(struct ata_port *ap, pm_message_t mesg)
2316static int ahci_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg) 2317static int ahci_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg)
2317{ 2318{
2318 struct ata_host *host = dev_get_drvdata(&pdev->dev); 2319 struct ata_host *host = dev_get_drvdata(&pdev->dev);
2320 struct ahci_host_priv *hpriv = host->private_data;
2319 void __iomem *mmio = host->iomap[AHCI_PCI_BAR]; 2321 void __iomem *mmio = host->iomap[AHCI_PCI_BAR];
2320 u32 ctl; 2322 u32 ctl;
2321 2323
2324 if (mesg.event & PM_EVENT_SUSPEND &&
2325 hpriv->flags & AHCI_HFLAG_NO_SUSPEND) {
2326 dev_printk(KERN_ERR, &pdev->dev,
2327 "BIOS update required for suspend/resume\n");
2328 return -EIO;
2329 }
2330
2322 if (mesg.event & PM_EVENT_SLEEP) { 2331 if (mesg.event & PM_EVENT_SLEEP) {
2323 /* AHCI spec rev1.1 section 8.3.3: 2332 /* AHCI spec rev1.1 section 8.3.3:
2324 * Software must disable interrupts prior to requesting a 2333 * Software must disable interrupts prior to requesting a
@@ -2610,6 +2619,63 @@ static bool ahci_broken_system_poweroff(struct pci_dev *pdev)
2610 return false; 2619 return false;
2611} 2620}
2612 2621
2622static bool ahci_broken_suspend(struct pci_dev *pdev)
2623{
2624 static const struct dmi_system_id sysids[] = {
2625 /*
2626 * On HP dv[4-6] and HDX18 with earlier BIOSen, link
2627 * to the harddisk doesn't become online after
2628 * resuming from STR. Warn and fail suspend.
2629 */
2630 {
2631 .ident = "dv4",
2632 .matches = {
2633 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
2634 DMI_MATCH(DMI_PRODUCT_NAME,
2635 "HP Pavilion dv4 Notebook PC"),
2636 },
2637 .driver_data = "F.30", /* cutoff BIOS version */
2638 },
2639 {
2640 .ident = "dv5",
2641 .matches = {
2642 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
2643 DMI_MATCH(DMI_PRODUCT_NAME,
2644 "HP Pavilion dv5 Notebook PC"),
2645 },
2646 .driver_data = "F.16", /* cutoff BIOS version */
2647 },
2648 {
2649 .ident = "dv6",
2650 .matches = {
2651 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
2652 DMI_MATCH(DMI_PRODUCT_NAME,
2653 "HP Pavilion dv6 Notebook PC"),
2654 },
2655 .driver_data = "F.21", /* cutoff BIOS version */
2656 },
2657 {
2658 .ident = "HDX18",
2659 .matches = {
2660 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
2661 DMI_MATCH(DMI_PRODUCT_NAME,
2662 "HP HDX18 Notebook PC"),
2663 },
2664 .driver_data = "F.23", /* cutoff BIOS version */
2665 },
2666 { } /* terminate list */
2667 };
2668 const struct dmi_system_id *dmi = dmi_first_match(sysids);
2669 const char *ver;
2670
2671 if (!dmi || pdev->bus->number || pdev->devfn != PCI_DEVFN(0x1f, 2))
2672 return false;
2673
2674 ver = dmi_get_system_info(DMI_BIOS_VERSION);
2675
2676 return !ver || strcmp(ver, dmi->driver_data) < 0;
2677}
2678
2613static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) 2679static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2614{ 2680{
2615 static int printed_version; 2681 static int printed_version;
@@ -2715,6 +2781,12 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2715 "quirky BIOS, skipping spindown on poweroff\n"); 2781 "quirky BIOS, skipping spindown on poweroff\n");
2716 } 2782 }
2717 2783
2784 if (ahci_broken_suspend(pdev)) {
2785 hpriv->flags |= AHCI_HFLAG_NO_SUSPEND;
2786 dev_printk(KERN_WARNING, &pdev->dev,
2787 "BIOS update required for suspend/resume\n");
2788 }
2789
2718 /* CAP.NP sometimes indicate the index of the last enabled 2790 /* CAP.NP sometimes indicate the index of the last enabled
2719 * port, at other times, that of the last possible port, so 2791 * port, at other times, that of the last possible port, so
2720 * determining the maximum port number requires looking at 2792 * determining the maximum port number requires looking at
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 942d14ac8792..1aeb7082b0c4 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -72,6 +72,7 @@
72 * ICH2 spec c #20 - IDE PRD must not cross a 64K boundary 72 * ICH2 spec c #20 - IDE PRD must not cross a 64K boundary
73 * and must be dword aligned 73 * and must be dword aligned
74 * ICH2 spec c #24 - UDMA mode 4,5 t85/86 should be 6ns not 3.3 74 * ICH2 spec c #24 - UDMA mode 4,5 t85/86 should be 6ns not 3.3
75 * ICH7 errata #16 - MWDMA1 timings are incorrect
75 * 76 *
76 * Should have been BIOS fixed: 77 * Should have been BIOS fixed:
77 * 450NX: errata #19 - DMA hangs on old 450NX 78 * 450NX: errata #19 - DMA hangs on old 450NX
@@ -94,7 +95,7 @@
94#include <linux/dmi.h> 95#include <linux/dmi.h>
95 96
96#define DRV_NAME "ata_piix" 97#define DRV_NAME "ata_piix"
97#define DRV_VERSION "2.12" 98#define DRV_VERSION "2.13"
98 99
99enum { 100enum {
100 PIIX_IOCFG = 0x54, /* IDE I/O configuration register */ 101 PIIX_IOCFG = 0x54, /* IDE I/O configuration register */
@@ -136,6 +137,7 @@ enum piix_controller_ids {
136 ich_pata_33, /* ICH up to UDMA 33 only */ 137 ich_pata_33, /* ICH up to UDMA 33 only */
137 ich_pata_66, /* ICH up to 66 Mhz */ 138 ich_pata_66, /* ICH up to 66 Mhz */
138 ich_pata_100, /* ICH up to UDMA 100 */ 139 ich_pata_100, /* ICH up to UDMA 100 */
140 ich_pata_100_nomwdma1, /* ICH up to UDMA 100 but with no MWDMA1*/
139 ich5_sata, 141 ich5_sata,
140 ich6_sata, 142 ich6_sata,
141 ich6m_sata, 143 ich6m_sata,
@@ -216,8 +218,8 @@ static const struct pci_device_id piix_pci_tbl[] = {
216 /* ICH6 (and 6) (i915) UDMA 100 */ 218 /* ICH6 (and 6) (i915) UDMA 100 */
217 { 0x8086, 0x266F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 }, 219 { 0x8086, 0x266F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
218 /* ICH7/7-R (i945, i975) UDMA 100*/ 220 /* ICH7/7-R (i945, i975) UDMA 100*/
219 { 0x8086, 0x27DF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 }, 221 { 0x8086, 0x27DF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100_nomwdma1 },
220 { 0x8086, 0x269E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 }, 222 { 0x8086, 0x269E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100_nomwdma1 },
221 /* ICH8 Mobile PATA Controller */ 223 /* ICH8 Mobile PATA Controller */
222 { 0x8086, 0x2850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 }, 224 { 0x8086, 0x2850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
223 225
@@ -487,6 +489,15 @@ static struct ata_port_info piix_port_info[] = {
487 .port_ops = &ich_pata_ops, 489 .port_ops = &ich_pata_ops,
488 }, 490 },
489 491
492 [ich_pata_100_nomwdma1] =
493 {
494 .flags = PIIX_PATA_FLAGS | PIIX_FLAG_CHECKINTR,
495 .pio_mask = ATA_PIO4,
496 .mwdma_mask = ATA_MWDMA2_ONLY,
497 .udma_mask = ATA_UDMA5,
498 .port_ops = &ich_pata_ops,
499 },
500
490 [ich5_sata] = 501 [ich5_sata] =
491 { 502 {
492 .flags = PIIX_SATA_FLAGS, 503 .flags = PIIX_SATA_FLAGS,
@@ -594,6 +605,7 @@ static const struct ich_laptop ich_laptop[] = {
594 { 0x24CA, 0x1025, 0x003d }, /* ICH4 on ACER TM290 */ 605 { 0x24CA, 0x1025, 0x003d }, /* ICH4 on ACER TM290 */
595 { 0x266F, 0x1025, 0x0066 }, /* ICH6 on ACER Aspire 1694WLMi */ 606 { 0x266F, 0x1025, 0x0066 }, /* ICH6 on ACER Aspire 1694WLMi */
596 { 0x2653, 0x1043, 0x82D8 }, /* ICH6M on Asus Eee 701 */ 607 { 0x2653, 0x1043, 0x82D8 }, /* ICH6M on Asus Eee 701 */
608 { 0x27df, 0x104d, 0x900e }, /* ICH7 on Sony TZ-90 */
597 /* end marker */ 609 /* end marker */
598 { 0, } 610 { 0, }
599}; 611};
@@ -1443,6 +1455,15 @@ static bool piix_broken_system_poweroff(struct pci_dev *pdev)
1443 /* PCI slot number of the controller */ 1455 /* PCI slot number of the controller */
1444 .driver_data = (void *)0x1FUL, 1456 .driver_data = (void *)0x1FUL,
1445 }, 1457 },
1458 {
1459 .ident = "HP Compaq nc6000",
1460 .matches = {
1461 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
1462 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nc6000"),
1463 },
1464 /* PCI slot number of the controller */
1465 .driver_data = (void *)0x1FUL,
1466 },
1446 1467
1447 { } /* terminate list */ 1468 { } /* terminate list */
1448 }; 1469 };
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 17c5d48a75d2..c9242301cfa1 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4091,7 +4091,9 @@ int ata_dev_revalidate(struct ata_device *dev, unsigned int new_class,
4091 4091
4092 /* fail early if !ATA && !ATAPI to avoid issuing [P]IDENTIFY to PMP */ 4092 /* fail early if !ATA && !ATAPI to avoid issuing [P]IDENTIFY to PMP */
4093 if (ata_class_enabled(new_class) && 4093 if (ata_class_enabled(new_class) &&
4094 new_class != ATA_DEV_ATA && new_class != ATA_DEV_ATAPI) { 4094 new_class != ATA_DEV_ATA &&
4095 new_class != ATA_DEV_ATAPI &&
4096 new_class != ATA_DEV_SEMB) {
4095 ata_dev_printk(dev, KERN_INFO, "class mismatch %u != %u\n", 4097 ata_dev_printk(dev, KERN_INFO, "class mismatch %u != %u\n",
4096 dev->class, new_class); 4098 dev->class, new_class);
4097 rc = -ENODEV; 4099 rc = -ENODEV;
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 01831312c360..94919ad03df1 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2783,6 +2783,12 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,
2783 } else if (dev->class == ATA_DEV_UNKNOWN && 2783 } else if (dev->class == ATA_DEV_UNKNOWN &&
2784 ehc->tries[dev->devno] && 2784 ehc->tries[dev->devno] &&
2785 ata_class_enabled(ehc->classes[dev->devno])) { 2785 ata_class_enabled(ehc->classes[dev->devno])) {
2786 /* Temporarily set dev->class, it will be
2787 * permanently set once all configurations are
2788 * complete. This is necessary because new
2789 * device configuration is done in two
2790 * separate loops.
2791 */
2786 dev->class = ehc->classes[dev->devno]; 2792 dev->class = ehc->classes[dev->devno];
2787 2793
2788 if (dev->class == ATA_DEV_PMP) 2794 if (dev->class == ATA_DEV_PMP)
@@ -2790,6 +2796,11 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,
2790 else 2796 else
2791 rc = ata_dev_read_id(dev, &dev->class, 2797 rc = ata_dev_read_id(dev, &dev->class,
2792 readid_flags, dev->id); 2798 readid_flags, dev->id);
2799
2800 /* read_id might have changed class, store and reset */
2801 ehc->classes[dev->devno] = dev->class;
2802 dev->class = ATA_DEV_UNKNOWN;
2803
2793 switch (rc) { 2804 switch (rc) {
2794 case 0: 2805 case 0:
2795 /* clear error info accumulated during probe */ 2806 /* clear error info accumulated during probe */
@@ -2799,13 +2810,11 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,
2799 case -ENOENT: 2810 case -ENOENT:
2800 /* IDENTIFY was issued to non-existent 2811 /* IDENTIFY was issued to non-existent
2801 * device. No need to reset. Just 2812 * device. No need to reset. Just
2802 * thaw and kill the device. 2813 * thaw and ignore the device.
2803 */ 2814 */
2804 ata_eh_thaw_port(ap); 2815 ata_eh_thaw_port(ap);
2805 dev->class = ATA_DEV_UNKNOWN;
2806 break; 2816 break;
2807 default: 2817 default:
2808 dev->class = ATA_DEV_UNKNOWN;
2809 goto err; 2818 goto err;
2810 } 2819 }
2811 } 2820 }
@@ -2826,11 +2835,15 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,
2826 dev->class == ATA_DEV_PMP) 2835 dev->class == ATA_DEV_PMP)
2827 continue; 2836 continue;
2828 2837
2838 dev->class = ehc->classes[dev->devno];
2839
2829 ehc->i.flags |= ATA_EHI_PRINTINFO; 2840 ehc->i.flags |= ATA_EHI_PRINTINFO;
2830 rc = ata_dev_configure(dev); 2841 rc = ata_dev_configure(dev);
2831 ehc->i.flags &= ~ATA_EHI_PRINTINFO; 2842 ehc->i.flags &= ~ATA_EHI_PRINTINFO;
2832 if (rc) 2843 if (rc) {
2844 dev->class = ATA_DEV_UNKNOWN;
2833 goto err; 2845 goto err;
2846 }
2834 2847
2835 spin_lock_irqsave(ap->lock, flags); 2848 spin_lock_irqsave(ap->lock, flags);
2836 ap->pflags |= ATA_PFLAG_SCSI_HOTPLUG; 2849 ap->pflags |= ATA_PFLAG_SCSI_HOTPLUG;
@@ -3494,6 +3507,8 @@ static void ata_eh_handle_port_suspend(struct ata_port *ap)
3494 */ 3507 */
3495static void ata_eh_handle_port_resume(struct ata_port *ap) 3508static void ata_eh_handle_port_resume(struct ata_port *ap)
3496{ 3509{
3510 struct ata_link *link;
3511 struct ata_device *dev;
3497 unsigned long flags; 3512 unsigned long flags;
3498 int rc = 0; 3513 int rc = 0;
3499 3514
@@ -3508,6 +3523,17 @@ static void ata_eh_handle_port_resume(struct ata_port *ap)
3508 3523
3509 WARN_ON(!(ap->pflags & ATA_PFLAG_SUSPENDED)); 3524 WARN_ON(!(ap->pflags & ATA_PFLAG_SUSPENDED));
3510 3525
3526 /*
3527 * Error timestamps are in jiffies which doesn't run while
3528 * suspended and PHY events during resume isn't too uncommon.
3529 * When the two are combined, it can lead to unnecessary speed
3530 * downs if the machine is suspended and resumed repeatedly.
3531 * Clear error history.
3532 */
3533 ata_for_each_link(link, ap, HOST_FIRST)
3534 ata_for_each_dev(dev, link, ALL)
3535 ata_ering_clear(&dev->ering);
3536
3511 ata_acpi_set_state(ap, PMSG_ON); 3537 ata_acpi_set_state(ap, PMSG_ON);
3512 3538
3513 if (ap->ops->port_resume) 3539 if (ap->ops->port_resume)
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 2733b0c90b75..342316064e9f 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -313,7 +313,7 @@ ata_scsi_em_message_show(struct device *dev, struct device_attribute *attr,
313 return ap->ops->em_show(ap, buf); 313 return ap->ops->em_show(ap, buf);
314 return -EINVAL; 314 return -EINVAL;
315} 315}
316DEVICE_ATTR(em_message, S_IRUGO | S_IWUGO, 316DEVICE_ATTR(em_message, S_IRUGO | S_IWUSR,
317 ata_scsi_em_message_show, ata_scsi_em_message_store); 317 ata_scsi_em_message_show, ata_scsi_em_message_store);
318EXPORT_SYMBOL_GPL(dev_attr_em_message); 318EXPORT_SYMBOL_GPL(dev_attr_em_message);
319 319
@@ -366,7 +366,7 @@ ata_scsi_activity_store(struct device *dev, struct device_attribute *attr,
366 } 366 }
367 return -EINVAL; 367 return -EINVAL;
368} 368}
369DEVICE_ATTR(sw_activity, S_IWUGO | S_IRUGO, ata_scsi_activity_show, 369DEVICE_ATTR(sw_activity, S_IWUSR | S_IRUGO, ata_scsi_activity_show,
370 ata_scsi_activity_store); 370 ata_scsi_activity_store);
371EXPORT_SYMBOL_GPL(dev_attr_sw_activity); 371EXPORT_SYMBOL_GPL(dev_attr_sw_activity);
372 372
@@ -2142,13 +2142,14 @@ static unsigned int ata_scsiop_inq_89(struct ata_scsi_args *args, u8 *rbuf)
2142 2142
2143static unsigned int ata_scsiop_inq_b1(struct ata_scsi_args *args, u8 *rbuf) 2143static unsigned int ata_scsiop_inq_b1(struct ata_scsi_args *args, u8 *rbuf)
2144{ 2144{
2145 int form_factor = ata_id_form_factor(args->id);
2146 int media_rotation_rate = ata_id_rotation_rate(args->id);
2147
2145 rbuf[1] = 0xb1; 2148 rbuf[1] = 0xb1;
2146 rbuf[3] = 0x3c; 2149 rbuf[3] = 0x3c;
2147 if (ata_id_major_version(args->id) > 7) { 2150 rbuf[4] = media_rotation_rate >> 8;
2148 rbuf[4] = args->id[217] >> 8; 2151 rbuf[5] = media_rotation_rate;
2149 rbuf[5] = args->id[217]; 2152 rbuf[7] = form_factor;
2150 rbuf[7] = args->id[168] & 0xf;
2151 }
2152 2153
2153 return 0; 2154 return 0;
2154} 2155}
@@ -2376,7 +2377,23 @@ saving_not_supp:
2376 */ 2377 */
2377static unsigned int ata_scsiop_read_cap(struct ata_scsi_args *args, u8 *rbuf) 2378static unsigned int ata_scsiop_read_cap(struct ata_scsi_args *args, u8 *rbuf)
2378{ 2379{
2379 u64 last_lba = args->dev->n_sectors - 1; /* LBA of the last block */ 2380 struct ata_device *dev = args->dev;
2381 u64 last_lba = dev->n_sectors - 1; /* LBA of the last block */
2382 u8 log_per_phys = 0;
2383 u16 lowest_aligned = 0;
2384 u16 word_106 = dev->id[106];
2385 u16 word_209 = dev->id[209];
2386
2387 if ((word_106 & 0xc000) == 0x4000) {
2388 /* Number and offset of logical sectors per physical sector */
2389 if (word_106 & (1 << 13))
2390 log_per_phys = word_106 & 0xf;
2391 if ((word_209 & 0xc000) == 0x4000) {
2392 u16 first = dev->id[209] & 0x3fff;
2393 if (first > 0)
2394 lowest_aligned = (1 << log_per_phys) - first;
2395 }
2396 }
2380 2397
2381 VPRINTK("ENTER\n"); 2398 VPRINTK("ENTER\n");
2382 2399
@@ -2407,6 +2424,11 @@ static unsigned int ata_scsiop_read_cap(struct ata_scsi_args *args, u8 *rbuf)
2407 /* sector size */ 2424 /* sector size */
2408 rbuf[10] = ATA_SECT_SIZE >> 8; 2425 rbuf[10] = ATA_SECT_SIZE >> 8;
2409 rbuf[11] = ATA_SECT_SIZE & 0xff; 2426 rbuf[11] = ATA_SECT_SIZE & 0xff;
2427
2428 rbuf[12] = 0;
2429 rbuf[13] = log_per_phys;
2430 rbuf[14] = (lowest_aligned >> 8) & 0x3f;
2431 rbuf[15] = lowest_aligned;
2410 } 2432 }
2411 2433
2412 return 0; 2434 return 0;
diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c
index 751b7ea4816c..fc9c5d6d7d80 100644
--- a/drivers/ata/pata_ali.c
+++ b/drivers/ata/pata_ali.c
@@ -497,14 +497,16 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
497 }; 497 };
498 /* Revision 0x20 added DMA */ 498 /* Revision 0x20 added DMA */
499 static const struct ata_port_info info_20 = { 499 static const struct ata_port_info info_20 = {
500 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48, 500 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
501 ATA_FLAG_IGN_SIMPLEX,
501 .pio_mask = ATA_PIO4, 502 .pio_mask = ATA_PIO4,
502 .mwdma_mask = ATA_MWDMA2, 503 .mwdma_mask = ATA_MWDMA2,
503 .port_ops = &ali_20_port_ops 504 .port_ops = &ali_20_port_ops
504 }; 505 };
505 /* Revision 0x20 with support logic added UDMA */ 506 /* Revision 0x20 with support logic added UDMA */
506 static const struct ata_port_info info_20_udma = { 507 static const struct ata_port_info info_20_udma = {
507 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48, 508 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
509 ATA_FLAG_IGN_SIMPLEX,
508 .pio_mask = ATA_PIO4, 510 .pio_mask = ATA_PIO4,
509 .mwdma_mask = ATA_MWDMA2, 511 .mwdma_mask = ATA_MWDMA2,
510 .udma_mask = ATA_UDMA2, 512 .udma_mask = ATA_UDMA2,
@@ -512,7 +514,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
512 }; 514 };
513 /* Revision 0xC2 adds UDMA66 */ 515 /* Revision 0xC2 adds UDMA66 */
514 static const struct ata_port_info info_c2 = { 516 static const struct ata_port_info info_c2 = {
515 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48, 517 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
518 ATA_FLAG_IGN_SIMPLEX,
516 .pio_mask = ATA_PIO4, 519 .pio_mask = ATA_PIO4,
517 .mwdma_mask = ATA_MWDMA2, 520 .mwdma_mask = ATA_MWDMA2,
518 .udma_mask = ATA_UDMA4, 521 .udma_mask = ATA_UDMA4,
@@ -520,7 +523,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
520 }; 523 };
521 /* Revision 0xC3 is UDMA66 for now */ 524 /* Revision 0xC3 is UDMA66 for now */
522 static const struct ata_port_info info_c3 = { 525 static const struct ata_port_info info_c3 = {
523 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48, 526 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
527 ATA_FLAG_IGN_SIMPLEX,
524 .pio_mask = ATA_PIO4, 528 .pio_mask = ATA_PIO4,
525 .mwdma_mask = ATA_MWDMA2, 529 .mwdma_mask = ATA_MWDMA2,
526 .udma_mask = ATA_UDMA4, 530 .udma_mask = ATA_UDMA4,
@@ -528,7 +532,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
528 }; 532 };
529 /* Revision 0xC4 is UDMA100 */ 533 /* Revision 0xC4 is UDMA100 */
530 static const struct ata_port_info info_c4 = { 534 static const struct ata_port_info info_c4 = {
531 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48, 535 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
536 ATA_FLAG_IGN_SIMPLEX,
532 .pio_mask = ATA_PIO4, 537 .pio_mask = ATA_PIO4,
533 .mwdma_mask = ATA_MWDMA2, 538 .mwdma_mask = ATA_MWDMA2,
534 .udma_mask = ATA_UDMA5, 539 .udma_mask = ATA_UDMA5,
@@ -536,7 +541,7 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
536 }; 541 };
537 /* Revision 0xC5 is UDMA133 with LBA48 DMA */ 542 /* Revision 0xC5 is UDMA133 with LBA48 DMA */
538 static const struct ata_port_info info_c5 = { 543 static const struct ata_port_info info_c5 = {
539 .flags = ATA_FLAG_SLAVE_POSS, 544 .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_IGN_SIMPLEX,
540 .pio_mask = ATA_PIO4, 545 .pio_mask = ATA_PIO4,
541 .mwdma_mask = ATA_MWDMA2, 546 .mwdma_mask = ATA_MWDMA2,
542 .udma_mask = ATA_UDMA6, 547 .udma_mask = ATA_UDMA6,
diff --git a/drivers/ata/pata_efar.c b/drivers/ata/pata_efar.c
index 2085e0a3a05a..2a6412f5d117 100644
--- a/drivers/ata/pata_efar.c
+++ b/drivers/ata/pata_efar.c
@@ -22,7 +22,7 @@
22#include <linux/ata.h> 22#include <linux/ata.h>
23 23
24#define DRV_NAME "pata_efar" 24#define DRV_NAME "pata_efar"
25#define DRV_VERSION "0.4.4" 25#define DRV_VERSION "0.4.5"
26 26
27/** 27/**
28 * efar_pre_reset - Enable bits 28 * efar_pre_reset - Enable bits
@@ -98,18 +98,17 @@ static void efar_set_piomode (struct ata_port *ap, struct ata_device *adev)
98 { 2, 1 }, 98 { 2, 1 },
99 { 2, 3 }, }; 99 { 2, 3 }, };
100 100
101 if (pio > 2) 101 if (pio > 1)
102 control |= 1; /* TIME1 enable */ 102 control |= 1; /* TIME */
103 if (ata_pio_need_iordy(adev)) /* PIO 3/4 require IORDY */ 103 if (ata_pio_need_iordy(adev)) /* PIO 3/4 require IORDY */
104 control |= 2; /* IE enable */ 104 control |= 2; /* IE */
105 /* Intel specifies that the PPE functionality is for disk only */ 105 /* Intel specifies that the prefetch/posting is for disk only */
106 if (adev->class == ATA_DEV_ATA) 106 if (adev->class == ATA_DEV_ATA)
107 control |= 4; /* PPE enable */ 107 control |= 4; /* PPE */
108 108
109 pci_read_config_word(dev, idetm_port, &idetm_data); 109 pci_read_config_word(dev, idetm_port, &idetm_data);
110 110
111 /* Enable PPE, IE and TIME as appropriate */ 111 /* Set PPE, IE, and TIME as appropriate */
112
113 if (adev->devno == 0) { 112 if (adev->devno == 0) {
114 idetm_data &= 0xCCF0; 113 idetm_data &= 0xCCF0;
115 idetm_data |= control; 114 idetm_data |= control;
@@ -129,7 +128,7 @@ static void efar_set_piomode (struct ata_port *ap, struct ata_device *adev)
129 pci_write_config_byte(dev, 0x44, slave_data); 128 pci_write_config_byte(dev, 0x44, slave_data);
130 } 129 }
131 130
132 idetm_data |= 0x4000; /* Ensure SITRE is enabled */ 131 idetm_data |= 0x4000; /* Ensure SITRE is set */
133 pci_write_config_word(dev, idetm_port, idetm_data); 132 pci_write_config_word(dev, idetm_port, idetm_data);
134} 133}
135 134
diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c
index f72c6c5b820f..6932e56d179c 100644
--- a/drivers/ata/pata_legacy.c
+++ b/drivers/ata/pata_legacy.c
@@ -48,6 +48,7 @@
48 * 48 *
49 */ 49 */
50 50
51#include <linux/async.h>
51#include <linux/kernel.h> 52#include <linux/kernel.h>
52#include <linux/module.h> 53#include <linux/module.h>
53#include <linux/pci.h> 54#include <linux/pci.h>
@@ -1028,6 +1029,7 @@ static __init int legacy_init_one(struct legacy_probe *probe)
1028 &legacy_sht); 1029 &legacy_sht);
1029 if (ret) 1030 if (ret)
1030 goto fail; 1031 goto fail;
1032 async_synchronize_full();
1031 ld->platform_dev = pdev; 1033 ld->platform_dev = pdev;
1032 1034
1033 /* Nothing found means we drop the port as its probably not there */ 1035 /* Nothing found means we drop the port as its probably not there */
diff --git a/drivers/ata/pata_netcell.c b/drivers/ata/pata_netcell.c
index bdb236957cb9..f0d52f72f5bb 100644
--- a/drivers/ata/pata_netcell.c
+++ b/drivers/ata/pata_netcell.c
@@ -20,13 +20,24 @@
20 20
21/* No PIO or DMA methods needed for this device */ 21/* No PIO or DMA methods needed for this device */
22 22
23static unsigned int netcell_read_id(struct ata_device *adev,
24 struct ata_taskfile *tf, u16 *id)
25{
26 unsigned int err_mask = ata_do_dev_read_id(adev, tf, id);
27 /* Firmware forgets to mark words 85-87 valid */
28 if (err_mask == 0)
29 id[ATA_ID_CSF_DEFAULT] |= 0x4000;
30 return err_mask;
31}
32
23static struct scsi_host_template netcell_sht = { 33static struct scsi_host_template netcell_sht = {
24 ATA_BMDMA_SHT(DRV_NAME), 34 ATA_BMDMA_SHT(DRV_NAME),
25}; 35};
26 36
27static struct ata_port_operations netcell_ops = { 37static struct ata_port_operations netcell_ops = {
28 .inherits = &ata_bmdma_port_ops, 38 .inherits = &ata_bmdma_port_ops,
29 .cable_detect = ata_cable_80wire, 39 .cable_detect = ata_cable_80wire,
40 .read_id = netcell_read_id,
30}; 41};
31 42
32 43
diff --git a/drivers/ata/pata_pdc202xx_old.c b/drivers/ata/pata_pdc202xx_old.c
index 5fedb3d4032b..2f3c9bed63d9 100644
--- a/drivers/ata/pata_pdc202xx_old.c
+++ b/drivers/ata/pata_pdc202xx_old.c
@@ -2,7 +2,7 @@
2 * pata_pdc202xx_old.c - Promise PDC202xx PATA for new ATA layer 2 * pata_pdc202xx_old.c - Promise PDC202xx PATA for new ATA layer
3 * (C) 2005 Red Hat Inc 3 * (C) 2005 Red Hat Inc
4 * Alan Cox <alan@lxorguk.ukuu.org.uk> 4 * Alan Cox <alan@lxorguk.ukuu.org.uk>
5 * (C) 2007 Bartlomiej Zolnierkiewicz 5 * (C) 2007,2009 Bartlomiej Zolnierkiewicz
6 * 6 *
7 * Based in part on linux/drivers/ide/pci/pdc202xx_old.c 7 * Based in part on linux/drivers/ide/pci/pdc202xx_old.c
8 * 8 *
@@ -158,7 +158,7 @@ static void pdc2026x_bmdma_start(struct ata_queued_cmd *qc)
158 u32 len; 158 u32 len;
159 159
160 /* Check we keep host level locking here */ 160 /* Check we keep host level locking here */
161 if (adev->dma_mode >= XFER_UDMA_2) 161 if (adev->dma_mode > XFER_UDMA_2)
162 iowrite8(ioread8(clock) | sel66, clock); 162 iowrite8(ioread8(clock) | sel66, clock);
163 else 163 else
164 iowrite8(ioread8(clock) & ~sel66, clock); 164 iowrite8(ioread8(clock) & ~sel66, clock);
@@ -212,7 +212,7 @@ static void pdc2026x_bmdma_stop(struct ata_queued_cmd *qc)
212 iowrite8(ioread8(clock) & ~sel66, clock); 212 iowrite8(ioread8(clock) & ~sel66, clock);
213 } 213 }
214 /* Flip back to 33Mhz for PIO */ 214 /* Flip back to 33Mhz for PIO */
215 if (adev->dma_mode >= XFER_UDMA_2) 215 if (adev->dma_mode > XFER_UDMA_2)
216 iowrite8(ioread8(clock) & ~sel66, clock); 216 iowrite8(ioread8(clock) & ~sel66, clock);
217 ata_bmdma_stop(qc); 217 ata_bmdma_stop(qc);
218 pdc202xx_set_piomode(ap, adev); 218 pdc202xx_set_piomode(ap, adev);
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index c2e90e1fece0..36b8629203be 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -205,6 +205,7 @@ struct cmdhdr_tbl_entry {
205 * Description information bitdefs 205 * Description information bitdefs
206 */ 206 */
207enum { 207enum {
208 CMD_DESC_RES = (1 << 11),
208 VENDOR_SPECIFIC_BIST = (1 << 10), 209 VENDOR_SPECIFIC_BIST = (1 << 10),
209 CMD_DESC_SNOOP_ENABLE = (1 << 9), 210 CMD_DESC_SNOOP_ENABLE = (1 << 9),
210 FPDMA_QUEUED_CMD = (1 << 8), 211 FPDMA_QUEUED_CMD = (1 << 8),
@@ -332,13 +333,14 @@ static unsigned int sata_fsl_fill_sg(struct ata_queued_cmd *qc, void *cmd_desc,
332 dma_addr_t sg_addr = sg_dma_address(sg); 333 dma_addr_t sg_addr = sg_dma_address(sg);
333 u32 sg_len = sg_dma_len(sg); 334 u32 sg_len = sg_dma_len(sg);
334 335
335 VPRINTK("SATA FSL : fill_sg, sg_addr = 0x%x, sg_len = %d\n", 336 VPRINTK("SATA FSL : fill_sg, sg_addr = 0x%llx, sg_len = %d\n",
336 sg_addr, sg_len); 337 (unsigned long long)sg_addr, sg_len);
337 338
338 /* warn if each s/g element is not dword aligned */ 339 /* warn if each s/g element is not dword aligned */
339 if (sg_addr & 0x03) 340 if (sg_addr & 0x03)
340 ata_port_printk(qc->ap, KERN_ERR, 341 ata_port_printk(qc->ap, KERN_ERR,
341 "s/g addr unaligned : 0x%x\n", sg_addr); 342 "s/g addr unaligned : 0x%llx\n",
343 (unsigned long long)sg_addr);
342 if (sg_len & 0x03) 344 if (sg_len & 0x03)
343 ata_port_printk(qc->ap, KERN_ERR, 345 ata_port_printk(qc->ap, KERN_ERR,
344 "s/g len unaligned : 0x%x\n", sg_len); 346 "s/g len unaligned : 0x%x\n", sg_len);
@@ -387,7 +389,7 @@ static void sata_fsl_qc_prep(struct ata_queued_cmd *qc)
387 void __iomem *hcr_base = host_priv->hcr_base; 389 void __iomem *hcr_base = host_priv->hcr_base;
388 unsigned int tag = sata_fsl_tag(qc->tag, hcr_base); 390 unsigned int tag = sata_fsl_tag(qc->tag, hcr_base);
389 struct command_desc *cd; 391 struct command_desc *cd;
390 u32 desc_info = CMD_DESC_SNOOP_ENABLE; 392 u32 desc_info = CMD_DESC_RES | CMD_DESC_SNOOP_ENABLE;
391 u32 num_prde = 0; 393 u32 num_prde = 0;
392 u32 ttl_dwords = 0; 394 u32 ttl_dwords = 0;
393 dma_addr_t cd_paddr; 395 dma_addr_t cd_paddr;
@@ -840,7 +842,7 @@ issue_srst:
840 842
841 /* device reset/SRST is a control register update FIS, uses tag0 */ 843 /* device reset/SRST is a control register update FIS, uses tag0 */
842 sata_fsl_setup_cmd_hdr_entry(pp, 0, 844 sata_fsl_setup_cmd_hdr_entry(pp, 0,
843 SRST_CMD | CMD_DESC_SNOOP_ENABLE, 0, 0, 5); 845 SRST_CMD | CMD_DESC_RES | CMD_DESC_SNOOP_ENABLE, 0, 0, 5);
844 846
845 tf.ctl |= ATA_SRST; /* setup SRST bit in taskfile control reg */ 847 tf.ctl |= ATA_SRST; /* setup SRST bit in taskfile control reg */
846 ata_tf_to_fis(&tf, pmp, 0, cfis); 848 ata_tf_to_fis(&tf, pmp, 0, cfis);
@@ -886,7 +888,8 @@ issue_srst:
886 * using ATA signature D2H register FIS to the host controller. 888 * using ATA signature D2H register FIS to the host controller.
887 */ 889 */
888 890
889 sata_fsl_setup_cmd_hdr_entry(pp, 0, CMD_DESC_SNOOP_ENABLE, 0, 0, 5); 891 sata_fsl_setup_cmd_hdr_entry(pp, 0, CMD_DESC_RES | CMD_DESC_SNOOP_ENABLE,
892 0, 0, 5);
890 893
891 tf.ctl &= ~ATA_SRST; /* 2nd H2D Ctl. register FIS */ 894 tf.ctl &= ~ATA_SRST; /* 2nd H2D Ctl. register FIS */
892 ata_tf_to_fis(&tf, pmp, 0, cfis); 895 ata_tf_to_fis(&tf, pmp, 0, cfis);
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 870dcfd82357..23714aefb825 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -293,6 +293,10 @@ enum {
293 FISCFG_WAIT_DEV_ERR = (1 << 8), /* wait for host on DevErr */ 293 FISCFG_WAIT_DEV_ERR = (1 << 8), /* wait for host on DevErr */
294 FISCFG_SINGLE_SYNC = (1 << 16), /* SYNC on DMA activation */ 294 FISCFG_SINGLE_SYNC = (1 << 16), /* SYNC on DMA activation */
295 295
296 PHY_MODE9_GEN2 = 0x398,
297 PHY_MODE9_GEN1 = 0x39c,
298 PHYCFG_OFS = 0x3a0, /* only in 65n devices */
299
296 MV5_PHY_MODE = 0x74, 300 MV5_PHY_MODE = 0x74,
297 MV5_LTMODE = 0x30, 301 MV5_LTMODE = 0x30,
298 MV5_PHY_CTL = 0x0C, 302 MV5_PHY_CTL = 0x0C,
@@ -609,6 +613,8 @@ static int mv_soc_reset_hc(struct mv_host_priv *hpriv,
609static void mv_soc_reset_flash(struct mv_host_priv *hpriv, 613static void mv_soc_reset_flash(struct mv_host_priv *hpriv,
610 void __iomem *mmio); 614 void __iomem *mmio);
611static void mv_soc_reset_bus(struct ata_host *host, void __iomem *mmio); 615static void mv_soc_reset_bus(struct ata_host *host, void __iomem *mmio);
616static void mv_soc_65n_phy_errata(struct mv_host_priv *hpriv,
617 void __iomem *mmio, unsigned int port);
612static void mv_reset_pci_bus(struct ata_host *host, void __iomem *mmio); 618static void mv_reset_pci_bus(struct ata_host *host, void __iomem *mmio);
613static void mv_reset_channel(struct mv_host_priv *hpriv, void __iomem *mmio, 619static void mv_reset_channel(struct mv_host_priv *hpriv, void __iomem *mmio,
614 unsigned int port_no); 620 unsigned int port_no);
@@ -807,6 +813,14 @@ static const struct mv_hw_ops mv_soc_ops = {
807 .reset_bus = mv_soc_reset_bus, 813 .reset_bus = mv_soc_reset_bus,
808}; 814};
809 815
816static const struct mv_hw_ops mv_soc_65n_ops = {
817 .phy_errata = mv_soc_65n_phy_errata,
818 .enable_leds = mv_soc_enable_leds,
819 .reset_hc = mv_soc_reset_hc,
820 .reset_flash = mv_soc_reset_flash,
821 .reset_bus = mv_soc_reset_bus,
822};
823
810/* 824/*
811 * Functions 825 * Functions
812 */ 826 */
@@ -3397,6 +3411,53 @@ static void mv_soc_reset_bus(struct ata_host *host, void __iomem *mmio)
3397 return; 3411 return;
3398} 3412}
3399 3413
3414static void mv_soc_65n_phy_errata(struct mv_host_priv *hpriv,
3415 void __iomem *mmio, unsigned int port)
3416{
3417 void __iomem *port_mmio = mv_port_base(mmio, port);
3418 u32 reg;
3419
3420 reg = readl(port_mmio + PHY_MODE3);
3421 reg &= ~(0x3 << 27); /* SELMUPF (bits 28:27) to 1 */
3422 reg |= (0x1 << 27);
3423 reg &= ~(0x3 << 29); /* SELMUPI (bits 30:29) to 1 */
3424 reg |= (0x1 << 29);
3425 writel(reg, port_mmio + PHY_MODE3);
3426
3427 reg = readl(port_mmio + PHY_MODE4);
3428 reg &= ~0x1; /* SATU_OD8 (bit 0) to 0, reserved bit 16 must be set */
3429 reg |= (0x1 << 16);
3430 writel(reg, port_mmio + PHY_MODE4);
3431
3432 reg = readl(port_mmio + PHY_MODE9_GEN2);
3433 reg &= ~0xf; /* TXAMP[3:0] (bits 3:0) to 8 */
3434 reg |= 0x8;
3435 reg &= ~(0x1 << 14); /* TXAMP[4] (bit 14) to 0 */
3436 writel(reg, port_mmio + PHY_MODE9_GEN2);
3437
3438 reg = readl(port_mmio + PHY_MODE9_GEN1);
3439 reg &= ~0xf; /* TXAMP[3:0] (bits 3:0) to 8 */
3440 reg |= 0x8;
3441 reg &= ~(0x1 << 14); /* TXAMP[4] (bit 14) to 0 */
3442 writel(reg, port_mmio + PHY_MODE9_GEN1);
3443}
3444
3445/**
3446 * soc_is_65 - check if the soc is 65 nano device
3447 *
3448 * Detect the type of the SoC, this is done by reading the PHYCFG_OFS
3449 * register, this register should contain non-zero value and it exists only
3450 * in the 65 nano devices, when reading it from older devices we get 0.
3451 */
3452static bool soc_is_65n(struct mv_host_priv *hpriv)
3453{
3454 void __iomem *port0_mmio = mv_port_base(hpriv->base, 0);
3455
3456 if (readl(port0_mmio + PHYCFG_OFS))
3457 return true;
3458 return false;
3459}
3460
3400static void mv_setup_ifcfg(void __iomem *port_mmio, int want_gen2i) 3461static void mv_setup_ifcfg(void __iomem *port_mmio, int want_gen2i)
3401{ 3462{
3402 u32 ifcfg = readl(port_mmio + SATA_IFCFG); 3463 u32 ifcfg = readl(port_mmio + SATA_IFCFG);
@@ -3737,7 +3798,10 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx)
3737 } 3798 }
3738 break; 3799 break;
3739 case chip_soc: 3800 case chip_soc:
3740 hpriv->ops = &mv_soc_ops; 3801 if (soc_is_65n(hpriv))
3802 hpriv->ops = &mv_soc_65n_ops;
3803 else
3804 hpriv->ops = &mv_soc_ops;
3741 hp_flags |= MV_HP_FLAG_SOC | MV_HP_GEN_IIE | 3805 hp_flags |= MV_HP_FLAG_SOC | MV_HP_GEN_IIE |
3742 MV_HP_ERRATA_60X1C0; 3806 MV_HP_ERRATA_60X1C0;
3743 break; 3807 break;
@@ -3800,7 +3864,8 @@ static int mv_init_host(struct ata_host *host, unsigned int board_idx)
3800 n_hc = mv_get_hc_count(host->ports[0]->flags); 3864 n_hc = mv_get_hc_count(host->ports[0]->flags);
3801 3865
3802 for (port = 0; port < host->n_ports; port++) 3866 for (port = 0; port < host->n_ports; port++)
3803 hpriv->ops->read_preamp(hpriv, port, mmio); 3867 if (hpriv->ops->read_preamp)
3868 hpriv->ops->read_preamp(hpriv, port, mmio);
3804 3869
3805 rc = hpriv->ops->reset_hc(hpriv, mmio, n_hc); 3870 rc = hpriv->ops->reset_hc(hpriv, mmio, n_hc);
3806 if (rc) 3871 if (rc)
diff --git a/drivers/ata/sata_sx4.c b/drivers/ata/sata_sx4.c
index dce3dccced3f..eb05a3c82a9e 100644
--- a/drivers/ata/sata_sx4.c
+++ b/drivers/ata/sata_sx4.c
@@ -213,8 +213,9 @@ struct pdc_host_priv {
213 213
214 214
215static int pdc_sata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent); 215static int pdc_sata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
216static void pdc_eng_timeout(struct ata_port *ap); 216static void pdc_error_handler(struct ata_port *ap);
217static void pdc_20621_phy_reset(struct ata_port *ap); 217static void pdc_freeze(struct ata_port *ap);
218static void pdc_thaw(struct ata_port *ap);
218static int pdc_port_start(struct ata_port *ap); 219static int pdc_port_start(struct ata_port *ap);
219static void pdc20621_qc_prep(struct ata_queued_cmd *qc); 220static void pdc20621_qc_prep(struct ata_queued_cmd *qc);
220static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf); 221static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
@@ -233,6 +234,10 @@ static void pdc20621_put_to_dimm(struct ata_host *host,
233 void *psource, u32 offset, u32 size); 234 void *psource, u32 offset, u32 size);
234static void pdc20621_irq_clear(struct ata_port *ap); 235static void pdc20621_irq_clear(struct ata_port *ap);
235static unsigned int pdc20621_qc_issue(struct ata_queued_cmd *qc); 236static unsigned int pdc20621_qc_issue(struct ata_queued_cmd *qc);
237static int pdc_softreset(struct ata_link *link, unsigned int *class,
238 unsigned long deadline);
239static void pdc_post_internal_cmd(struct ata_queued_cmd *qc);
240static int pdc_check_atapi_dma(struct ata_queued_cmd *qc);
236 241
237 242
238static struct scsi_host_template pdc_sata_sht = { 243static struct scsi_host_template pdc_sata_sht = {
@@ -243,20 +248,24 @@ static struct scsi_host_template pdc_sata_sht = {
243 248
244/* TODO: inherit from base port_ops after converting to new EH */ 249/* TODO: inherit from base port_ops after converting to new EH */
245static struct ata_port_operations pdc_20621_ops = { 250static struct ata_port_operations pdc_20621_ops = {
246 .sff_tf_load = pdc_tf_load_mmio, 251 .inherits = &ata_sff_port_ops,
247 .sff_tf_read = ata_sff_tf_read, 252
248 .sff_check_status = ata_sff_check_status, 253 .check_atapi_dma = pdc_check_atapi_dma,
249 .sff_exec_command = pdc_exec_command_mmio,
250 .sff_dev_select = ata_sff_dev_select,
251 .phy_reset = pdc_20621_phy_reset,
252 .qc_prep = pdc20621_qc_prep, 254 .qc_prep = pdc20621_qc_prep,
253 .qc_issue = pdc20621_qc_issue, 255 .qc_issue = pdc20621_qc_issue,
254 .qc_fill_rtf = ata_sff_qc_fill_rtf, 256
255 .sff_data_xfer = ata_sff_data_xfer, 257 .freeze = pdc_freeze,
256 .eng_timeout = pdc_eng_timeout, 258 .thaw = pdc_thaw,
257 .sff_irq_clear = pdc20621_irq_clear, 259 .softreset = pdc_softreset,
258 .sff_irq_on = ata_sff_irq_on, 260 .error_handler = pdc_error_handler,
261 .lost_interrupt = ATA_OP_NULL,
262 .post_internal_cmd = pdc_post_internal_cmd,
263
259 .port_start = pdc_port_start, 264 .port_start = pdc_port_start,
265
266 .sff_tf_load = pdc_tf_load_mmio,
267 .sff_exec_command = pdc_exec_command_mmio,
268 .sff_irq_clear = pdc20621_irq_clear,
260}; 269};
261 270
262static const struct ata_port_info pdc_port_info[] = { 271static const struct ata_port_info pdc_port_info[] = {
@@ -310,14 +319,6 @@ static int pdc_port_start(struct ata_port *ap)
310 return 0; 319 return 0;
311} 320}
312 321
313static void pdc_20621_phy_reset(struct ata_port *ap)
314{
315 VPRINTK("ENTER\n");
316 ap->cbl = ATA_CBL_SATA;
317 ata_port_probe(ap);
318 ata_bus_reset(ap);
319}
320
321static inline void pdc20621_ata_sg(struct ata_taskfile *tf, u8 *buf, 322static inline void pdc20621_ata_sg(struct ata_taskfile *tf, u8 *buf,
322 unsigned int portno, 323 unsigned int portno,
323 unsigned int total_len) 324 unsigned int total_len)
@@ -686,8 +687,11 @@ static void pdc20621_packet_start(struct ata_queued_cmd *qc)
686static unsigned int pdc20621_qc_issue(struct ata_queued_cmd *qc) 687static unsigned int pdc20621_qc_issue(struct ata_queued_cmd *qc)
687{ 688{
688 switch (qc->tf.protocol) { 689 switch (qc->tf.protocol) {
689 case ATA_PROT_DMA:
690 case ATA_PROT_NODATA: 690 case ATA_PROT_NODATA:
691 if (qc->tf.flags & ATA_TFLAG_POLLING)
692 break;
693 /*FALLTHROUGH*/
694 case ATA_PROT_DMA:
691 pdc20621_packet_start(qc); 695 pdc20621_packet_start(qc);
692 return 0; 696 return 0;
693 697
@@ -786,12 +790,7 @@ static inline unsigned int pdc20621_host_intr(struct ata_port *ap,
786 790
787static void pdc20621_irq_clear(struct ata_port *ap) 791static void pdc20621_irq_clear(struct ata_port *ap)
788{ 792{
789 struct ata_host *host = ap->host; 793 ioread8(ap->ioaddr.status_addr);
790 void __iomem *mmio = host->iomap[PDC_MMIO_BAR];
791
792 mmio += PDC_CHIP0_OFS;
793
794 readl(mmio + PDC_20621_SEQMASK);
795} 794}
796 795
797static irqreturn_t pdc20621_interrupt(int irq, void *dev_instance) 796static irqreturn_t pdc20621_interrupt(int irq, void *dev_instance)
@@ -859,46 +858,119 @@ static irqreturn_t pdc20621_interrupt(int irq, void *dev_instance)
859 return IRQ_RETVAL(handled); 858 return IRQ_RETVAL(handled);
860} 859}
861 860
862static void pdc_eng_timeout(struct ata_port *ap) 861static void pdc_freeze(struct ata_port *ap)
863{ 862{
864 u8 drv_stat; 863 void __iomem *mmio = ap->ioaddr.cmd_addr;
865 struct ata_host *host = ap->host; 864 u32 tmp;
866 struct ata_queued_cmd *qc;
867 unsigned long flags;
868 865
869 DPRINTK("ENTER\n"); 866 /* FIXME: if all 4 ATA engines are stopped, also stop HDMA engine */
870 867
871 spin_lock_irqsave(&host->lock, flags); 868 tmp = readl(mmio + PDC_CTLSTAT);
869 tmp |= PDC_MASK_INT;
870 tmp &= ~PDC_DMA_ENABLE;
871 writel(tmp, mmio + PDC_CTLSTAT);
872 readl(mmio + PDC_CTLSTAT); /* flush */
873}
872 874
873 qc = ata_qc_from_tag(ap, ap->link.active_tag); 875static void pdc_thaw(struct ata_port *ap)
876{
877 void __iomem *mmio = ap->ioaddr.cmd_addr;
878 u32 tmp;
874 879
875 switch (qc->tf.protocol) { 880 /* FIXME: start HDMA engine, if zero ATA engines running */
876 case ATA_PROT_DMA:
877 case ATA_PROT_NODATA:
878 ata_port_printk(ap, KERN_ERR, "command timeout\n");
879 qc->err_mask |= __ac_err_mask(ata_wait_idle(ap));
880 break;
881 881
882 default: 882 /* clear IRQ */
883 drv_stat = ata_sff_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000); 883 ioread8(ap->ioaddr.status_addr);
884 884
885 ata_port_printk(ap, KERN_ERR, 885 /* turn IRQ back on */
886 "unknown timeout, cmd 0x%x stat 0x%x\n", 886 tmp = readl(mmio + PDC_CTLSTAT);
887 qc->tf.command, drv_stat); 887 tmp &= ~PDC_MASK_INT;
888 writel(tmp, mmio + PDC_CTLSTAT);
889 readl(mmio + PDC_CTLSTAT); /* flush */
890}
888 891
889 qc->err_mask |= ac_err_mask(drv_stat); 892static void pdc_reset_port(struct ata_port *ap)
890 break; 893{
894 void __iomem *mmio = ap->ioaddr.cmd_addr + PDC_CTLSTAT;
895 unsigned int i;
896 u32 tmp;
897
898 /* FIXME: handle HDMA copy engine */
899
900 for (i = 11; i > 0; i--) {
901 tmp = readl(mmio);
902 if (tmp & PDC_RESET)
903 break;
904
905 udelay(100);
906
907 tmp |= PDC_RESET;
908 writel(tmp, mmio);
891 } 909 }
892 910
893 spin_unlock_irqrestore(&host->lock, flags); 911 tmp &= ~PDC_RESET;
894 ata_eh_qc_complete(qc); 912 writel(tmp, mmio);
895 DPRINTK("EXIT\n"); 913 readl(mmio); /* flush */
914}
915
916static int pdc_softreset(struct ata_link *link, unsigned int *class,
917 unsigned long deadline)
918{
919 pdc_reset_port(link->ap);
920 return ata_sff_softreset(link, class, deadline);
921}
922
923static void pdc_error_handler(struct ata_port *ap)
924{
925 if (!(ap->pflags & ATA_PFLAG_FROZEN))
926 pdc_reset_port(ap);
927
928 ata_std_error_handler(ap);
929}
930
931static void pdc_post_internal_cmd(struct ata_queued_cmd *qc)
932{
933 struct ata_port *ap = qc->ap;
934
935 /* make DMA engine forget about the failed command */
936 if (qc->flags & ATA_QCFLAG_FAILED)
937 pdc_reset_port(ap);
938}
939
940static int pdc_check_atapi_dma(struct ata_queued_cmd *qc)
941{
942 u8 *scsicmd = qc->scsicmd->cmnd;
943 int pio = 1; /* atapi dma off by default */
944
945 /* Whitelist commands that may use DMA. */
946 switch (scsicmd[0]) {
947 case WRITE_12:
948 case WRITE_10:
949 case WRITE_6:
950 case READ_12:
951 case READ_10:
952 case READ_6:
953 case 0xad: /* READ_DVD_STRUCTURE */
954 case 0xbe: /* READ_CD */
955 pio = 0;
956 }
957 /* -45150 (FFFF4FA2) to -1 (FFFFFFFF) shall use PIO mode */
958 if (scsicmd[0] == WRITE_10) {
959 unsigned int lba =
960 (scsicmd[2] << 24) |
961 (scsicmd[3] << 16) |
962 (scsicmd[4] << 8) |
963 scsicmd[5];
964 if (lba >= 0xFFFF4FA2)
965 pio = 1;
966 }
967 return pio;
896} 968}
897 969
898static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf) 970static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
899{ 971{
900 WARN_ON(tf->protocol == ATA_PROT_DMA || 972 WARN_ON(tf->protocol == ATA_PROT_DMA ||
901 tf->protocol == ATA_PROT_NODATA); 973 tf->protocol == ATAPI_PROT_DMA);
902 ata_sff_tf_load(ap, tf); 974 ata_sff_tf_load(ap, tf);
903} 975}
904 976
@@ -906,7 +978,7 @@ static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
906static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf) 978static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
907{ 979{
908 WARN_ON(tf->protocol == ATA_PROT_DMA || 980 WARN_ON(tf->protocol == ATA_PROT_DMA ||
909 tf->protocol == ATA_PROT_NODATA); 981 tf->protocol == ATAPI_PROT_DMA);
910 ata_sff_exec_command(ap, tf); 982 ata_sff_exec_command(ap, tf);
911} 983}
912 984
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index dc030f1f00f1..c6599618523e 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -700,8 +700,10 @@ int bus_add_driver(struct device_driver *drv)
700 } 700 }
701 701
702 kobject_uevent(&priv->kobj, KOBJ_ADD); 702 kobject_uevent(&priv->kobj, KOBJ_ADD);
703 return error; 703 return 0;
704out_unregister: 704out_unregister:
705 kfree(drv->p);
706 drv->p = NULL;
705 kobject_put(&priv->kobj); 707 kobject_put(&priv->kobj);
706out_put_bus: 708out_put_bus:
707 bus_put(bus); 709 bus_put(bus);
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 4aa527b8a913..1977d4beb89e 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -879,7 +879,7 @@ int device_add(struct device *dev)
879 } 879 }
880 880
881 if (!dev_name(dev)) 881 if (!dev_name(dev))
882 goto done; 882 goto name_error;
883 883
884 pr_debug("device: '%s': %s\n", dev_name(dev), __func__); 884 pr_debug("device: '%s': %s\n", dev_name(dev), __func__);
885 885
@@ -978,6 +978,9 @@ done:
978 cleanup_device_parent(dev); 978 cleanup_device_parent(dev);
979 if (parent) 979 if (parent)
980 put_device(parent); 980 put_device(parent);
981name_error:
982 kfree(dev->p);
983 dev->p = NULL;
981 goto done; 984 goto done;
982} 985}
983 986
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index c51f11bb29ae..8ae0f63602e0 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -257,6 +257,10 @@ EXPORT_SYMBOL_GPL(driver_register);
257 */ 257 */
258void driver_unregister(struct device_driver *drv) 258void driver_unregister(struct device_driver *drv)
259{ 259{
260 if (!drv || !drv->p) {
261 WARN(1, "Unexpected driver unregister!\n");
262 return;
263 }
260 driver_remove_groups(drv, drv->groups); 264 driver_remove_groups(drv, drv->groups);
261 bus_remove_driver(drv); 265 bus_remove_driver(drv);
262} 266}
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index b5b6c973a2e0..8b4708e06244 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -217,7 +217,6 @@ int platform_device_add_data(struct platform_device *pdev, const void *data,
217 if (d) { 217 if (d) {
218 memcpy(d, data, size); 218 memcpy(d, data, size);
219 pdev->dev.platform_data = d; 219 pdev->dev.platform_data = d;
220 pdev->platform_data = d;
221 } 220 }
222 return d ? 0 : -ENOMEM; 221 return d ? 0 : -ENOMEM;
223} 222}
@@ -247,21 +246,6 @@ int platform_device_add(struct platform_device *pdev)
247 else 246 else
248 dev_set_name(&pdev->dev, pdev->name); 247 dev_set_name(&pdev->dev, pdev->name);
249 248
250 /* We will remove platform_data field from struct device
251 * if all platform devices pass its platform specific data
252 * from platform_device. The conversion is going to be a
253 * long time, so we allow the two cases coexist to make
254 * this kind of fix more easily*/
255 if (pdev->platform_data && pdev->dev.platform_data) {
256 printk(KERN_ERR
257 "%s: use which platform_data?\n",
258 dev_name(&pdev->dev));
259 } else if (pdev->platform_data) {
260 pdev->dev.platform_data = pdev->platform_data;
261 } else if (pdev->dev.platform_data) {
262 pdev->platform_data = pdev->dev.platform_data;
263 }
264
265 for (i = 0; i < pdev->num_resources; i++) { 249 for (i = 0; i < pdev->num_resources; i++) {
266 struct resource *p, *r = &pdev->resource[i]; 250 struct resource *p, *r = &pdev->resource[i];
267 251
@@ -1028,7 +1012,7 @@ static __initdata LIST_HEAD(early_platform_device_list);
1028 1012
1029/** 1013/**
1030 * early_platform_driver_register 1014 * early_platform_driver_register
1031 * @edrv: early_platform driver structure 1015 * @epdrv: early_platform driver structure
1032 * @buf: string passed from early_param() 1016 * @buf: string passed from early_param()
1033 */ 1017 */
1034int __init early_platform_driver_register(struct early_platform_driver *epdrv, 1018int __init early_platform_driver_register(struct early_platform_driver *epdrv,
@@ -1112,7 +1096,7 @@ void __init early_platform_driver_register_all(char *class_str)
1112 1096
1113/** 1097/**
1114 * early_platform_match 1098 * early_platform_match
1115 * @edrv: early platform driver structure 1099 * @epdrv: early platform driver structure
1116 * @id: id to match against 1100 * @id: id to match against
1117 */ 1101 */
1118static __init struct platform_device * 1102static __init struct platform_device *
@@ -1130,7 +1114,7 @@ early_platform_match(struct early_platform_driver *epdrv, int id)
1130 1114
1131/** 1115/**
1132 * early_platform_left 1116 * early_platform_left
1133 * @edrv: early platform driver structure 1117 * @epdrv: early platform driver structure
1134 * @id: return true if id or above exists 1118 * @id: return true if id or above exists
1135 */ 1119 */
1136static __init int early_platform_left(struct early_platform_driver *epdrv, 1120static __init int early_platform_left(struct early_platform_driver *epdrv,
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 69b4ddb7de3b..3e4bc699bc0f 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -357,6 +357,7 @@ static void dpm_power_up(pm_message_t state)
357{ 357{
358 struct device *dev; 358 struct device *dev;
359 359
360 mutex_lock(&dpm_list_mtx);
360 list_for_each_entry(dev, &dpm_list, power.entry) 361 list_for_each_entry(dev, &dpm_list, power.entry)
361 if (dev->power.status > DPM_OFF) { 362 if (dev->power.status > DPM_OFF) {
362 int error; 363 int error;
@@ -366,6 +367,7 @@ static void dpm_power_up(pm_message_t state)
366 if (error) 367 if (error)
367 pm_dev_err(dev, state, " early", error); 368 pm_dev_err(dev, state, " early", error);
368 } 369 }
370 mutex_unlock(&dpm_list_mtx);
369} 371}
370 372
371/** 373/**
@@ -614,6 +616,7 @@ int device_power_down(pm_message_t state)
614 int error = 0; 616 int error = 0;
615 617
616 suspend_device_irqs(); 618 suspend_device_irqs();
619 mutex_lock(&dpm_list_mtx);
617 list_for_each_entry_reverse(dev, &dpm_list, power.entry) { 620 list_for_each_entry_reverse(dev, &dpm_list, power.entry) {
618 error = suspend_device_noirq(dev, state); 621 error = suspend_device_noirq(dev, state);
619 if (error) { 622 if (error) {
@@ -622,6 +625,7 @@ int device_power_down(pm_message_t state)
622 } 625 }
623 dev->power.status = DPM_OFF_IRQ; 626 dev->power.status = DPM_OFF_IRQ;
624 } 627 }
628 mutex_unlock(&dpm_list_mtx);
625 if (error) 629 if (error)
626 device_power_up(resume_event(state)); 630 device_power_up(resume_event(state));
627 return error; 631 return error;
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index 8f905089b72b..a6cbf7b808e6 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -934,8 +934,6 @@ static void blkfront_closing(struct xenbus_device *dev)
934 934
935 spin_lock_irqsave(&blkif_io_lock, flags); 935 spin_lock_irqsave(&blkif_io_lock, flags);
936 936
937 del_gendisk(info->gd);
938
939 /* No more blkif_request(). */ 937 /* No more blkif_request(). */
940 blk_stop_queue(info->rq); 938 blk_stop_queue(info->rq);
941 939
@@ -949,6 +947,8 @@ static void blkfront_closing(struct xenbus_device *dev)
949 blk_cleanup_queue(info->rq); 947 blk_cleanup_queue(info->rq);
950 info->rq = NULL; 948 info->rq = NULL;
951 949
950 del_gendisk(info->gd);
951
952 out: 952 out:
953 xenbus_frontend_closed(dev); 953 xenbus_frontend_closed(dev);
954} 954}
@@ -977,8 +977,10 @@ static void backend_changed(struct xenbus_device *dev,
977 break; 977 break;
978 978
979 case XenbusStateClosing: 979 case XenbusStateClosing:
980 if (info->gd == NULL) 980 if (info->gd == NULL) {
981 xenbus_dev_fatal(dev, -ENODEV, "gd is NULL"); 981 xenbus_frontend_closed(dev);
982 break;
983 }
982 bd = bdget_disk(info->gd, 0); 984 bd = bdget_disk(info->gd, 0);
983 if (bd == NULL) 985 if (bd == NULL)
984 xenbus_dev_fatal(dev, -ENODEV, "bdget failed"); 986 xenbus_dev_fatal(dev, -ENODEV, "bdget failed");
diff --git a/drivers/cdrom/viocd.c b/drivers/cdrom/viocd.c
index 13929356135c..9b1624e0ddeb 100644
--- a/drivers/cdrom/viocd.c
+++ b/drivers/cdrom/viocd.c
@@ -587,7 +587,7 @@ static int viocd_probe(struct vio_dev *vdev, const struct vio_device_id *id)
587 struct device_node *node = vdev->dev.archdata.of_node; 587 struct device_node *node = vdev->dev.archdata.of_node;
588 588
589 deviceno = vdev->unit_address; 589 deviceno = vdev->unit_address;
590 if (deviceno > VIOCD_MAX_CD) 590 if (deviceno >= VIOCD_MAX_CD)
591 return -ENODEV; 591 return -ENODEV;
592 if (!node) 592 if (!node)
593 return -ENODEV; 593 return -ENODEV;
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
index aa83a0865ec1..09050797c76a 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -2856,6 +2856,7 @@ int ipmi_register_smi(struct ipmi_smi_handlers *handlers,
2856 /* Assume a single IPMB channel at zero. */ 2856 /* Assume a single IPMB channel at zero. */
2857 intf->channels[0].medium = IPMI_CHANNEL_MEDIUM_IPMB; 2857 intf->channels[0].medium = IPMI_CHANNEL_MEDIUM_IPMB;
2858 intf->channels[0].protocol = IPMI_CHANNEL_PROTOCOL_IPMB; 2858 intf->channels[0].protocol = IPMI_CHANNEL_PROTOCOL_IPMB;
2859 intf->curr_channel = IPMI_MAX_CHANNELS;
2859 } 2860 }
2860 2861
2861 if (rv == 0) 2862 if (rv == 0)
@@ -3648,13 +3649,13 @@ static int handle_new_recv_msg(ipmi_smi_t intf,
3648 } 3649 }
3649 3650
3650 /* 3651 /*
3651 ** We need to make sure the channels have been initialized. 3652 * We need to make sure the channels have been initialized.
3652 ** The channel_handler routine will set the "curr_channel" 3653 * The channel_handler routine will set the "curr_channel"
3653 ** equal to or greater than IPMI_MAX_CHANNELS when all the 3654 * equal to or greater than IPMI_MAX_CHANNELS when all the
3654 ** channels for this interface have been initialized. 3655 * channels for this interface have been initialized.
3655 */ 3656 */
3656 if (intf->curr_channel < IPMI_MAX_CHANNELS) { 3657 if (intf->curr_channel < IPMI_MAX_CHANNELS) {
3657 requeue = 1; /* Just put the message back for now */ 3658 requeue = 0; /* Throw the message away */
3658 goto out; 3659 goto out;
3659 } 3660 }
3660 3661
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
index 8f05c38c2f06..65e12bca657c 100644
--- a/drivers/char/mem.c
+++ b/drivers/char/mem.c
@@ -694,6 +694,9 @@ static ssize_t read_zero(struct file * file, char __user * buf,
694 written += chunk - unwritten; 694 written += chunk - unwritten;
695 if (unwritten) 695 if (unwritten)
696 break; 696 break;
697 /* Consider changing this to just 'signal_pending()' with lots of testing */
698 if (fatal_signal_pending(current))
699 return written ? written : -EINTR;
697 buf += chunk; 700 buf += chunk;
698 count -= chunk; 701 count -= chunk;
699 cond_resched(); 702 cond_resched();
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c
index a420e8d437dd..13f8871e5b21 100644
--- a/drivers/char/mxser.c
+++ b/drivers/char/mxser.c
@@ -2711,7 +2711,7 @@ static int __init mxser_module_init(void)
2711 continue; 2711 continue;
2712 2712
2713 brd = &mxser_boards[m]; 2713 brd = &mxser_boards[m];
2714 retval = mxser_get_ISA_conf(!ioaddr[b], brd); 2714 retval = mxser_get_ISA_conf(ioaddr[b], brd);
2715 if (retval <= 0) { 2715 if (retval <= 0) {
2716 brd->info = NULL; 2716 brd->info = NULL;
2717 continue; 2717 continue;
diff --git a/drivers/char/random.c b/drivers/char/random.c
index b2ced39d76b2..8c7444857a4b 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -1673,7 +1673,7 @@ unsigned int get_random_int(void)
1673 int ret; 1673 int ret;
1674 1674
1675 keyptr = get_keyptr(); 1675 keyptr = get_keyptr();
1676 hash[0] += current->pid + jiffies + get_cycles() + (int)(long)&ret; 1676 hash[0] += current->pid + jiffies + get_cycles();
1677 1677
1678 ret = half_md4_transform(hash, keyptr->secret); 1678 ret = half_md4_transform(hash, keyptr->secret);
1679 put_cpu_var(get_random_int_hash); 1679 put_cpu_var(get_random_int_hash);
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
index b0a6a3e51924..d6a807f4077d 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -406,7 +406,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
406 &sysrq_showlocks_op, /* d */ 406 &sysrq_showlocks_op, /* d */
407 &sysrq_term_op, /* e */ 407 &sysrq_term_op, /* e */
408 &sysrq_moom_op, /* f */ 408 &sysrq_moom_op, /* f */
409 /* g: May be registered by ppc for kgdb */ 409 /* g: May be registered for the kernel debugger */
410 NULL, /* g */ 410 NULL, /* g */
411 NULL, /* h - reserved for help */ 411 NULL, /* h - reserved for help */
412 &sysrq_kill_op, /* i */ 412 &sysrq_kill_op, /* i */
@@ -431,7 +431,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
431 &sysrq_sync_op, /* s */ 431 &sysrq_sync_op, /* s */
432 &sysrq_showstate_op, /* t */ 432 &sysrq_showstate_op, /* t */
433 &sysrq_mountro_op, /* u */ 433 &sysrq_mountro_op, /* u */
434 /* v: May be registered at init time by SMP VOYAGER */ 434 /* v: May be registered for frame buffer console restore */
435 NULL, /* v */ 435 NULL, /* v */
436 &sysrq_showstate_blocked_op, /* w */ 436 &sysrq_showstate_blocked_op, /* w */
437 /* x: May be registered on ppc/powerpc for xmon */ 437 /* x: May be registered on ppc/powerpc for xmon */
diff --git a/drivers/char/tpm/tpm_bios.c b/drivers/char/tpm/tpm_bios.c
index ed306eb1057f..0c2f55a38b95 100644
--- a/drivers/char/tpm/tpm_bios.c
+++ b/drivers/char/tpm/tpm_bios.c
@@ -212,7 +212,8 @@ static int get_event_name(char *dest, struct tcpa_event *event,
212 unsigned char * event_entry) 212 unsigned char * event_entry)
213{ 213{
214 const char *name = ""; 214 const char *name = "";
215 char data[40] = ""; 215 /* 41 so there is room for 40 data and 1 nul */
216 char data[41] = "";
216 int i, n_len = 0, d_len = 0; 217 int i, n_len = 0, d_len = 0;
217 struct tcpa_pc_event *pc_event; 218 struct tcpa_pc_event *pc_event;
218 219
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index d270e8eb3e67..6e2ec0b18948 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -808,7 +808,7 @@ static int cpufreq_add_dev(struct sys_device *sys_dev)
808 ret = -ENOMEM; 808 ret = -ENOMEM;
809 goto nomem_out; 809 goto nomem_out;
810 } 810 }
811 if (!alloc_cpumask_var(&policy->related_cpus, GFP_KERNEL)) { 811 if (!zalloc_cpumask_var(&policy->related_cpus, GFP_KERNEL)) {
812 free_cpumask_var(policy->cpus); 812 free_cpumask_var(policy->cpus);
813 kfree(policy); 813 kfree(policy);
814 ret = -ENOMEM; 814 ret = -ENOMEM;
@@ -1070,11 +1070,11 @@ static int __cpufreq_remove_dev(struct sys_device *sys_dev)
1070 spin_unlock_irqrestore(&cpufreq_driver_lock, flags); 1070 spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
1071#endif 1071#endif
1072 1072
1073 unlock_policy_rwsem_write(cpu);
1074
1073 if (cpufreq_driver->target) 1075 if (cpufreq_driver->target)
1074 __cpufreq_governor(data, CPUFREQ_GOV_STOP); 1076 __cpufreq_governor(data, CPUFREQ_GOV_STOP);
1075 1077
1076 unlock_policy_rwsem_write(cpu);
1077
1078 kobject_put(&data->kobj); 1078 kobject_put(&data->kobj);
1079 1079
1080 /* we need to make sure that the underlying kobj is actually 1080 /* we need to make sure that the underlying kobj is actually
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
index 2ecd95e4ab1a..7a74d175287b 100644
--- a/drivers/cpufreq/cpufreq_conservative.c
+++ b/drivers/cpufreq/cpufreq_conservative.c
@@ -91,6 +91,9 @@ static unsigned int dbs_enable; /* number of CPUs using this policy */
91 * (like __cpufreq_driver_target()) is being called with dbs_mutex taken, then 91 * (like __cpufreq_driver_target()) is being called with dbs_mutex taken, then
92 * cpu_hotplug lock should be taken before that. Note that cpu_hotplug lock 92 * cpu_hotplug lock should be taken before that. Note that cpu_hotplug lock
93 * is recursive for the same process. -Venki 93 * is recursive for the same process. -Venki
94 * DEADLOCK ALERT! (2) : do_dbs_timer() must not take the dbs_mutex, because it
95 * would deadlock with cancel_delayed_work_sync(), which is needed for proper
96 * raceless workqueue teardown.
94 */ 97 */
95static DEFINE_MUTEX(dbs_mutex); 98static DEFINE_MUTEX(dbs_mutex);
96 99
@@ -542,7 +545,7 @@ static inline void dbs_timer_init(struct cpu_dbs_info_s *dbs_info)
542static inline void dbs_timer_exit(struct cpu_dbs_info_s *dbs_info) 545static inline void dbs_timer_exit(struct cpu_dbs_info_s *dbs_info)
543{ 546{
544 dbs_info->enable = 0; 547 dbs_info->enable = 0;
545 cancel_delayed_work(&dbs_info->work); 548 cancel_delayed_work_sync(&dbs_info->work);
546} 549}
547 550
548static int cpufreq_governor_dbs(struct cpufreq_policy *policy, 551static int cpufreq_governor_dbs(struct cpufreq_policy *policy,
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
index 338f428a15b7..e741c339df76 100644
--- a/drivers/cpufreq/cpufreq_ondemand.c
+++ b/drivers/cpufreq/cpufreq_ondemand.c
@@ -98,6 +98,9 @@ static unsigned int dbs_enable; /* number of CPUs using this policy */
98 * (like __cpufreq_driver_target()) is being called with dbs_mutex taken, then 98 * (like __cpufreq_driver_target()) is being called with dbs_mutex taken, then
99 * cpu_hotplug lock should be taken before that. Note that cpu_hotplug lock 99 * cpu_hotplug lock should be taken before that. Note that cpu_hotplug lock
100 * is recursive for the same process. -Venki 100 * is recursive for the same process. -Venki
101 * DEADLOCK ALERT! (2) : do_dbs_timer() must not take the dbs_mutex, because it
102 * would deadlock with cancel_delayed_work_sync(), which is needed for proper
103 * raceless workqueue teardown.
101 */ 104 */
102static DEFINE_MUTEX(dbs_mutex); 105static DEFINE_MUTEX(dbs_mutex);
103 106
@@ -562,7 +565,7 @@ static inline void dbs_timer_init(struct cpu_dbs_info_s *dbs_info)
562static inline void dbs_timer_exit(struct cpu_dbs_info_s *dbs_info) 565static inline void dbs_timer_exit(struct cpu_dbs_info_s *dbs_info)
563{ 566{
564 dbs_info->enable = 0; 567 dbs_info->enable = 0;
565 cancel_delayed_work(&dbs_info->work); 568 cancel_delayed_work_sync(&dbs_info->work);
566} 569}
567 570
568static int cpufreq_governor_dbs(struct cpufreq_policy *policy, 571static int cpufreq_governor_dbs(struct cpufreq_policy *policy,
diff --git a/drivers/crypto/ixp4xx_crypto.c b/drivers/crypto/ixp4xx_crypto.c
index f9f05d7a707d..6c6656d3b1e2 100644
--- a/drivers/crypto/ixp4xx_crypto.c
+++ b/drivers/crypto/ixp4xx_crypto.c
@@ -415,6 +415,7 @@ static void crypto_done_action(unsigned long arg)
415static int init_ixp_crypto(void) 415static int init_ixp_crypto(void)
416{ 416{
417 int ret = -ENODEV; 417 int ret = -ENODEV;
418 u32 msg[2] = { 0, 0 };
418 419
419 if (! ( ~(*IXP4XX_EXP_CFG2) & (IXP4XX_FEATURE_HASH | 420 if (! ( ~(*IXP4XX_EXP_CFG2) & (IXP4XX_FEATURE_HASH |
420 IXP4XX_FEATURE_AES | IXP4XX_FEATURE_DES))) { 421 IXP4XX_FEATURE_AES | IXP4XX_FEATURE_DES))) {
@@ -426,9 +427,35 @@ static int init_ixp_crypto(void)
426 return ret; 427 return ret;
427 428
428 if (!npe_running(npe_c)) { 429 if (!npe_running(npe_c)) {
429 npe_load_firmware(npe_c, npe_name(npe_c), dev); 430 ret = npe_load_firmware(npe_c, npe_name(npe_c), dev);
431 if (ret) {
432 return ret;
433 }
434 if (npe_recv_message(npe_c, msg, "STATUS_MSG"))
435 goto npe_error;
436 } else {
437 if (npe_send_message(npe_c, msg, "STATUS_MSG"))
438 goto npe_error;
439
440 if (npe_recv_message(npe_c, msg, "STATUS_MSG"))
441 goto npe_error;
430 } 442 }
431 443
444 switch ((msg[1]>>16) & 0xff) {
445 case 3:
446 printk(KERN_WARNING "Firmware of %s lacks AES support\n",
447 npe_name(npe_c));
448 support_aes = 0;
449 break;
450 case 4:
451 case 5:
452 support_aes = 1;
453 break;
454 default:
455 printk(KERN_ERR "Firmware of %s lacks crypto support\n",
456 npe_name(npe_c));
457 return -ENODEV;
458 }
432 /* buffer_pool will also be used to sometimes store the hmac, 459 /* buffer_pool will also be used to sometimes store the hmac,
433 * so assure it is large enough 460 * so assure it is large enough
434 */ 461 */
@@ -459,6 +486,10 @@ static int init_ixp_crypto(void)
459 486
460 qmgr_enable_irq(RECV_QID); 487 qmgr_enable_irq(RECV_QID);
461 return 0; 488 return 0;
489
490npe_error:
491 printk(KERN_ERR "%s not responding\n", npe_name(npe_c));
492 ret = -EIO;
462err: 493err:
463 if (ctx_pool) 494 if (ctx_pool)
464 dma_pool_destroy(ctx_pool); 495 dma_pool_destroy(ctx_pool);
diff --git a/drivers/crypto/padlock-aes.c b/drivers/crypto/padlock-aes.c
index 3f0fdd18255d..856b3cc25583 100644
--- a/drivers/crypto/padlock-aes.c
+++ b/drivers/crypto/padlock-aes.c
@@ -489,4 +489,4 @@ MODULE_DESCRIPTION("VIA PadLock AES algorithm support");
489MODULE_LICENSE("GPL"); 489MODULE_LICENSE("GPL");
490MODULE_AUTHOR("Michal Ludvig"); 490MODULE_AUTHOR("Michal Ludvig");
491 491
492MODULE_ALIAS("aes-all"); 492MODULE_ALIAS("aes");
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index 92438e9dacc3..5a87384ea4ff 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -804,11 +804,14 @@ dma_async_memcpy_buf_to_buf(struct dma_chan *chan, void *dest,
804 dma_addr_t dma_dest, dma_src; 804 dma_addr_t dma_dest, dma_src;
805 dma_cookie_t cookie; 805 dma_cookie_t cookie;
806 int cpu; 806 int cpu;
807 unsigned long flags;
807 808
808 dma_src = dma_map_single(dev->dev, src, len, DMA_TO_DEVICE); 809 dma_src = dma_map_single(dev->dev, src, len, DMA_TO_DEVICE);
809 dma_dest = dma_map_single(dev->dev, dest, len, DMA_FROM_DEVICE); 810 dma_dest = dma_map_single(dev->dev, dest, len, DMA_FROM_DEVICE);
810 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, 811 flags = DMA_CTRL_ACK |
811 DMA_CTRL_ACK); 812 DMA_COMPL_SRC_UNMAP_SINGLE |
813 DMA_COMPL_DEST_UNMAP_SINGLE;
814 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, flags);
812 815
813 if (!tx) { 816 if (!tx) {
814 dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE); 817 dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE);
@@ -850,11 +853,12 @@ dma_async_memcpy_buf_to_pg(struct dma_chan *chan, struct page *page,
850 dma_addr_t dma_dest, dma_src; 853 dma_addr_t dma_dest, dma_src;
851 dma_cookie_t cookie; 854 dma_cookie_t cookie;
852 int cpu; 855 int cpu;
856 unsigned long flags;
853 857
854 dma_src = dma_map_single(dev->dev, kdata, len, DMA_TO_DEVICE); 858 dma_src = dma_map_single(dev->dev, kdata, len, DMA_TO_DEVICE);
855 dma_dest = dma_map_page(dev->dev, page, offset, len, DMA_FROM_DEVICE); 859 dma_dest = dma_map_page(dev->dev, page, offset, len, DMA_FROM_DEVICE);
856 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, 860 flags = DMA_CTRL_ACK | DMA_COMPL_SRC_UNMAP_SINGLE;
857 DMA_CTRL_ACK); 861 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, flags);
858 862
859 if (!tx) { 863 if (!tx) {
860 dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE); 864 dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE);
@@ -898,12 +902,13 @@ dma_async_memcpy_pg_to_pg(struct dma_chan *chan, struct page *dest_pg,
898 dma_addr_t dma_dest, dma_src; 902 dma_addr_t dma_dest, dma_src;
899 dma_cookie_t cookie; 903 dma_cookie_t cookie;
900 int cpu; 904 int cpu;
905 unsigned long flags;
901 906
902 dma_src = dma_map_page(dev->dev, src_pg, src_off, len, DMA_TO_DEVICE); 907 dma_src = dma_map_page(dev->dev, src_pg, src_off, len, DMA_TO_DEVICE);
903 dma_dest = dma_map_page(dev->dev, dest_pg, dest_off, len, 908 dma_dest = dma_map_page(dev->dev, dest_pg, dest_off, len,
904 DMA_FROM_DEVICE); 909 DMA_FROM_DEVICE);
905 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, 910 flags = DMA_CTRL_ACK;
906 DMA_CTRL_ACK); 911 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, flags);
907 912
908 if (!tx) { 913 if (!tx) {
909 dma_unmap_page(dev->dev, dma_src, len, DMA_TO_DEVICE); 914 dma_unmap_page(dev->dev, dma_src, len, DMA_TO_DEVICE);
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
index a27c0fb1bc11..fb7da5141e96 100644
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -531,9 +531,7 @@ static int __init dmatest_init(void)
531 chan = dma_request_channel(mask, filter, NULL); 531 chan = dma_request_channel(mask, filter, NULL);
532 if (chan) { 532 if (chan) {
533 err = dmatest_add_channel(chan); 533 err = dmatest_add_channel(chan);
534 if (err == 0) 534 if (err) {
535 continue;
536 else {
537 dma_release_channel(chan); 535 dma_release_channel(chan);
538 break; /* add_channel failed, punt */ 536 break; /* add_channel failed, punt */
539 } 537 }
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c
index da8a8ed9e411..f18d1bde0439 100644
--- a/drivers/dma/fsldma.c
+++ b/drivers/dma/fsldma.c
@@ -179,9 +179,14 @@ static void dma_halt(struct fsl_dma_chan *fsl_chan)
179static void set_ld_eol(struct fsl_dma_chan *fsl_chan, 179static void set_ld_eol(struct fsl_dma_chan *fsl_chan,
180 struct fsl_desc_sw *desc) 180 struct fsl_desc_sw *desc)
181{ 181{
182 u64 snoop_bits;
183
184 snoop_bits = ((fsl_chan->feature & FSL_DMA_IP_MASK) == FSL_DMA_IP_83XX)
185 ? FSL_DMA_SNEN : 0;
186
182 desc->hw.next_ln_addr = CPU_TO_DMA(fsl_chan, 187 desc->hw.next_ln_addr = CPU_TO_DMA(fsl_chan,
183 DMA_TO_CPU(fsl_chan, desc->hw.next_ln_addr, 64) | FSL_DMA_EOL, 188 DMA_TO_CPU(fsl_chan, desc->hw.next_ln_addr, 64) | FSL_DMA_EOL
184 64); 189 | snoop_bits, 64);
185} 190}
186 191
187static void append_ld_queue(struct fsl_dma_chan *fsl_chan, 192static void append_ld_queue(struct fsl_dma_chan *fsl_chan,
@@ -313,8 +318,8 @@ static void fsl_chan_toggle_ext_start(struct fsl_dma_chan *fsl_chan, int enable)
313 318
314static dma_cookie_t fsl_dma_tx_submit(struct dma_async_tx_descriptor *tx) 319static dma_cookie_t fsl_dma_tx_submit(struct dma_async_tx_descriptor *tx)
315{ 320{
316 struct fsl_desc_sw *desc = tx_to_fsl_desc(tx);
317 struct fsl_dma_chan *fsl_chan = to_fsl_chan(tx->chan); 321 struct fsl_dma_chan *fsl_chan = to_fsl_chan(tx->chan);
322 struct fsl_desc_sw *desc;
318 unsigned long flags; 323 unsigned long flags;
319 dma_cookie_t cookie; 324 dma_cookie_t cookie;
320 325
@@ -322,14 +327,17 @@ static dma_cookie_t fsl_dma_tx_submit(struct dma_async_tx_descriptor *tx)
322 spin_lock_irqsave(&fsl_chan->desc_lock, flags); 327 spin_lock_irqsave(&fsl_chan->desc_lock, flags);
323 328
324 cookie = fsl_chan->common.cookie; 329 cookie = fsl_chan->common.cookie;
325 cookie++; 330 list_for_each_entry(desc, &tx->tx_list, node) {
326 if (cookie < 0) 331 cookie++;
327 cookie = 1; 332 if (cookie < 0)
328 desc->async_tx.cookie = cookie; 333 cookie = 1;
329 fsl_chan->common.cookie = desc->async_tx.cookie;
330 334
331 append_ld_queue(fsl_chan, desc); 335 desc->async_tx.cookie = cookie;
332 list_splice_init(&desc->async_tx.tx_list, fsl_chan->ld_queue.prev); 336 }
337
338 fsl_chan->common.cookie = cookie;
339 append_ld_queue(fsl_chan, tx_to_fsl_desc(tx));
340 list_splice_init(&tx->tx_list, fsl_chan->ld_queue.prev);
333 341
334 spin_unlock_irqrestore(&fsl_chan->desc_lock, flags); 342 spin_unlock_irqrestore(&fsl_chan->desc_lock, flags);
335 343
@@ -454,8 +462,8 @@ static struct dma_async_tx_descriptor *fsl_dma_prep_memcpy(
454{ 462{
455 struct fsl_dma_chan *fsl_chan; 463 struct fsl_dma_chan *fsl_chan;
456 struct fsl_desc_sw *first = NULL, *prev = NULL, *new; 464 struct fsl_desc_sw *first = NULL, *prev = NULL, *new;
465 struct list_head *list;
457 size_t copy; 466 size_t copy;
458 LIST_HEAD(link_chain);
459 467
460 if (!chan) 468 if (!chan)
461 return NULL; 469 return NULL;
@@ -472,7 +480,7 @@ static struct dma_async_tx_descriptor *fsl_dma_prep_memcpy(
472 if (!new) { 480 if (!new) {
473 dev_err(fsl_chan->dev, 481 dev_err(fsl_chan->dev,
474 "No free memory for link descriptor\n"); 482 "No free memory for link descriptor\n");
475 return NULL; 483 goto fail;
476 } 484 }
477#ifdef FSL_DMA_LD_DEBUG 485#ifdef FSL_DMA_LD_DEBUG
478 dev_dbg(fsl_chan->dev, "new link desc alloc %p\n", new); 486 dev_dbg(fsl_chan->dev, "new link desc alloc %p\n", new);
@@ -507,7 +515,19 @@ static struct dma_async_tx_descriptor *fsl_dma_prep_memcpy(
507 /* Set End-of-link to the last link descriptor of new list*/ 515 /* Set End-of-link to the last link descriptor of new list*/
508 set_ld_eol(fsl_chan, new); 516 set_ld_eol(fsl_chan, new);
509 517
510 return first ? &first->async_tx : NULL; 518 return &first->async_tx;
519
520fail:
521 if (!first)
522 return NULL;
523
524 list = &first->async_tx.tx_list;
525 list_for_each_entry_safe_reverse(new, prev, list, node) {
526 list_del(&new->node);
527 dma_pool_free(fsl_chan->desc_pool, new, new->async_tx.phys);
528 }
529
530 return NULL;
511} 531}
512 532
513/** 533/**
@@ -598,15 +618,16 @@ static void fsl_chan_xfer_ld_queue(struct fsl_dma_chan *fsl_chan)
598 dma_addr_t next_dest_addr; 618 dma_addr_t next_dest_addr;
599 unsigned long flags; 619 unsigned long flags;
600 620
621 spin_lock_irqsave(&fsl_chan->desc_lock, flags);
622
601 if (!dma_is_idle(fsl_chan)) 623 if (!dma_is_idle(fsl_chan))
602 return; 624 goto out_unlock;
603 625
604 dma_halt(fsl_chan); 626 dma_halt(fsl_chan);
605 627
606 /* If there are some link descriptors 628 /* If there are some link descriptors
607 * not transfered in queue. We need to start it. 629 * not transfered in queue. We need to start it.
608 */ 630 */
609 spin_lock_irqsave(&fsl_chan->desc_lock, flags);
610 631
611 /* Find the first un-transfer desciptor */ 632 /* Find the first un-transfer desciptor */
612 for (ld_node = fsl_chan->ld_queue.next; 633 for (ld_node = fsl_chan->ld_queue.next;
@@ -617,19 +638,20 @@ static void fsl_chan_xfer_ld_queue(struct fsl_dma_chan *fsl_chan)
617 fsl_chan->common.cookie) == DMA_SUCCESS); 638 fsl_chan->common.cookie) == DMA_SUCCESS);
618 ld_node = ld_node->next); 639 ld_node = ld_node->next);
619 640
620 spin_unlock_irqrestore(&fsl_chan->desc_lock, flags);
621
622 if (ld_node != &fsl_chan->ld_queue) { 641 if (ld_node != &fsl_chan->ld_queue) {
623 /* Get the ld start address from ld_queue */ 642 /* Get the ld start address from ld_queue */
624 next_dest_addr = to_fsl_desc(ld_node)->async_tx.phys; 643 next_dest_addr = to_fsl_desc(ld_node)->async_tx.phys;
625 dev_dbg(fsl_chan->dev, "xfer LDs staring from %p\n", 644 dev_dbg(fsl_chan->dev, "xfer LDs staring from 0x%llx\n",
626 (void *)next_dest_addr); 645 (unsigned long long)next_dest_addr);
627 set_cdar(fsl_chan, next_dest_addr); 646 set_cdar(fsl_chan, next_dest_addr);
628 dma_start(fsl_chan); 647 dma_start(fsl_chan);
629 } else { 648 } else {
630 set_cdar(fsl_chan, 0); 649 set_cdar(fsl_chan, 0);
631 set_ndar(fsl_chan, 0); 650 set_ndar(fsl_chan, 0);
632 } 651 }
652
653out_unlock:
654 spin_unlock_irqrestore(&fsl_chan->desc_lock, flags);
633} 655}
634 656
635/** 657/**
@@ -734,8 +756,9 @@ static irqreturn_t fsl_dma_chan_do_interrupt(int irq, void *data)
734 */ 756 */
735 if (stat & FSL_DMA_SR_EOSI) { 757 if (stat & FSL_DMA_SR_EOSI) {
736 dev_dbg(fsl_chan->dev, "event: End-of-segments INT\n"); 758 dev_dbg(fsl_chan->dev, "event: End-of-segments INT\n");
737 dev_dbg(fsl_chan->dev, "event: clndar %p, nlndar %p\n", 759 dev_dbg(fsl_chan->dev, "event: clndar 0x%llx, nlndar 0x%llx\n",
738 (void *)get_cdar(fsl_chan), (void *)get_ndar(fsl_chan)); 760 (unsigned long long)get_cdar(fsl_chan),
761 (unsigned long long)get_ndar(fsl_chan));
739 stat &= ~FSL_DMA_SR_EOSI; 762 stat &= ~FSL_DMA_SR_EOSI;
740 update_cookie = 1; 763 update_cookie = 1;
741 } 764 }
@@ -830,7 +853,7 @@ static int __devinit fsl_dma_chan_probe(struct fsl_dma_device *fdev,
830 new_fsl_chan->reg.end - new_fsl_chan->reg.start + 1); 853 new_fsl_chan->reg.end - new_fsl_chan->reg.start + 1);
831 854
832 new_fsl_chan->id = ((new_fsl_chan->reg.start - 0x100) & 0xfff) >> 7; 855 new_fsl_chan->id = ((new_fsl_chan->reg.start - 0x100) & 0xfff) >> 7;
833 if (new_fsl_chan->id > FSL_DMA_MAX_CHANS_PER_DEVICE) { 856 if (new_fsl_chan->id >= FSL_DMA_MAX_CHANS_PER_DEVICE) {
834 dev_err(fdev->dev, "There is no %d channel!\n", 857 dev_err(fdev->dev, "There is no %d channel!\n",
835 new_fsl_chan->id); 858 new_fsl_chan->id);
836 err = -EINVAL; 859 err = -EINVAL;
@@ -925,8 +948,8 @@ static int __devinit of_fsl_dma_probe(struct of_device *dev,
925 } 948 }
926 949
927 dev_info(&dev->dev, "Probe the Freescale DMA driver for %s " 950 dev_info(&dev->dev, "Probe the Freescale DMA driver for %s "
928 "controller at %p...\n", 951 "controller at 0x%llx...\n",
929 match->compatible, (void *)fdev->reg.start); 952 match->compatible, (unsigned long long)fdev->reg.start);
930 fdev->reg_base = ioremap(fdev->reg.start, fdev->reg.end 953 fdev->reg_base = ioremap(fdev->reg.start, fdev->reg.end
931 - fdev->reg.start + 1); 954 - fdev->reg.start + 1);
932 955
diff --git a/drivers/dma/ioat_dma.c b/drivers/dma/ioat_dma.c
index e4fc33c1c32f..a600fc0f7962 100644
--- a/drivers/dma/ioat_dma.c
+++ b/drivers/dma/ioat_dma.c
@@ -173,7 +173,7 @@ static int ioat_dma_enumerate_channels(struct ioatdma_device *device)
173 xfercap = (xfercap_scale == 0 ? -1 : (1UL << xfercap_scale)); 173 xfercap = (xfercap_scale == 0 ? -1 : (1UL << xfercap_scale));
174 174
175#ifdef CONFIG_I7300_IDLE_IOAT_CHANNEL 175#ifdef CONFIG_I7300_IDLE_IOAT_CHANNEL
176 if (i7300_idle_platform_probe(NULL, NULL) == 0) { 176 if (i7300_idle_platform_probe(NULL, NULL, 1) == 0) {
177 device->common.chancnt--; 177 device->common.chancnt--;
178 } 178 }
179#endif 179#endif
@@ -1063,22 +1063,31 @@ static void ioat_dma_cleanup_tasklet(unsigned long data)
1063static void 1063static void
1064ioat_dma_unmap(struct ioat_dma_chan *ioat_chan, struct ioat_desc_sw *desc) 1064ioat_dma_unmap(struct ioat_dma_chan *ioat_chan, struct ioat_desc_sw *desc)
1065{ 1065{
1066 /* 1066 if (!(desc->async_tx.flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
1067 * yes we are unmapping both _page and _single 1067 if (desc->async_tx.flags & DMA_COMPL_DEST_UNMAP_SINGLE)
1068 * alloc'd regions with unmap_page. Is this 1068 pci_unmap_single(ioat_chan->device->pdev,
1069 * *really* that bad? 1069 pci_unmap_addr(desc, dst),
1070 */ 1070 pci_unmap_len(desc, len),
1071 if (!(desc->async_tx.flags & DMA_COMPL_SKIP_DEST_UNMAP)) 1071 PCI_DMA_FROMDEVICE);
1072 pci_unmap_page(ioat_chan->device->pdev, 1072 else
1073 pci_unmap_addr(desc, dst), 1073 pci_unmap_page(ioat_chan->device->pdev,
1074 pci_unmap_len(desc, len), 1074 pci_unmap_addr(desc, dst),
1075 PCI_DMA_FROMDEVICE); 1075 pci_unmap_len(desc, len),
1076 1076 PCI_DMA_FROMDEVICE);
1077 if (!(desc->async_tx.flags & DMA_COMPL_SKIP_SRC_UNMAP)) 1077 }
1078 pci_unmap_page(ioat_chan->device->pdev, 1078
1079 pci_unmap_addr(desc, src), 1079 if (!(desc->async_tx.flags & DMA_COMPL_SKIP_SRC_UNMAP)) {
1080 pci_unmap_len(desc, len), 1080 if (desc->async_tx.flags & DMA_COMPL_SRC_UNMAP_SINGLE)
1081 PCI_DMA_TODEVICE); 1081 pci_unmap_single(ioat_chan->device->pdev,
1082 pci_unmap_addr(desc, src),
1083 pci_unmap_len(desc, len),
1084 PCI_DMA_TODEVICE);
1085 else
1086 pci_unmap_page(ioat_chan->device->pdev,
1087 pci_unmap_addr(desc, src),
1088 pci_unmap_len(desc, len),
1089 PCI_DMA_TODEVICE);
1090 }
1082} 1091}
1083 1092
1084/** 1093/**
@@ -1363,6 +1372,7 @@ static int ioat_dma_self_test(struct ioatdma_device *device)
1363 int err = 0; 1372 int err = 0;
1364 struct completion cmp; 1373 struct completion cmp;
1365 unsigned long tmo; 1374 unsigned long tmo;
1375 unsigned long flags;
1366 1376
1367 src = kzalloc(sizeof(u8) * IOAT_TEST_SIZE, GFP_KERNEL); 1377 src = kzalloc(sizeof(u8) * IOAT_TEST_SIZE, GFP_KERNEL);
1368 if (!src) 1378 if (!src)
@@ -1392,8 +1402,9 @@ static int ioat_dma_self_test(struct ioatdma_device *device)
1392 DMA_TO_DEVICE); 1402 DMA_TO_DEVICE);
1393 dma_dest = dma_map_single(dma_chan->device->dev, dest, IOAT_TEST_SIZE, 1403 dma_dest = dma_map_single(dma_chan->device->dev, dest, IOAT_TEST_SIZE,
1394 DMA_FROM_DEVICE); 1404 DMA_FROM_DEVICE);
1405 flags = DMA_COMPL_SRC_UNMAP_SINGLE | DMA_COMPL_DEST_UNMAP_SINGLE;
1395 tx = device->common.device_prep_dma_memcpy(dma_chan, dma_dest, dma_src, 1406 tx = device->common.device_prep_dma_memcpy(dma_chan, dma_dest, dma_src,
1396 IOAT_TEST_SIZE, 0); 1407 IOAT_TEST_SIZE, flags);
1397 if (!tx) { 1408 if (!tx) {
1398 dev_err(&device->pdev->dev, 1409 dev_err(&device->pdev->dev,
1399 "Self-test prep failed, disabling\n"); 1410 "Self-test prep failed, disabling\n");
diff --git a/drivers/dma/ipu/ipu_idmac.c b/drivers/dma/ipu/ipu_idmac.c
index e202a6ce5573..9a5bc1a7389e 100644
--- a/drivers/dma/ipu/ipu_idmac.c
+++ b/drivers/dma/ipu/ipu_idmac.c
@@ -1272,7 +1272,8 @@ static irqreturn_t idmac_interrupt(int irq, void *dev_id)
1272 /* Other interrupts do not interfere with this channel */ 1272 /* Other interrupts do not interfere with this channel */
1273 spin_lock(&ichan->lock); 1273 spin_lock(&ichan->lock);
1274 if (unlikely(chan_id != IDMAC_SDC_0 && chan_id != IDMAC_SDC_1 && 1274 if (unlikely(chan_id != IDMAC_SDC_0 && chan_id != IDMAC_SDC_1 &&
1275 ((curbuf >> chan_id) & 1) == ichan->active_buffer)) { 1275 ((curbuf >> chan_id) & 1) == ichan->active_buffer &&
1276 !list_is_last(ichan->queue.next, &ichan->queue))) {
1276 int i = 100; 1277 int i = 100;
1277 1278
1278 /* This doesn't help. See comment in ipu_disable_channel() */ 1279 /* This doesn't help. See comment in ipu_disable_channel() */
@@ -1547,7 +1548,7 @@ static irqreturn_t ic_sof_irq(int irq, void *dev_id)
1547 struct idmac_channel *ichan = dev_id; 1548 struct idmac_channel *ichan = dev_id;
1548 printk(KERN_DEBUG "Got SOF IRQ %d on Channel %d\n", 1549 printk(KERN_DEBUG "Got SOF IRQ %d on Channel %d\n",
1549 irq, ichan->dma_chan.chan_id); 1550 irq, ichan->dma_chan.chan_id);
1550 disable_irq(irq); 1551 disable_irq_nosync(irq);
1551 return IRQ_HANDLED; 1552 return IRQ_HANDLED;
1552} 1553}
1553 1554
@@ -1556,7 +1557,7 @@ static irqreturn_t ic_eof_irq(int irq, void *dev_id)
1556 struct idmac_channel *ichan = dev_id; 1557 struct idmac_channel *ichan = dev_id;
1557 printk(KERN_DEBUG "Got EOF IRQ %d on Channel %d\n", 1558 printk(KERN_DEBUG "Got EOF IRQ %d on Channel %d\n",
1558 irq, ichan->dma_chan.chan_id); 1559 irq, ichan->dma_chan.chan_id);
1559 disable_irq(irq); 1560 disable_irq_nosync(irq);
1560 return IRQ_HANDLED; 1561 return IRQ_HANDLED;
1561} 1562}
1562 1563
diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig
index e5f5c5a8ba6c..956982f8739b 100644
--- a/drivers/edac/Kconfig
+++ b/drivers/edac/Kconfig
@@ -192,16 +192,20 @@ config EDAC_PPC4XX
192 192
193config EDAC_AMD8131 193config EDAC_AMD8131
194 tristate "AMD8131 HyperTransport PCI-X Tunnel" 194 tristate "AMD8131 HyperTransport PCI-X Tunnel"
195 depends on EDAC_MM_EDAC && PCI 195 depends on EDAC_MM_EDAC && PCI && PPC_MAPLE
196 help 196 help
197 Support for error detection and correction on the 197 Support for error detection and correction on the
198 AMD8131 HyperTransport PCI-X Tunnel chip. 198 AMD8131 HyperTransport PCI-X Tunnel chip.
199 Note, add more Kconfig dependency if it's adopted
200 on some machine other than Maple.
199 201
200config EDAC_AMD8111 202config EDAC_AMD8111
201 tristate "AMD8111 HyperTransport I/O Hub" 203 tristate "AMD8111 HyperTransport I/O Hub"
202 depends on EDAC_MM_EDAC && PCI 204 depends on EDAC_MM_EDAC && PCI && PPC_MAPLE
203 help 205 help
204 Support for error detection and correction on the 206 Support for error detection and correction on the
205 AMD8111 HyperTransport I/O Hub chip. 207 AMD8111 HyperTransport I/O Hub chip.
208 Note, add more Kconfig dependency if it's adopted
209 on some machine other than Maple.
206 210
207endif # EDAC 211endif # EDAC
diff --git a/drivers/edac/Makefile b/drivers/edac/Makefile
index a5fdcf02f591..59076819135d 100644
--- a/drivers/edac/Makefile
+++ b/drivers/edac/Makefile
@@ -35,3 +35,5 @@ obj-$(CONFIG_EDAC_MPC85XX) += mpc85xx_edac.o
35obj-$(CONFIG_EDAC_MV64X60) += mv64x60_edac.o 35obj-$(CONFIG_EDAC_MV64X60) += mv64x60_edac.o
36obj-$(CONFIG_EDAC_CELL) += cell_edac.o 36obj-$(CONFIG_EDAC_CELL) += cell_edac.o
37obj-$(CONFIG_EDAC_PPC4XX) += ppc4xx_edac.o 37obj-$(CONFIG_EDAC_PPC4XX) += ppc4xx_edac.o
38obj-$(CONFIG_EDAC_AMD8111) += amd8111_edac.o
39obj-$(CONFIG_EDAC_AMD8131) += amd8131_edac.o
diff --git a/drivers/edac/amd8111_edac.c b/drivers/edac/amd8111_edac.c
index 614692181120..2cb58ef743e0 100644
--- a/drivers/edac/amd8111_edac.c
+++ b/drivers/edac/amd8111_edac.c
@@ -389,7 +389,7 @@ static int amd8111_dev_probe(struct pci_dev *dev,
389 dev_info->edac_dev->dev = &dev_info->dev->dev; 389 dev_info->edac_dev->dev = &dev_info->dev->dev;
390 dev_info->edac_dev->mod_name = AMD8111_EDAC_MOD_STR; 390 dev_info->edac_dev->mod_name = AMD8111_EDAC_MOD_STR;
391 dev_info->edac_dev->ctl_name = dev_info->ctl_name; 391 dev_info->edac_dev->ctl_name = dev_info->ctl_name;
392 dev_info->edac_dev->dev_name = dev_info->dev->dev.bus_id; 392 dev_info->edac_dev->dev_name = dev_name(&dev_info->dev->dev);
393 393
394 if (edac_op_state == EDAC_OPSTATE_POLL) 394 if (edac_op_state == EDAC_OPSTATE_POLL)
395 dev_info->edac_dev->edac_check = dev_info->check; 395 dev_info->edac_dev->edac_check = dev_info->check;
@@ -473,7 +473,7 @@ static int amd8111_pci_probe(struct pci_dev *dev,
473 pci_info->edac_dev->dev = &pci_info->dev->dev; 473 pci_info->edac_dev->dev = &pci_info->dev->dev;
474 pci_info->edac_dev->mod_name = AMD8111_EDAC_MOD_STR; 474 pci_info->edac_dev->mod_name = AMD8111_EDAC_MOD_STR;
475 pci_info->edac_dev->ctl_name = pci_info->ctl_name; 475 pci_info->edac_dev->ctl_name = pci_info->ctl_name;
476 pci_info->edac_dev->dev_name = pci_info->dev->dev.bus_id; 476 pci_info->edac_dev->dev_name = dev_name(&pci_info->dev->dev);
477 477
478 if (edac_op_state == EDAC_OPSTATE_POLL) 478 if (edac_op_state == EDAC_OPSTATE_POLL)
479 pci_info->edac_dev->edac_check = pci_info->check; 479 pci_info->edac_dev->edac_check = pci_info->check;
diff --git a/drivers/edac/amd8131_edac.c b/drivers/edac/amd8131_edac.c
index c083b31cac5a..b432d60c622a 100644
--- a/drivers/edac/amd8131_edac.c
+++ b/drivers/edac/amd8131_edac.c
@@ -287,7 +287,7 @@ static int amd8131_probe(struct pci_dev *dev, const struct pci_device_id *id)
287 dev_info->edac_dev->dev = &dev_info->dev->dev; 287 dev_info->edac_dev->dev = &dev_info->dev->dev;
288 dev_info->edac_dev->mod_name = AMD8131_EDAC_MOD_STR; 288 dev_info->edac_dev->mod_name = AMD8131_EDAC_MOD_STR;
289 dev_info->edac_dev->ctl_name = dev_info->ctl_name; 289 dev_info->edac_dev->ctl_name = dev_info->ctl_name;
290 dev_info->edac_dev->dev_name = dev_info->dev->dev.bus_id; 290 dev_info->edac_dev->dev_name = dev_name(&dev_info->dev->dev);
291 291
292 if (edac_op_state == EDAC_OPSTATE_POLL) 292 if (edac_op_state == EDAC_OPSTATE_POLL)
293 dev_info->edac_dev->edac_check = amd8131_chipset.check; 293 dev_info->edac_dev->edac_check = amd8131_chipset.check;
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
index 3a22eb9be378..f5d46e7199d4 100644
--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
@@ -67,11 +67,18 @@ config DRM_I830
67 will load the correct one. 67 will load the correct one.
68 68
69config DRM_I915 69config DRM_I915
70 tristate "i915 driver"
70 select FB_CFB_FILLRECT 71 select FB_CFB_FILLRECT
71 select FB_CFB_COPYAREA 72 select FB_CFB_COPYAREA
72 select FB_CFB_IMAGEBLIT 73 select FB_CFB_IMAGEBLIT
73 select FB 74 select FB
74 tristate "i915 driver" 75 select FRAMEBUFFER_CONSOLE if !EMBEDDED
76 # i915 depends on ACPI_VIDEO when ACPI is enabled
77 # but for select to work, need to select ACPI_VIDEO's dependencies, ick
78 select VIDEO_OUTPUT_CONTROL if ACPI
79 select BACKLIGHT_CLASS_DEVICE if ACPI
80 select INPUT if ACPI
81 select ACPI_VIDEO if ACPI
75 help 82 help
76 Choose this option if you have a system that has Intel 830M, 845G, 83 Choose this option if you have a system that has Intel 830M, 845G,
77 852GM, 855GM 865G or 915G integrated graphics. If M is selected, the 84 852GM, 855GM 865G or 915G integrated graphics. If M is selected, the
diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
index 6d80d17f1e96..0411d912d82a 100644
--- a/drivers/gpu/drm/drm_bufs.c
+++ b/drivers/gpu/drm/drm_bufs.c
@@ -170,6 +170,14 @@ static int drm_addmap_core(struct drm_device * dev, resource_size_t offset,
170 } 170 }
171 DRM_DEBUG("offset = 0x%08llx, size = 0x%08lx, type = %d\n", 171 DRM_DEBUG("offset = 0x%08llx, size = 0x%08lx, type = %d\n",
172 (unsigned long long)map->offset, map->size, map->type); 172 (unsigned long long)map->offset, map->size, map->type);
173
174 /* page-align _DRM_SHM maps. They are allocated here so there is no security
175 * hole created by that and it works around various broken drivers that use
176 * a non-aligned quantity to map the SAREA. --BenH
177 */
178 if (map->type == _DRM_SHM)
179 map->size = PAGE_ALIGN(map->size);
180
173 if ((map->offset & (~(resource_size_t)PAGE_MASK)) || (map->size & (~PAGE_MASK))) { 181 if ((map->offset & (~(resource_size_t)PAGE_MASK)) || (map->size & (~PAGE_MASK))) {
174 drm_free(map, sizeof(*map), DRM_MEM_MAPS); 182 drm_free(map, sizeof(*map), DRM_MEM_MAPS);
175 return -EINVAL; 183 return -EINVAL;
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 94a768871734..8fab7890a363 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -2294,7 +2294,12 @@ int drm_mode_connector_property_set_ioctl(struct drm_device *dev,
2294 } 2294 }
2295 } 2295 }
2296 2296
2297 if (connector->funcs->set_property) 2297 /* Do DPMS ourselves */
2298 if (property == connector->dev->mode_config.dpms_property) {
2299 if (connector->funcs->dpms)
2300 (*connector->funcs->dpms)(connector, (int) out_resp->value);
2301 ret = 0;
2302 } else if (connector->funcs->set_property)
2298 ret = connector->funcs->set_property(connector, property, out_resp->value); 2303 ret = connector->funcs->set_property(connector, property, out_resp->value);
2299 2304
2300 /* store the property value if succesful */ 2305 /* store the property value if succesful */
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 45890447feec..a6f73f1e99d9 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -199,6 +199,29 @@ static void drm_helper_add_std_modes(struct drm_device *dev,
199} 199}
200 200
201/** 201/**
202 * drm_helper_encoder_in_use - check if a given encoder is in use
203 * @encoder: encoder to check
204 *
205 * LOCKING:
206 * Caller must hold mode config lock.
207 *
208 * Walk @encoders's DRM device's mode_config and see if it's in use.
209 *
210 * RETURNS:
211 * True if @encoder is part of the mode_config, false otherwise.
212 */
213bool drm_helper_encoder_in_use(struct drm_encoder *encoder)
214{
215 struct drm_connector *connector;
216 struct drm_device *dev = encoder->dev;
217 list_for_each_entry(connector, &dev->mode_config.connector_list, head)
218 if (connector->encoder == encoder)
219 return true;
220 return false;
221}
222EXPORT_SYMBOL(drm_helper_encoder_in_use);
223
224/**
202 * drm_helper_crtc_in_use - check if a given CRTC is in a mode_config 225 * drm_helper_crtc_in_use - check if a given CRTC is in a mode_config
203 * @crtc: CRTC to check 226 * @crtc: CRTC to check
204 * 227 *
@@ -216,7 +239,7 @@ bool drm_helper_crtc_in_use(struct drm_crtc *crtc)
216 struct drm_device *dev = crtc->dev; 239 struct drm_device *dev = crtc->dev;
217 /* FIXME: Locking around list access? */ 240 /* FIXME: Locking around list access? */
218 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) 241 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head)
219 if (encoder->crtc == crtc) 242 if (encoder->crtc == crtc && drm_helper_encoder_in_use(encoder))
220 return true; 243 return true;
221 return false; 244 return false;
222} 245}
@@ -240,7 +263,7 @@ void drm_helper_disable_unused_functions(struct drm_device *dev)
240 263
241 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { 264 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
242 encoder_funcs = encoder->helper_private; 265 encoder_funcs = encoder->helper_private;
243 if (!encoder->crtc) 266 if (!drm_helper_encoder_in_use(encoder))
244 (*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF); 267 (*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF);
245 } 268 }
246 269
@@ -935,6 +958,88 @@ bool drm_helper_initial_config(struct drm_device *dev)
935} 958}
936EXPORT_SYMBOL(drm_helper_initial_config); 959EXPORT_SYMBOL(drm_helper_initial_config);
937 960
961static int drm_helper_choose_encoder_dpms(struct drm_encoder *encoder)
962{
963 int dpms = DRM_MODE_DPMS_OFF;
964 struct drm_connector *connector;
965 struct drm_device *dev = encoder->dev;
966
967 list_for_each_entry(connector, &dev->mode_config.connector_list, head)
968 if (connector->encoder == encoder)
969 if (connector->dpms < dpms)
970 dpms = connector->dpms;
971 return dpms;
972}
973
974static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc)
975{
976 int dpms = DRM_MODE_DPMS_OFF;
977 struct drm_connector *connector;
978 struct drm_device *dev = crtc->dev;
979
980 list_for_each_entry(connector, &dev->mode_config.connector_list, head)
981 if (connector->encoder && connector->encoder->crtc == crtc)
982 if (connector->dpms < dpms)
983 dpms = connector->dpms;
984 return dpms;
985}
986
987/**
988 * drm_helper_connector_dpms
989 * @connector affected connector
990 * @mode DPMS mode
991 *
992 * Calls the low-level connector DPMS function, then
993 * calls appropriate encoder and crtc DPMS functions as well
994 */
995void drm_helper_connector_dpms(struct drm_connector *connector, int mode)
996{
997 struct drm_encoder *encoder = connector->encoder;
998 struct drm_crtc *crtc = encoder ? encoder->crtc : NULL;
999 int old_dpms;
1000
1001 if (mode == connector->dpms)
1002 return;
1003
1004 old_dpms = connector->dpms;
1005 connector->dpms = mode;
1006
1007 /* from off to on, do crtc then encoder */
1008 if (mode < old_dpms) {
1009 if (crtc) {
1010 struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
1011 if (crtc_funcs->dpms)
1012 (*crtc_funcs->dpms) (crtc,
1013 drm_helper_choose_crtc_dpms(crtc));
1014 }
1015 if (encoder) {
1016 struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private;
1017 if (encoder_funcs->dpms)
1018 (*encoder_funcs->dpms) (encoder,
1019 drm_helper_choose_encoder_dpms(encoder));
1020 }
1021 }
1022
1023 /* from on to off, do encoder then crtc */
1024 if (mode > old_dpms) {
1025 if (encoder) {
1026 struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private;
1027 if (encoder_funcs->dpms)
1028 (*encoder_funcs->dpms) (encoder,
1029 drm_helper_choose_encoder_dpms(encoder));
1030 }
1031 if (crtc) {
1032 struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
1033 if (crtc_funcs->dpms)
1034 (*crtc_funcs->dpms) (crtc,
1035 drm_helper_choose_crtc_dpms(crtc));
1036 }
1037 }
1038
1039 return;
1040}
1041EXPORT_SYMBOL(drm_helper_connector_dpms);
1042
938/** 1043/**
939 * drm_hotplug_stage_two 1044 * drm_hotplug_stage_two
940 * @dev DRM device 1045 * @dev DRM device
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index f01def16a669..019b7c578236 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -481,7 +481,7 @@ int drm_ioctl(struct inode *inode, struct file *filp,
481 } 481 }
482 retcode = func(dev, kdata, file_priv); 482 retcode = func(dev, kdata, file_priv);
483 483
484 if ((retcode == 0) && (cmd & IOC_OUT)) { 484 if (cmd & IOC_OUT) {
485 if (copy_to_user((void __user *)arg, kdata, 485 if (copy_to_user((void __user *)arg, kdata,
486 _IOC_SIZE(cmd)) != 0) 486 _IOC_SIZE(cmd)) != 0)
487 retcode = -EFAULT; 487 retcode = -EFAULT;
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index ca9c61656714..6f6b26479d82 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -289,6 +289,11 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_device *dev,
289 struct drm_display_mode *mode; 289 struct drm_display_mode *mode;
290 struct detailed_pixel_timing *pt = &timing->data.pixel_data; 290 struct detailed_pixel_timing *pt = &timing->data.pixel_data;
291 291
292 /* ignore tiny modes */
293 if (((pt->hactive_hi << 8) | pt->hactive_lo) < 64 ||
294 ((pt->vactive_hi << 8) | pt->hactive_lo) < 64)
295 return NULL;
296
292 if (pt->stereo) { 297 if (pt->stereo) {
293 printk(KERN_WARNING "stereo mode not supported\n"); 298 printk(KERN_WARNING "stereo mode not supported\n");
294 return NULL; 299 return NULL;
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 93e677a481f5..fc8e5acd9d9a 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -196,6 +196,7 @@ int drm_irq_install(struct drm_device *dev)
196{ 196{
197 int ret = 0; 197 int ret = 0;
198 unsigned long sh_flags = 0; 198 unsigned long sh_flags = 0;
199 char *irqname;
199 200
200 if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) 201 if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
201 return -EINVAL; 202 return -EINVAL;
@@ -227,8 +228,13 @@ int drm_irq_install(struct drm_device *dev)
227 if (drm_core_check_feature(dev, DRIVER_IRQ_SHARED)) 228 if (drm_core_check_feature(dev, DRIVER_IRQ_SHARED))
228 sh_flags = IRQF_SHARED; 229 sh_flags = IRQF_SHARED;
229 230
231 if (dev->devname)
232 irqname = dev->devname;
233 else
234 irqname = dev->driver->name;
235
230 ret = request_irq(drm_dev_to_irq(dev), dev->driver->irq_handler, 236 ret = request_irq(drm_dev_to_irq(dev), dev->driver->irq_handler,
231 sh_flags, dev->devname, dev); 237 sh_flags, irqname, dev);
232 238
233 if (ret < 0) { 239 if (ret < 0) {
234 mutex_lock(&dev->struct_mutex); 240 mutex_lock(&dev->struct_mutex);
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index 8f9372921f82..9987ab880835 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -147,7 +147,7 @@ static ssize_t status_show(struct device *device,
147 enum drm_connector_status status; 147 enum drm_connector_status status;
148 148
149 status = connector->funcs->detect(connector); 149 status = connector->funcs->detect(connector);
150 return snprintf(buf, PAGE_SIZE, "%s", 150 return snprintf(buf, PAGE_SIZE, "%s\n",
151 drm_get_connector_status_name(status)); 151 drm_get_connector_status_name(status));
152} 152}
153 153
@@ -166,7 +166,7 @@ static ssize_t dpms_show(struct device *device,
166 if (ret) 166 if (ret)
167 return 0; 167 return 0;
168 168
169 return snprintf(buf, PAGE_SIZE, "%s", 169 return snprintf(buf, PAGE_SIZE, "%s\n",
170 drm_get_dpms_name((int)dpms_status)); 170 drm_get_dpms_name((int)dpms_status));
171} 171}
172 172
@@ -176,7 +176,7 @@ static ssize_t enabled_show(struct device *device,
176{ 176{
177 struct drm_connector *connector = to_drm_connector(device); 177 struct drm_connector *connector = to_drm_connector(device);
178 178
179 return snprintf(buf, PAGE_SIZE, connector->encoder ? "enabled" : 179 return snprintf(buf, PAGE_SIZE, "%s\n", connector->encoder ? "enabled" :
180 "disabled"); 180 "disabled");
181} 181}
182 182
@@ -317,6 +317,7 @@ static struct device_attribute connector_attrs_opt1[] = {
317 317
318static struct bin_attribute edid_attr = { 318static struct bin_attribute edid_attr = {
319 .attr.name = "edid", 319 .attr.name = "edid",
320 .attr.mode = 0444,
320 .size = 128, 321 .size = 128,
321 .read = edid_show, 322 .read = edid_show,
322}; 323};
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 051134c56aef..0ccb63ee50ee 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -987,12 +987,6 @@ static int i915_load_modeset_init(struct drm_device *dev)
987 int fb_bar = IS_I9XX(dev) ? 2 : 0; 987 int fb_bar = IS_I9XX(dev) ? 2 : 0;
988 int ret = 0; 988 int ret = 0;
989 989
990 dev->devname = kstrdup(DRIVER_NAME, GFP_KERNEL);
991 if (!dev->devname) {
992 ret = -ENOMEM;
993 goto out;
994 }
995
996 dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) & 990 dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) &
997 0xff000000; 991 0xff000000;
998 992
@@ -1006,17 +1000,25 @@ static int i915_load_modeset_init(struct drm_device *dev)
1006 1000
1007 ret = i915_probe_agp(dev, &agp_size, &prealloc_size); 1001 ret = i915_probe_agp(dev, &agp_size, &prealloc_size);
1008 if (ret) 1002 if (ret)
1009 goto kfree_devname; 1003 goto out;
1010 1004
1011 /* Basic memrange allocator for stolen space (aka vram) */ 1005 /* Basic memrange allocator for stolen space (aka vram) */
1012 drm_mm_init(&dev_priv->vram, 0, prealloc_size); 1006 drm_mm_init(&dev_priv->vram, 0, prealloc_size);
1013 1007
1014 /* Let GEM Manage from end of prealloc space to end of aperture */ 1008 /* Let GEM Manage from end of prealloc space to end of aperture.
1015 i915_gem_do_init(dev, prealloc_size, agp_size); 1009 *
1010 * However, leave one page at the end still bound to the scratch page.
1011 * There are a number of places where the hardware apparently
1012 * prefetches past the end of the object, and we've seen multiple
1013 * hangs with the GPU head pointer stuck in a batchbuffer bound
1014 * at the last page of the aperture. One page should be enough to
1015 * keep any prefetching inside of the aperture.
1016 */
1017 i915_gem_do_init(dev, prealloc_size, agp_size - 4096);
1016 1018
1017 ret = i915_gem_init_ringbuffer(dev); 1019 ret = i915_gem_init_ringbuffer(dev);
1018 if (ret) 1020 if (ret)
1019 goto kfree_devname; 1021 goto out;
1020 1022
1021 /* Allow hardware batchbuffers unless told otherwise. 1023 /* Allow hardware batchbuffers unless told otherwise.
1022 */ 1024 */
@@ -1048,8 +1050,6 @@ static int i915_load_modeset_init(struct drm_device *dev)
1048 1050
1049destroy_ringbuffer: 1051destroy_ringbuffer:
1050 i915_gem_cleanup_ringbuffer(dev); 1052 i915_gem_cleanup_ringbuffer(dev);
1051kfree_devname:
1052 kfree(dev->devname);
1053out: 1053out:
1054 return ret; 1054 return ret;
1055} 1055}
@@ -1350,6 +1350,7 @@ struct drm_ioctl_desc i915_ioctls[] = {
1350 DRM_IOCTL_DEF(DRM_I915_GEM_SET_TILING, i915_gem_set_tiling, 0), 1350 DRM_IOCTL_DEF(DRM_I915_GEM_SET_TILING, i915_gem_set_tiling, 0),
1351 DRM_IOCTL_DEF(DRM_I915_GEM_GET_TILING, i915_gem_get_tiling, 0), 1351 DRM_IOCTL_DEF(DRM_I915_GEM_GET_TILING, i915_gem_get_tiling, 0),
1352 DRM_IOCTL_DEF(DRM_I915_GEM_GET_APERTURE, i915_gem_get_aperture_ioctl, 0), 1352 DRM_IOCTL_DEF(DRM_I915_GEM_GET_APERTURE, i915_gem_get_aperture_ioctl, 0),
1353 DRM_IOCTL_DEF(DRM_I915_GET_PIPE_FROM_CRTC_ID, intel_get_pipe_from_crtc_id, 0),
1353}; 1354};
1354 1355
1355int i915_max_ioctl = DRM_ARRAY_SIZE(i915_ioctls); 1356int 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 25065923b8a8..c431fa54bbb5 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -180,7 +180,8 @@ typedef struct drm_i915_private {
180 int backlight_duty_cycle; /* restore backlight to this value */ 180 int backlight_duty_cycle; /* restore backlight to this value */
181 bool panel_wants_dither; 181 bool panel_wants_dither;
182 struct drm_display_mode *panel_fixed_mode; 182 struct drm_display_mode *panel_fixed_mode;
183 struct drm_display_mode *vbt_mode; /* if any */ 183 struct drm_display_mode *lfp_lvds_vbt_mode; /* if any */
184 struct drm_display_mode *sdvo_lvds_vbt_mode; /* if any */
184 185
185 /* Feature bits from the VBIOS */ 186 /* Feature bits from the VBIOS */
186 unsigned int int_tv_support:1; 187 unsigned int int_tv_support:1;
@@ -283,6 +284,7 @@ typedef struct drm_i915_private {
283 u8 saveAR[21]; 284 u8 saveAR[21];
284 u8 saveDACMASK; 285 u8 saveDACMASK;
285 u8 saveCR[37]; 286 u8 saveCR[37];
287 uint64_t saveFENCE[16];
286 288
287 struct { 289 struct {
288 struct drm_mm gtt_space; 290 struct drm_mm gtt_space;
@@ -705,13 +707,8 @@ extern void intel_modeset_cleanup(struct drm_device *dev);
705#define I915_WRITE16(reg, val) writel(val, dev_priv->regs + (reg)) 707#define I915_WRITE16(reg, val) writel(val, dev_priv->regs + (reg))
706#define I915_READ8(reg) readb(dev_priv->regs + (reg)) 708#define I915_READ8(reg) readb(dev_priv->regs + (reg))
707#define I915_WRITE8(reg, val) writeb(val, dev_priv->regs + (reg)) 709#define I915_WRITE8(reg, val) writeb(val, dev_priv->regs + (reg))
708#ifdef writeq
709#define I915_WRITE64(reg, val) writeq(val, dev_priv->regs + (reg)) 710#define I915_WRITE64(reg, val) writeq(val, dev_priv->regs + (reg))
710#else 711#define I915_READ64(reg) readq(dev_priv->regs + (reg))
711#define I915_WRITE64(reg, val) (writel(val, dev_priv->regs + (reg)), \
712 writel(upper_32_bits(val), dev_priv->regs + \
713 (reg) + 4))
714#endif
715#define POSTING_READ(reg) (void)I915_READ(reg) 712#define POSTING_READ(reg) (void)I915_READ(reg)
716 713
717#define I915_VERBOSE 0 714#define I915_VERBOSE 0
@@ -790,7 +787,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
790 (dev)->pci_device == 0x2E22 || \ 787 (dev)->pci_device == 0x2E22 || \
791 (dev)->pci_device == 0x2E32) 788 (dev)->pci_device == 0x2E32)
792 789
793#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02) 790#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02 || \
791 (dev)->pci_device == 0x2A12)
794 792
795#define IS_GM45(dev) ((dev)->pci_device == 0x2A42) 793#define IS_GM45(dev) ((dev)->pci_device == 0x2A42)
796 794
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index ee896d91c5bc..39f5c658ef5e 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -349,7 +349,7 @@ i915_gem_shmem_pread_slow(struct drm_device *dev, struct drm_gem_object *obj,
349 last_data_page = (data_ptr + args->size - 1) / PAGE_SIZE; 349 last_data_page = (data_ptr + args->size - 1) / PAGE_SIZE;
350 num_pages = last_data_page - first_data_page + 1; 350 num_pages = last_data_page - first_data_page + 1;
351 351
352 user_pages = kcalloc(num_pages, sizeof(struct page *), GFP_KERNEL); 352 user_pages = drm_calloc_large(num_pages, sizeof(struct page *));
353 if (user_pages == NULL) 353 if (user_pages == NULL)
354 return -ENOMEM; 354 return -ENOMEM;
355 355
@@ -429,7 +429,7 @@ fail_put_user_pages:
429 SetPageDirty(user_pages[i]); 429 SetPageDirty(user_pages[i]);
430 page_cache_release(user_pages[i]); 430 page_cache_release(user_pages[i]);
431 } 431 }
432 kfree(user_pages); 432 drm_free_large(user_pages);
433 433
434 return ret; 434 return ret;
435} 435}
@@ -649,7 +649,7 @@ i915_gem_gtt_pwrite_slow(struct drm_device *dev, struct drm_gem_object *obj,
649 last_data_page = (data_ptr + args->size - 1) / PAGE_SIZE; 649 last_data_page = (data_ptr + args->size - 1) / PAGE_SIZE;
650 num_pages = last_data_page - first_data_page + 1; 650 num_pages = last_data_page - first_data_page + 1;
651 651
652 user_pages = kcalloc(num_pages, sizeof(struct page *), GFP_KERNEL); 652 user_pages = drm_calloc_large(num_pages, sizeof(struct page *));
653 if (user_pages == NULL) 653 if (user_pages == NULL)
654 return -ENOMEM; 654 return -ENOMEM;
655 655
@@ -719,7 +719,7 @@ out_unlock:
719out_unpin_pages: 719out_unpin_pages:
720 for (i = 0; i < pinned_pages; i++) 720 for (i = 0; i < pinned_pages; i++)
721 page_cache_release(user_pages[i]); 721 page_cache_release(user_pages[i]);
722 kfree(user_pages); 722 drm_free_large(user_pages);
723 723
724 return ret; 724 return ret;
725} 725}
@@ -824,7 +824,7 @@ i915_gem_shmem_pwrite_slow(struct drm_device *dev, struct drm_gem_object *obj,
824 last_data_page = (data_ptr + args->size - 1) / PAGE_SIZE; 824 last_data_page = (data_ptr + args->size - 1) / PAGE_SIZE;
825 num_pages = last_data_page - first_data_page + 1; 825 num_pages = last_data_page - first_data_page + 1;
826 826
827 user_pages = kcalloc(num_pages, sizeof(struct page *), GFP_KERNEL); 827 user_pages = drm_calloc_large(num_pages, sizeof(struct page *));
828 if (user_pages == NULL) 828 if (user_pages == NULL)
829 return -ENOMEM; 829 return -ENOMEM;
830 830
@@ -902,7 +902,7 @@ fail_unlock:
902fail_put_user_pages: 902fail_put_user_pages:
903 for (i = 0; i < pinned_pages; i++) 903 for (i = 0; i < pinned_pages; i++)
904 page_cache_release(user_pages[i]); 904 page_cache_release(user_pages[i]);
905 kfree(user_pages); 905 drm_free_large(user_pages);
906 906
907 return ret; 907 return ret;
908} 908}
@@ -1145,7 +1145,14 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
1145 mutex_unlock(&dev->struct_mutex); 1145 mutex_unlock(&dev->struct_mutex);
1146 return VM_FAULT_SIGBUS; 1146 return VM_FAULT_SIGBUS;
1147 } 1147 }
1148 list_add(&obj_priv->list, &dev_priv->mm.inactive_list); 1148
1149 ret = i915_gem_object_set_to_gtt_domain(obj, write);
1150 if (ret) {
1151 mutex_unlock(&dev->struct_mutex);
1152 return VM_FAULT_SIGBUS;
1153 }
1154
1155 list_add_tail(&obj_priv->list, &dev_priv->mm.inactive_list);
1149 } 1156 }
1150 1157
1151 /* Need a new fence register? */ 1158 /* Need a new fence register? */
@@ -1375,7 +1382,7 @@ i915_gem_mmap_gtt_ioctl(struct drm_device *dev, void *data,
1375 mutex_unlock(&dev->struct_mutex); 1382 mutex_unlock(&dev->struct_mutex);
1376 return ret; 1383 return ret;
1377 } 1384 }
1378 list_add(&obj_priv->list, &dev_priv->mm.inactive_list); 1385 list_add_tail(&obj_priv->list, &dev_priv->mm.inactive_list);
1379 } 1386 }
1380 1387
1381 drm_gem_object_unreference(obj); 1388 drm_gem_object_unreference(obj);
@@ -1408,9 +1415,7 @@ i915_gem_object_put_pages(struct drm_gem_object *obj)
1408 } 1415 }
1409 obj_priv->dirty = 0; 1416 obj_priv->dirty = 0;
1410 1417
1411 drm_free(obj_priv->pages, 1418 drm_free_large(obj_priv->pages);
1412 page_count * sizeof(struct page *),
1413 DRM_MEM_DRIVER);
1414 obj_priv->pages = NULL; 1419 obj_priv->pages = NULL;
1415} 1420}
1416 1421
@@ -1691,11 +1696,20 @@ static int
1691i915_wait_request(struct drm_device *dev, uint32_t seqno) 1696i915_wait_request(struct drm_device *dev, uint32_t seqno)
1692{ 1697{
1693 drm_i915_private_t *dev_priv = dev->dev_private; 1698 drm_i915_private_t *dev_priv = dev->dev_private;
1699 u32 ier;
1694 int ret = 0; 1700 int ret = 0;
1695 1701
1696 BUG_ON(seqno == 0); 1702 BUG_ON(seqno == 0);
1697 1703
1698 if (!i915_seqno_passed(i915_get_gem_seqno(dev), seqno)) { 1704 if (!i915_seqno_passed(i915_get_gem_seqno(dev), seqno)) {
1705 ier = I915_READ(IER);
1706 if (!ier) {
1707 DRM_ERROR("something (likely vbetool) disabled "
1708 "interrupts, re-enabling\n");
1709 i915_driver_irq_preinstall(dev);
1710 i915_driver_irq_postinstall(dev);
1711 }
1712
1699 dev_priv->mm.waiting_gem_seqno = seqno; 1713 dev_priv->mm.waiting_gem_seqno = seqno;
1700 i915_user_irq_get(dev); 1714 i915_user_irq_get(dev);
1701 ret = wait_event_interruptible(dev_priv->irq_queue, 1715 ret = wait_event_interruptible(dev_priv->irq_queue,
@@ -2015,8 +2029,7 @@ i915_gem_object_get_pages(struct drm_gem_object *obj)
2015 */ 2029 */
2016 page_count = obj->size / PAGE_SIZE; 2030 page_count = obj->size / PAGE_SIZE;
2017 BUG_ON(obj_priv->pages != NULL); 2031 BUG_ON(obj_priv->pages != NULL);
2018 obj_priv->pages = drm_calloc(page_count, sizeof(struct page *), 2032 obj_priv->pages = drm_calloc_large(page_count, sizeof(struct page *));
2019 DRM_MEM_DRIVER);
2020 if (obj_priv->pages == NULL) { 2033 if (obj_priv->pages == NULL) {
2021 DRM_ERROR("Faled to allocate page list\n"); 2034 DRM_ERROR("Faled to allocate page list\n");
2022 obj_priv->pages_refcount--; 2035 obj_priv->pages_refcount--;
@@ -2122,8 +2135,10 @@ static void i830_write_fence_reg(struct drm_i915_fence_reg *reg)
2122 return; 2135 return;
2123 } 2136 }
2124 2137
2125 pitch_val = (obj_priv->stride / 128) - 1; 2138 pitch_val = obj_priv->stride / 128;
2126 WARN_ON(pitch_val & ~0x0000000f); 2139 pitch_val = ffs(pitch_val) - 1;
2140 WARN_ON(pitch_val > I830_FENCE_MAX_PITCH_VAL);
2141
2127 val = obj_priv->gtt_offset; 2142 val = obj_priv->gtt_offset;
2128 if (obj_priv->tiling_mode == I915_TILING_Y) 2143 if (obj_priv->tiling_mode == I915_TILING_Y)
2129 val |= 1 << I830_FENCE_TILING_Y_SHIFT; 2144 val |= 1 << I830_FENCE_TILING_Y_SHIFT;
@@ -2245,9 +2260,6 @@ try_again:
2245 goto try_again; 2260 goto try_again;
2246 } 2261 }
2247 2262
2248 BUG_ON(old_obj_priv->active ||
2249 (reg->obj->write_domain & I915_GEM_GPU_DOMAINS));
2250
2251 /* 2263 /*
2252 * Zap this virtual mapping so we can set up a fence again 2264 * Zap this virtual mapping so we can set up a fence again
2253 * for this object next time we need it. 2265 * for this object next time we need it.
@@ -2415,6 +2427,16 @@ i915_gem_clflush_object(struct drm_gem_object *obj)
2415 if (obj_priv->pages == NULL) 2427 if (obj_priv->pages == NULL)
2416 return; 2428 return;
2417 2429
2430 /* XXX: The 865 in particular appears to be weird in how it handles
2431 * cache flushing. We haven't figured it out, but the
2432 * clflush+agp_chipset_flush doesn't appear to successfully get the
2433 * data visible to the PGU, while wbinvd + agp_chipset_flush does.
2434 */
2435 if (IS_I865G(obj->dev)) {
2436 wbinvd();
2437 return;
2438 }
2439
2418 drm_clflush_pages(obj_priv->pages, obj->size / PAGE_SIZE); 2440 drm_clflush_pages(obj_priv->pages, obj->size / PAGE_SIZE);
2419} 2441}
2420 2442
@@ -3102,7 +3124,7 @@ i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object *exec_list,
3102 reloc_count += exec_list[i].relocation_count; 3124 reloc_count += exec_list[i].relocation_count;
3103 } 3125 }
3104 3126
3105 *relocs = drm_calloc(reloc_count, sizeof(**relocs), DRM_MEM_DRIVER); 3127 *relocs = drm_calloc_large(reloc_count, sizeof(**relocs));
3106 if (*relocs == NULL) 3128 if (*relocs == NULL)
3107 return -ENOMEM; 3129 return -ENOMEM;
3108 3130
@@ -3116,8 +3138,7 @@ i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object *exec_list,
3116 exec_list[i].relocation_count * 3138 exec_list[i].relocation_count *
3117 sizeof(**relocs)); 3139 sizeof(**relocs));
3118 if (ret != 0) { 3140 if (ret != 0) {
3119 drm_free(*relocs, reloc_count * sizeof(**relocs), 3141 drm_free_large(*relocs);
3120 DRM_MEM_DRIVER);
3121 *relocs = NULL; 3142 *relocs = NULL;
3122 return -EFAULT; 3143 return -EFAULT;
3123 } 3144 }
@@ -3156,7 +3177,7 @@ i915_gem_put_relocs_to_user(struct drm_i915_gem_exec_object *exec_list,
3156 } 3177 }
3157 3178
3158err: 3179err:
3159 drm_free(relocs, reloc_count * sizeof(*relocs), DRM_MEM_DRIVER); 3180 drm_free_large(relocs);
3160 3181
3161 return ret; 3182 return ret;
3162} 3183}
@@ -3189,10 +3210,8 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
3189 return -EINVAL; 3210 return -EINVAL;
3190 } 3211 }
3191 /* Copy in the exec list from userland */ 3212 /* Copy in the exec list from userland */
3192 exec_list = drm_calloc(sizeof(*exec_list), args->buffer_count, 3213 exec_list = drm_calloc_large(sizeof(*exec_list), args->buffer_count);
3193 DRM_MEM_DRIVER); 3214 object_list = drm_calloc_large(sizeof(*object_list), args->buffer_count);
3194 object_list = drm_calloc(sizeof(*object_list), args->buffer_count,
3195 DRM_MEM_DRIVER);
3196 if (exec_list == NULL || object_list == NULL) { 3215 if (exec_list == NULL || object_list == NULL) {
3197 DRM_ERROR("Failed to allocate exec or object list " 3216 DRM_ERROR("Failed to allocate exec or object list "
3198 "for %d buffers\n", 3217 "for %d buffers\n",
@@ -3453,10 +3472,8 @@ err:
3453 } 3472 }
3454 3473
3455pre_mutex_err: 3474pre_mutex_err:
3456 drm_free(object_list, sizeof(*object_list) * args->buffer_count, 3475 drm_free_large(object_list);
3457 DRM_MEM_DRIVER); 3476 drm_free_large(exec_list);
3458 drm_free(exec_list, sizeof(*exec_list) * args->buffer_count,
3459 DRM_MEM_DRIVER);
3460 drm_free(cliprects, sizeof(*cliprects) * args->num_cliprects, 3477 drm_free(cliprects, sizeof(*cliprects) * args->num_cliprects,
3461 DRM_MEM_DRIVER); 3478 DRM_MEM_DRIVER);
3462 3479
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index 52a059354e83..540dd336e6ec 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -213,7 +213,8 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
213 if (tiling_mode == I915_TILING_NONE) 213 if (tiling_mode == I915_TILING_NONE)
214 return true; 214 return true;
215 215
216 if (tiling_mode == I915_TILING_Y && HAS_128_BYTE_Y_TILING(dev)) 216 if (!IS_I9XX(dev) ||
217 (tiling_mode == I915_TILING_Y && HAS_128_BYTE_Y_TILING(dev)))
217 tile_width = 128; 218 tile_width = 128;
218 else 219 else
219 tile_width = 512; 220 tile_width = 512;
@@ -225,11 +226,18 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
225 if (stride / 128 > I965_FENCE_MAX_PITCH_VAL) 226 if (stride / 128 > I965_FENCE_MAX_PITCH_VAL)
226 return false; 227 return false;
227 } else if (IS_I9XX(dev)) { 228 } else if (IS_I9XX(dev)) {
228 if (stride / tile_width > I830_FENCE_MAX_PITCH_VAL || 229 uint32_t pitch_val = ffs(stride / tile_width) - 1;
230
231 /* XXX: For Y tiling, FENCE_MAX_PITCH_VAL is actually 6 (8KB)
232 * instead of 4 (2KB) on 945s.
233 */
234 if (pitch_val > I915_FENCE_MAX_PITCH_VAL ||
229 size > (I830_FENCE_MAX_SIZE_VAL << 20)) 235 size > (I830_FENCE_MAX_SIZE_VAL << 20))
230 return false; 236 return false;
231 } else { 237 } else {
232 if (stride / 128 > I830_FENCE_MAX_PITCH_VAL || 238 uint32_t pitch_val = ffs(stride / tile_width) - 1;
239
240 if (pitch_val > I830_FENCE_MAX_PITCH_VAL ||
233 size > (I830_FENCE_MAX_SIZE_VAL << 19)) 241 size > (I830_FENCE_MAX_SIZE_VAL << 19))
234 return false; 242 return false;
235 } 243 }
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 521194732266..375569d01d01 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -190,7 +190,8 @@
190#define I830_FENCE_SIZE_BITS(size) ((ffs((size) >> 19) - 1) << 8) 190#define I830_FENCE_SIZE_BITS(size) ((ffs((size) >> 19) - 1) << 8)
191#define I830_FENCE_PITCH_SHIFT 4 191#define I830_FENCE_PITCH_SHIFT 4
192#define I830_FENCE_REG_VALID (1<<0) 192#define I830_FENCE_REG_VALID (1<<0)
193#define I830_FENCE_MAX_PITCH_VAL 0x10 193#define I915_FENCE_MAX_PITCH_VAL 0x10
194#define I830_FENCE_MAX_PITCH_VAL 6
194#define I830_FENCE_MAX_SIZE_VAL (1<<8) 195#define I830_FENCE_MAX_SIZE_VAL (1<<8)
195 196
196#define I915_FENCE_START_MASK 0x0ff00000 197#define I915_FENCE_START_MASK 0x0ff00000
@@ -526,6 +527,7 @@
526#define DPLLA_INPUT_BUFFER_ENABLE (1 << 0) 527#define DPLLA_INPUT_BUFFER_ENABLE (1 << 0)
527#define D_STATE 0x6104 528#define D_STATE 0x6104
528#define CG_2D_DIS 0x6200 529#define CG_2D_DIS 0x6200
530#define DPCUNIT_CLOCK_GATE_DISABLE (1 << 24)
529#define CG_3D_DIS 0x6204 531#define CG_3D_DIS 0x6204
530 532
531/* 533/*
@@ -1409,9 +1411,25 @@
1409 1411
1410/* Cursor A & B regs */ 1412/* Cursor A & B regs */
1411#define CURACNTR 0x70080 1413#define CURACNTR 0x70080
1414/* Old style CUR*CNTR flags (desktop 8xx) */
1415#define CURSOR_ENABLE 0x80000000
1416#define CURSOR_GAMMA_ENABLE 0x40000000
1417#define CURSOR_STRIDE_MASK 0x30000000
1418#define CURSOR_FORMAT_SHIFT 24
1419#define CURSOR_FORMAT_MASK (0x07 << CURSOR_FORMAT_SHIFT)
1420#define CURSOR_FORMAT_2C (0x00 << CURSOR_FORMAT_SHIFT)
1421#define CURSOR_FORMAT_3C (0x01 << CURSOR_FORMAT_SHIFT)
1422#define CURSOR_FORMAT_4C (0x02 << CURSOR_FORMAT_SHIFT)
1423#define CURSOR_FORMAT_ARGB (0x04 << CURSOR_FORMAT_SHIFT)
1424#define CURSOR_FORMAT_XRGB (0x05 << CURSOR_FORMAT_SHIFT)
1425/* New style CUR*CNTR flags */
1426#define CURSOR_MODE 0x27
1412#define CURSOR_MODE_DISABLE 0x00 1427#define CURSOR_MODE_DISABLE 0x00
1413#define CURSOR_MODE_64_32B_AX 0x07 1428#define CURSOR_MODE_64_32B_AX 0x07
1414#define CURSOR_MODE_64_ARGB_AX ((1 << 5) | CURSOR_MODE_64_32B_AX) 1429#define CURSOR_MODE_64_ARGB_AX ((1 << 5) | CURSOR_MODE_64_32B_AX)
1430#define MCURSOR_PIPE_SELECT (1 << 28)
1431#define MCURSOR_PIPE_A 0x00
1432#define MCURSOR_PIPE_B (1 << 28)
1415#define MCURSOR_GAMMA_ENABLE (1 << 26) 1433#define MCURSOR_GAMMA_ENABLE (1 << 26)
1416#define CURABASE 0x70084 1434#define CURABASE 0x70084
1417#define CURAPOS 0x70088 1435#define CURAPOS 0x70088
@@ -1419,6 +1437,7 @@
1419#define CURSOR_POS_SIGN 0x8000 1437#define CURSOR_POS_SIGN 0x8000
1420#define CURSOR_X_SHIFT 0 1438#define CURSOR_X_SHIFT 0
1421#define CURSOR_Y_SHIFT 16 1439#define CURSOR_Y_SHIFT 16
1440#define CURSIZE 0x700a0
1422#define CURBCNTR 0x700c0 1441#define CURBCNTR 0x700c0
1423#define CURBBASE 0x700c4 1442#define CURBBASE 0x700c4
1424#define CURBPOS 0x700c8 1443#define CURBPOS 0x700c8
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index d669cc2b42c0..ce8a21344a71 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -349,6 +349,18 @@ int i915_save_state(struct drm_device *dev)
349 for (i = 0; i < 3; i++) 349 for (i = 0; i < 3; i++)
350 dev_priv->saveSWF2[i] = I915_READ(SWF30 + (i << 2)); 350 dev_priv->saveSWF2[i] = I915_READ(SWF30 + (i << 2));
351 351
352 /* Fences */
353 if (IS_I965G(dev)) {
354 for (i = 0; i < 16; i++)
355 dev_priv->saveFENCE[i] = I915_READ64(FENCE_REG_965_0 + (i * 8));
356 } else {
357 for (i = 0; i < 8; i++)
358 dev_priv->saveFENCE[i] = I915_READ(FENCE_REG_830_0 + (i * 4));
359
360 if (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev))
361 for (i = 0; i < 8; i++)
362 dev_priv->saveFENCE[i+8] = I915_READ(FENCE_REG_945_8 + (i * 4));
363 }
352 i915_save_vga(dev); 364 i915_save_vga(dev);
353 365
354 return 0; 366 return 0;
@@ -371,6 +383,18 @@ int i915_restore_state(struct drm_device *dev)
371 /* Display arbitration */ 383 /* Display arbitration */
372 I915_WRITE(DSPARB, dev_priv->saveDSPARB); 384 I915_WRITE(DSPARB, dev_priv->saveDSPARB);
373 385
386 /* Fences */
387 if (IS_I965G(dev)) {
388 for (i = 0; i < 16; i++)
389 I915_WRITE64(FENCE_REG_965_0 + (i * 8), dev_priv->saveFENCE[i]);
390 } else {
391 for (i = 0; i < 8; i++)
392 I915_WRITE(FENCE_REG_830_0 + (i * 4), dev_priv->saveFENCE[i]);
393 if (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev))
394 for (i = 0; i < 8; i++)
395 I915_WRITE(FENCE_REG_945_8 + (i * 4), dev_priv->saveFENCE[i+8]);
396 }
397
374 /* Pipe & plane A info */ 398 /* Pipe & plane A info */
375 /* Prime the clock */ 399 /* Prime the clock */
376 if (dev_priv->saveDPLL_A & DPLL_VCO_ENABLE) { 400 if (dev_priv->saveDPLL_A & DPLL_VCO_ENABLE) {
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index fc28e2bbd542..9d78cff33b24 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -57,9 +57,43 @@ find_section(struct bdb_header *bdb, int section_id)
57 return NULL; 57 return NULL;
58} 58}
59 59
60/* Try to find panel data */
61static void 60static void
62parse_panel_data(struct drm_i915_private *dev_priv, struct bdb_header *bdb) 61fill_detail_timing_data(struct drm_display_mode *panel_fixed_mode,
62 struct lvds_dvo_timing *dvo_timing)
63{
64 panel_fixed_mode->hdisplay = (dvo_timing->hactive_hi << 8) |
65 dvo_timing->hactive_lo;
66 panel_fixed_mode->hsync_start = panel_fixed_mode->hdisplay +
67 ((dvo_timing->hsync_off_hi << 8) | dvo_timing->hsync_off_lo);
68 panel_fixed_mode->hsync_end = panel_fixed_mode->hsync_start +
69 dvo_timing->hsync_pulse_width;
70 panel_fixed_mode->htotal = panel_fixed_mode->hdisplay +
71 ((dvo_timing->hblank_hi << 8) | dvo_timing->hblank_lo);
72
73 panel_fixed_mode->vdisplay = (dvo_timing->vactive_hi << 8) |
74 dvo_timing->vactive_lo;
75 panel_fixed_mode->vsync_start = panel_fixed_mode->vdisplay +
76 dvo_timing->vsync_off;
77 panel_fixed_mode->vsync_end = panel_fixed_mode->vsync_start +
78 dvo_timing->vsync_pulse_width;
79 panel_fixed_mode->vtotal = panel_fixed_mode->vdisplay +
80 ((dvo_timing->vblank_hi << 8) | dvo_timing->vblank_lo);
81 panel_fixed_mode->clock = dvo_timing->clock * 10;
82 panel_fixed_mode->type = DRM_MODE_TYPE_PREFERRED;
83
84 /* Some VBTs have bogus h/vtotal values */
85 if (panel_fixed_mode->hsync_end > panel_fixed_mode->htotal)
86 panel_fixed_mode->htotal = panel_fixed_mode->hsync_end + 1;
87 if (panel_fixed_mode->vsync_end > panel_fixed_mode->vtotal)
88 panel_fixed_mode->vtotal = panel_fixed_mode->vsync_end + 1;
89
90 drm_mode_set_name(panel_fixed_mode);
91}
92
93/* Try to find integrated panel data */
94static void
95parse_lfp_panel_data(struct drm_i915_private *dev_priv,
96 struct bdb_header *bdb)
63{ 97{
64 struct bdb_lvds_options *lvds_options; 98 struct bdb_lvds_options *lvds_options;
65 struct bdb_lvds_lfp_data *lvds_lfp_data; 99 struct bdb_lvds_lfp_data *lvds_lfp_data;
@@ -91,38 +125,45 @@ parse_panel_data(struct drm_i915_private *dev_priv, struct bdb_header *bdb)
91 panel_fixed_mode = drm_calloc(1, sizeof(*panel_fixed_mode), 125 panel_fixed_mode = drm_calloc(1, sizeof(*panel_fixed_mode),
92 DRM_MEM_DRIVER); 126 DRM_MEM_DRIVER);
93 127
94 panel_fixed_mode->hdisplay = (dvo_timing->hactive_hi << 8) | 128 fill_detail_timing_data(panel_fixed_mode, dvo_timing);
95 dvo_timing->hactive_lo;
96 panel_fixed_mode->hsync_start = panel_fixed_mode->hdisplay +
97 ((dvo_timing->hsync_off_hi << 8) | dvo_timing->hsync_off_lo);
98 panel_fixed_mode->hsync_end = panel_fixed_mode->hsync_start +
99 dvo_timing->hsync_pulse_width;
100 panel_fixed_mode->htotal = panel_fixed_mode->hdisplay +
101 ((dvo_timing->hblank_hi << 8) | dvo_timing->hblank_lo);
102 129
103 panel_fixed_mode->vdisplay = (dvo_timing->vactive_hi << 8) | 130 dev_priv->lfp_lvds_vbt_mode = panel_fixed_mode;
104 dvo_timing->vactive_lo;
105 panel_fixed_mode->vsync_start = panel_fixed_mode->vdisplay +
106 dvo_timing->vsync_off;
107 panel_fixed_mode->vsync_end = panel_fixed_mode->vsync_start +
108 dvo_timing->vsync_pulse_width;
109 panel_fixed_mode->vtotal = panel_fixed_mode->vdisplay +
110 ((dvo_timing->vblank_hi << 8) | dvo_timing->vblank_lo);
111 panel_fixed_mode->clock = dvo_timing->clock * 10;
112 panel_fixed_mode->type = DRM_MODE_TYPE_PREFERRED;
113 131
114 /* Some VBTs have bogus h/vtotal values */ 132 DRM_DEBUG("Found panel mode in BIOS VBT tables:\n");
115 if (panel_fixed_mode->hsync_end > panel_fixed_mode->htotal) 133 drm_mode_debug_printmodeline(panel_fixed_mode);
116 panel_fixed_mode->htotal = panel_fixed_mode->hsync_end + 1;
117 if (panel_fixed_mode->vsync_end > panel_fixed_mode->vtotal)
118 panel_fixed_mode->vtotal = panel_fixed_mode->vsync_end + 1;
119 134
120 drm_mode_set_name(panel_fixed_mode); 135 return;
136}
137
138/* Try to find sdvo panel data */
139static void
140parse_sdvo_panel_data(struct drm_i915_private *dev_priv,
141 struct bdb_header *bdb)
142{
143 struct bdb_sdvo_lvds_options *sdvo_lvds_options;
144 struct lvds_dvo_timing *dvo_timing;
145 struct drm_display_mode *panel_fixed_mode;
121 146
122 dev_priv->vbt_mode = panel_fixed_mode; 147 dev_priv->sdvo_lvds_vbt_mode = NULL;
123 148
124 DRM_DEBUG("Found panel mode in BIOS VBT tables:\n"); 149 sdvo_lvds_options = find_section(bdb, BDB_SDVO_LVDS_OPTIONS);
125 drm_mode_debug_printmodeline(panel_fixed_mode); 150 if (!sdvo_lvds_options)
151 return;
152
153 dvo_timing = find_section(bdb, BDB_SDVO_PANEL_DTDS);
154 if (!dvo_timing)
155 return;
156
157 panel_fixed_mode = drm_calloc(1, sizeof(*panel_fixed_mode),
158 DRM_MEM_DRIVER);
159
160 if (!panel_fixed_mode)
161 return;
162
163 fill_detail_timing_data(panel_fixed_mode,
164 dvo_timing + sdvo_lvds_options->panel_type);
165
166 dev_priv->sdvo_lvds_vbt_mode = panel_fixed_mode;
126 167
127 return; 168 return;
128} 169}
@@ -199,7 +240,8 @@ intel_init_bios(struct drm_device *dev)
199 240
200 /* Grab useful general definitions */ 241 /* Grab useful general definitions */
201 parse_general_features(dev_priv, bdb); 242 parse_general_features(dev_priv, bdb);
202 parse_panel_data(dev_priv, bdb); 243 parse_lfp_panel_data(dev_priv, bdb);
244 parse_sdvo_panel_data(dev_priv, bdb);
203 245
204 pci_unmap_rom(pdev, bios); 246 pci_unmap_rom(pdev, bios);
205 247
diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
index de621aad85b5..8ca2cde15804 100644
--- a/drivers/gpu/drm/i915/intel_bios.h
+++ b/drivers/gpu/drm/i915/intel_bios.h
@@ -279,6 +279,23 @@ struct vch_bdb_22 {
279 struct vch_panel_data panels[16]; 279 struct vch_panel_data panels[16];
280} __attribute__((packed)); 280} __attribute__((packed));
281 281
282struct bdb_sdvo_lvds_options {
283 u8 panel_backlight;
284 u8 h40_set_panel_type;
285 u8 panel_type;
286 u8 ssc_clk_freq;
287 u16 als_low_trip;
288 u16 als_high_trip;
289 u8 sclalarcoeff_tab_row_num;
290 u8 sclalarcoeff_tab_row_size;
291 u8 coefficient[8];
292 u8 panel_misc_bits_1;
293 u8 panel_misc_bits_2;
294 u8 panel_misc_bits_3;
295 u8 panel_misc_bits_4;
296} __attribute__((packed));
297
298
282bool intel_init_bios(struct drm_device *dev); 299bool intel_init_bios(struct drm_device *dev);
283 300
284/* 301/*
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 9bdd959260a5..79acc4f4c1f8 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -161,7 +161,7 @@ static bool intel_crt_detect_hotplug(struct drm_connector *connector)
161 hotplug_en &= CRT_FORCE_HOTPLUG_MASK; 161 hotplug_en &= CRT_FORCE_HOTPLUG_MASK;
162 hotplug_en |= CRT_HOTPLUG_FORCE_DETECT; 162 hotplug_en |= CRT_HOTPLUG_FORCE_DETECT;
163 163
164 if (IS_GM45(dev)) 164 if (IS_G4X(dev))
165 hotplug_en |= CRT_HOTPLUG_ACTIVATION_PERIOD_64; 165 hotplug_en |= CRT_HOTPLUG_ACTIVATION_PERIOD_64;
166 166
167 hotplug_en |= CRT_HOTPLUG_VOLTAGE_COMPARE_50; 167 hotplug_en |= CRT_HOTPLUG_VOLTAGE_COMPARE_50;
@@ -198,9 +198,142 @@ static bool intel_crt_detect_ddc(struct drm_connector *connector)
198 return intel_ddc_probe(intel_output); 198 return intel_ddc_probe(intel_output);
199} 199}
200 200
201static enum drm_connector_status
202intel_crt_load_detect(struct drm_crtc *crtc, struct intel_output *intel_output)
203{
204 struct drm_encoder *encoder = &intel_output->enc;
205 struct drm_device *dev = encoder->dev;
206 struct drm_i915_private *dev_priv = dev->dev_private;
207 struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
208 uint32_t pipe = intel_crtc->pipe;
209 uint32_t save_bclrpat;
210 uint32_t save_vtotal;
211 uint32_t vtotal, vactive;
212 uint32_t vsample;
213 uint32_t vblank, vblank_start, vblank_end;
214 uint32_t dsl;
215 uint32_t bclrpat_reg;
216 uint32_t vtotal_reg;
217 uint32_t vblank_reg;
218 uint32_t vsync_reg;
219 uint32_t pipeconf_reg;
220 uint32_t pipe_dsl_reg;
221 uint8_t st00;
222 enum drm_connector_status status;
223
224 if (pipe == 0) {
225 bclrpat_reg = BCLRPAT_A;
226 vtotal_reg = VTOTAL_A;
227 vblank_reg = VBLANK_A;
228 vsync_reg = VSYNC_A;
229 pipeconf_reg = PIPEACONF;
230 pipe_dsl_reg = PIPEADSL;
231 } else {
232 bclrpat_reg = BCLRPAT_B;
233 vtotal_reg = VTOTAL_B;
234 vblank_reg = VBLANK_B;
235 vsync_reg = VSYNC_B;
236 pipeconf_reg = PIPEBCONF;
237 pipe_dsl_reg = PIPEBDSL;
238 }
239
240 save_bclrpat = I915_READ(bclrpat_reg);
241 save_vtotal = I915_READ(vtotal_reg);
242 vblank = I915_READ(vblank_reg);
243
244 vtotal = ((save_vtotal >> 16) & 0xfff) + 1;
245 vactive = (save_vtotal & 0x7ff) + 1;
246
247 vblank_start = (vblank & 0xfff) + 1;
248 vblank_end = ((vblank >> 16) & 0xfff) + 1;
249
250 /* Set the border color to purple. */
251 I915_WRITE(bclrpat_reg, 0x500050);
252
253 if (IS_I9XX(dev)) {
254 uint32_t pipeconf = I915_READ(pipeconf_reg);
255 I915_WRITE(pipeconf_reg, pipeconf | PIPECONF_FORCE_BORDER);
256 /* Wait for next Vblank to substitue
257 * border color for Color info */
258 intel_wait_for_vblank(dev);
259 st00 = I915_READ8(VGA_MSR_WRITE);
260 status = ((st00 & (1 << 4)) != 0) ?
261 connector_status_connected :
262 connector_status_disconnected;
263
264 I915_WRITE(pipeconf_reg, pipeconf);
265 } else {
266 bool restore_vblank = false;
267 int count, detect;
268
269 /*
270 * If there isn't any border, add some.
271 * Yes, this will flicker
272 */
273 if (vblank_start <= vactive && vblank_end >= vtotal) {
274 uint32_t vsync = I915_READ(vsync_reg);
275 uint32_t vsync_start = (vsync & 0xffff) + 1;
276
277 vblank_start = vsync_start;
278 I915_WRITE(vblank_reg,
279 (vblank_start - 1) |
280 ((vblank_end - 1) << 16));
281 restore_vblank = true;
282 }
283 /* sample in the vertical border, selecting the larger one */
284 if (vblank_start - vactive >= vtotal - vblank_end)
285 vsample = (vblank_start + vactive) >> 1;
286 else
287 vsample = (vtotal + vblank_end) >> 1;
288
289 /*
290 * Wait for the border to be displayed
291 */
292 while (I915_READ(pipe_dsl_reg) >= vactive)
293 ;
294 while ((dsl = I915_READ(pipe_dsl_reg)) <= vsample)
295 ;
296 /*
297 * Watch ST00 for an entire scanline
298 */
299 detect = 0;
300 count = 0;
301 do {
302 count++;
303 /* Read the ST00 VGA status register */
304 st00 = I915_READ8(VGA_MSR_WRITE);
305 if (st00 & (1 << 4))
306 detect++;
307 } while ((I915_READ(pipe_dsl_reg) == dsl));
308
309 /* restore vblank if necessary */
310 if (restore_vblank)
311 I915_WRITE(vblank_reg, vblank);
312 /*
313 * If more than 3/4 of the scanline detected a monitor,
314 * then it is assumed to be present. This works even on i830,
315 * where there isn't any way to force the border color across
316 * the screen
317 */
318 status = detect * 4 > count * 3 ?
319 connector_status_connected :
320 connector_status_disconnected;
321 }
322
323 /* Restore previous settings */
324 I915_WRITE(bclrpat_reg, save_bclrpat);
325
326 return status;
327}
328
201static enum drm_connector_status intel_crt_detect(struct drm_connector *connector) 329static enum drm_connector_status intel_crt_detect(struct drm_connector *connector)
202{ 330{
203 struct drm_device *dev = connector->dev; 331 struct drm_device *dev = connector->dev;
332 struct intel_output *intel_output = to_intel_output(connector);
333 struct drm_encoder *encoder = &intel_output->enc;
334 struct drm_crtc *crtc;
335 int dpms_mode;
336 enum drm_connector_status status;
204 337
205 if (IS_I9XX(dev) && !IS_I915G(dev) && !IS_I915GM(dev)) { 338 if (IS_I9XX(dev) && !IS_I915G(dev) && !IS_I915GM(dev)) {
206 if (intel_crt_detect_hotplug(connector)) 339 if (intel_crt_detect_hotplug(connector))
@@ -212,8 +345,20 @@ static enum drm_connector_status intel_crt_detect(struct drm_connector *connecto
212 if (intel_crt_detect_ddc(connector)) 345 if (intel_crt_detect_ddc(connector))
213 return connector_status_connected; 346 return connector_status_connected;
214 347
215 /* TODO use load detect */ 348 /* for pre-945g platforms use load detect */
216 return connector_status_unknown; 349 if (encoder->crtc && encoder->crtc->enabled) {
350 status = intel_crt_load_detect(encoder->crtc, intel_output);
351 } else {
352 crtc = intel_get_load_detect_pipe(intel_output,
353 NULL, &dpms_mode);
354 if (crtc) {
355 status = intel_crt_load_detect(crtc, intel_output);
356 intel_release_load_detect_pipe(intel_output, dpms_mode);
357 } else
358 status = connector_status_unknown;
359 }
360
361 return status;
217} 362}
218 363
219static void intel_crt_destroy(struct drm_connector *connector) 364static void intel_crt_destroy(struct drm_connector *connector)
@@ -236,11 +381,6 @@ static int intel_crt_set_property(struct drm_connector *connector,
236 struct drm_property *property, 381 struct drm_property *property,
237 uint64_t value) 382 uint64_t value)
238{ 383{
239 struct drm_device *dev = connector->dev;
240
241 if (property == dev->mode_config.dpms_property && connector->encoder)
242 intel_crt_dpms(connector->encoder, (uint32_t)(value & 0xf));
243
244 return 0; 384 return 0;
245} 385}
246 386
@@ -257,6 +397,7 @@ static const struct drm_encoder_helper_funcs intel_crt_helper_funcs = {
257}; 397};
258 398
259static const struct drm_connector_funcs intel_crt_connector_funcs = { 399static const struct drm_connector_funcs intel_crt_connector_funcs = {
400 .dpms = drm_helper_connector_dpms,
260 .detect = intel_crt_detect, 401 .detect = intel_crt_detect,
261 .fill_modes = drm_helper_probe_single_connector_modes, 402 .fill_modes = drm_helper_probe_single_connector_modes,
262 .destroy = intel_crt_destroy, 403 .destroy = intel_crt_destroy,
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index bdcda36953b0..c9d6f10ba92e 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1357,7 +1357,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
1357 int pipe = intel_crtc->pipe; 1357 int pipe = intel_crtc->pipe;
1358 uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR; 1358 uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR;
1359 uint32_t base = (pipe == 0) ? CURABASE : CURBBASE; 1359 uint32_t base = (pipe == 0) ? CURABASE : CURBBASE;
1360 uint32_t temp; 1360 uint32_t temp = I915_READ(control);
1361 size_t addr; 1361 size_t addr;
1362 int ret; 1362 int ret;
1363 1363
@@ -1366,7 +1366,12 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
1366 /* if we want to turn off the cursor ignore width and height */ 1366 /* if we want to turn off the cursor ignore width and height */
1367 if (!handle) { 1367 if (!handle) {
1368 DRM_DEBUG("cursor off\n"); 1368 DRM_DEBUG("cursor off\n");
1369 temp = CURSOR_MODE_DISABLE; 1369 if (IS_MOBILE(dev) || IS_I9XX(dev)) {
1370 temp &= ~(CURSOR_MODE | MCURSOR_GAMMA_ENABLE);
1371 temp |= CURSOR_MODE_DISABLE;
1372 } else {
1373 temp &= ~(CURSOR_ENABLE | CURSOR_GAMMA_ENABLE);
1374 }
1370 addr = 0; 1375 addr = 0;
1371 bo = NULL; 1376 bo = NULL;
1372 mutex_lock(&dev->struct_mutex); 1377 mutex_lock(&dev->struct_mutex);
@@ -1409,10 +1414,19 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
1409 addr = obj_priv->phys_obj->handle->busaddr; 1414 addr = obj_priv->phys_obj->handle->busaddr;
1410 } 1415 }
1411 1416
1412 temp = 0; 1417 if (!IS_I9XX(dev))
1413 /* set the pipe for the cursor */ 1418 I915_WRITE(CURSIZE, (height << 12) | width);
1414 temp |= (pipe << 28); 1419
1415 temp |= CURSOR_MODE_64_ARGB_AX | MCURSOR_GAMMA_ENABLE; 1420 /* Hooray for CUR*CNTR differences */
1421 if (IS_MOBILE(dev) || IS_I9XX(dev)) {
1422 temp &= ~(CURSOR_MODE | MCURSOR_PIPE_SELECT);
1423 temp |= CURSOR_MODE_64_ARGB_AX | MCURSOR_GAMMA_ENABLE;
1424 temp |= (pipe << 28); /* Connect to correct pipe */
1425 } else {
1426 temp &= ~(CURSOR_FORMAT_MASK);
1427 temp |= CURSOR_ENABLE;
1428 temp |= CURSOR_FORMAT_ARGB | CURSOR_GAMMA_ENABLE;
1429 }
1416 1430
1417 finish: 1431 finish:
1418 I915_WRITE(control, temp); 1432 I915_WRITE(control, temp);
@@ -1804,6 +1818,37 @@ static void intel_crtc_init(struct drm_device *dev, int pipe)
1804 } 1818 }
1805} 1819}
1806 1820
1821int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
1822 struct drm_file *file_priv)
1823{
1824 drm_i915_private_t *dev_priv = dev->dev_private;
1825 struct drm_i915_get_pipe_from_crtc_id *pipe_from_crtc_id = data;
1826 struct drm_crtc *crtc = NULL;
1827 int pipe = -1;
1828
1829 if (!dev_priv) {
1830 DRM_ERROR("called with no initialization\n");
1831 return -EINVAL;
1832 }
1833
1834 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
1835 struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
1836 if (crtc->base.id == pipe_from_crtc_id->crtc_id) {
1837 pipe = intel_crtc->pipe;
1838 break;
1839 }
1840 }
1841
1842 if (pipe == -1) {
1843 DRM_ERROR("no such CRTC id\n");
1844 return -EINVAL;
1845 }
1846
1847 pipe_from_crtc_id->pipe = pipe;
1848
1849 return 0;
1850}
1851
1807struct drm_crtc *intel_get_crtc_from_pipe(struct drm_device *dev, int pipe) 1852struct drm_crtc *intel_get_crtc_from_pipe(struct drm_device *dev, int pipe)
1808{ 1853{
1809 struct drm_crtc *crtc = NULL; 1854 struct drm_crtc *crtc = NULL;
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 957daef8edff..cd4b9c5f715e 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -109,7 +109,7 @@ struct intel_i2c_chan *intel_i2c_create(struct drm_device *dev, const u32 reg,
109void intel_i2c_destroy(struct intel_i2c_chan *chan); 109void intel_i2c_destroy(struct intel_i2c_chan *chan);
110int intel_ddc_get_modes(struct intel_output *intel_output); 110int intel_ddc_get_modes(struct intel_output *intel_output);
111extern bool intel_ddc_probe(struct intel_output *intel_output); 111extern bool intel_ddc_probe(struct intel_output *intel_output);
112 112void intel_i2c_quirk_set(struct drm_device *dev, bool enable);
113extern void intel_crt_init(struct drm_device *dev); 113extern void intel_crt_init(struct drm_device *dev);
114extern void intel_hdmi_init(struct drm_device *dev, int sdvox_reg); 114extern void intel_hdmi_init(struct drm_device *dev, int sdvox_reg);
115extern bool intel_sdvo_init(struct drm_device *dev, int output_device); 115extern bool intel_sdvo_init(struct drm_device *dev, int output_device);
@@ -125,6 +125,8 @@ extern struct drm_encoder *intel_best_encoder(struct drm_connector *connector);
125 125
126extern struct drm_display_mode *intel_crtc_mode_get(struct drm_device *dev, 126extern struct drm_display_mode *intel_crtc_mode_get(struct drm_device *dev,
127 struct drm_crtc *crtc); 127 struct drm_crtc *crtc);
128int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
129 struct drm_file *file_priv);
128extern void intel_wait_for_vblank(struct drm_device *dev); 130extern void intel_wait_for_vblank(struct drm_device *dev);
129extern struct drm_crtc *intel_get_crtc_from_pipe(struct drm_device *dev, int pipe); 131extern struct drm_crtc *intel_get_crtc_from_pipe(struct drm_device *dev, int pipe);
130extern struct drm_crtc *intel_get_load_detect_pipe(struct intel_output *intel_output, 132extern struct drm_crtc *intel_get_load_detect_pipe(struct intel_output *intel_output,
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index 8b8d6e65cd3f..1ee3007d6ec0 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -316,6 +316,7 @@ static const struct drm_encoder_helper_funcs intel_dvo_helper_funcs = {
316}; 316};
317 317
318static const struct drm_connector_funcs intel_dvo_connector_funcs = { 318static const struct drm_connector_funcs intel_dvo_connector_funcs = {
319 .dpms = drm_helper_connector_dpms,
319 .save = intel_dvo_save, 320 .save = intel_dvo_save,
320 .restore = intel_dvo_restore, 321 .restore = intel_dvo_restore,
321 .detect = intel_dvo_detect, 322 .detect = intel_dvo_detect,
diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c
index 3e094beecb99..e4652dcdd9bb 100644
--- a/drivers/gpu/drm/i915/intel_fb.c
+++ b/drivers/gpu/drm/i915/intel_fb.c
@@ -864,7 +864,7 @@ static void intelfb_sysrq(int dummy1, struct tty_struct *dummy3)
864 864
865static struct sysrq_key_op sysrq_intelfb_restore_op = { 865static struct sysrq_key_op sysrq_intelfb_restore_op = {
866 .handler = intelfb_sysrq, 866 .handler = intelfb_sysrq,
867 .help_msg = "force-fb(G)", 867 .help_msg = "force-fb(V)",
868 .action_msg = "Restore framebuffer console", 868 .action_msg = "Restore framebuffer console",
869}; 869};
870 870
@@ -898,7 +898,7 @@ int intelfb_probe(struct drm_device *dev)
898 ret = intelfb_single_fb_probe(dev); 898 ret = intelfb_single_fb_probe(dev);
899 } 899 }
900 900
901 register_sysrq_key('g', &sysrq_intelfb_restore_op); 901 register_sysrq_key('v', &sysrq_intelfb_restore_op);
902 902
903 return ret; 903 return ret;
904} 904}
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 550374225388..7d6bdd705326 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -155,11 +155,18 @@ intel_hdmi_detect(struct drm_connector *connector)
155 155
156 temp = I915_READ(PORT_HOTPLUG_EN); 156 temp = I915_READ(PORT_HOTPLUG_EN);
157 157
158 I915_WRITE(PORT_HOTPLUG_EN, 158 switch (hdmi_priv->sdvox_reg) {
159 temp | 159 case SDVOB:
160 HDMIB_HOTPLUG_INT_EN | 160 temp |= HDMIB_HOTPLUG_INT_EN;
161 HDMIC_HOTPLUG_INT_EN | 161 break;
162 HDMID_HOTPLUG_INT_EN); 162 case SDVOC:
163 temp |= HDMIC_HOTPLUG_INT_EN;
164 break;
165 default:
166 return connector_status_unknown;
167 }
168
169 I915_WRITE(PORT_HOTPLUG_EN, temp);
163 170
164 POSTING_READ(PORT_HOTPLUG_EN); 171 POSTING_READ(PORT_HOTPLUG_EN);
165 172
@@ -212,6 +219,7 @@ static const struct drm_encoder_helper_funcs intel_hdmi_helper_funcs = {
212}; 219};
213 220
214static const struct drm_connector_funcs intel_hdmi_connector_funcs = { 221static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
222 .dpms = drm_helper_connector_dpms,
215 .save = intel_hdmi_save, 223 .save = intel_hdmi_save,
216 .restore = intel_hdmi_restore, 224 .restore = intel_hdmi_restore,
217 .detect = intel_hdmi_detect, 225 .detect = intel_hdmi_detect,
diff --git a/drivers/gpu/drm/i915/intel_i2c.c b/drivers/gpu/drm/i915/intel_i2c.c
index 5ee9d4c25753..f7061f68d050 100644
--- a/drivers/gpu/drm/i915/intel_i2c.c
+++ b/drivers/gpu/drm/i915/intel_i2c.c
@@ -34,6 +34,21 @@
34#include "i915_drm.h" 34#include "i915_drm.h"
35#include "i915_drv.h" 35#include "i915_drv.h"
36 36
37void intel_i2c_quirk_set(struct drm_device *dev, bool enable)
38{
39 struct drm_i915_private *dev_priv = dev->dev_private;
40
41 /* When using bit bashing for I2C, this bit needs to be set to 1 */
42 if (!IS_IGD(dev))
43 return;
44 if (enable)
45 I915_WRITE(CG_2D_DIS,
46 I915_READ(CG_2D_DIS) | DPCUNIT_CLOCK_GATE_DISABLE);
47 else
48 I915_WRITE(CG_2D_DIS,
49 I915_READ(CG_2D_DIS) & (~DPCUNIT_CLOCK_GATE_DISABLE));
50}
51
37/* 52/*
38 * Intel GPIO access functions 53 * Intel GPIO access functions
39 */ 54 */
@@ -153,8 +168,10 @@ struct intel_i2c_chan *intel_i2c_create(struct drm_device *dev, const u32 reg,
153 goto out_free; 168 goto out_free;
154 169
155 /* JJJ: raise SCL and SDA? */ 170 /* JJJ: raise SCL and SDA? */
171 intel_i2c_quirk_set(dev, true);
156 set_data(chan, 1); 172 set_data(chan, 1);
157 set_clock(chan, 1); 173 set_clock(chan, 1);
174 intel_i2c_quirk_set(dev, false);
158 udelay(20); 175 udelay(20);
159 176
160 return chan; 177 return chan;
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 6619f26e46a5..53cccfa58b95 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -343,11 +343,6 @@ static int intel_lvds_set_property(struct drm_connector *connector,
343 struct drm_property *property, 343 struct drm_property *property,
344 uint64_t value) 344 uint64_t value)
345{ 345{
346 struct drm_device *dev = connector->dev;
347
348 if (property == dev->mode_config.dpms_property && connector->encoder)
349 intel_lvds_dpms(connector->encoder, (uint32_t)(value & 0xf));
350
351 return 0; 346 return 0;
352} 347}
353 348
@@ -366,6 +361,7 @@ static const struct drm_connector_helper_funcs intel_lvds_connector_helper_funcs
366}; 361};
367 362
368static const struct drm_connector_funcs intel_lvds_connector_funcs = { 363static const struct drm_connector_funcs intel_lvds_connector_funcs = {
364 .dpms = drm_helper_connector_dpms,
369 .save = intel_lvds_save, 365 .save = intel_lvds_save,
370 .restore = intel_lvds_restore, 366 .restore = intel_lvds_restore,
371 .detect = intel_lvds_detect, 367 .detect = intel_lvds_detect,
@@ -384,7 +380,51 @@ static const struct drm_encoder_funcs intel_lvds_enc_funcs = {
384 .destroy = intel_lvds_enc_destroy, 380 .destroy = intel_lvds_enc_destroy,
385}; 381};
386 382
383static int __init intel_no_lvds_dmi_callback(const struct dmi_system_id *id)
384{
385 DRM_DEBUG("Skipping LVDS initialization for %s\n", id->ident);
386 return 1;
387}
388
389/* These systems claim to have LVDS, but really don't */
390static const struct dmi_system_id intel_no_lvds[] = {
391 {
392 .callback = intel_no_lvds_dmi_callback,
393 .ident = "Apple Mac Mini (Core series)",
394 .matches = {
395 DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
396 DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"),
397 },
398 },
399 {
400 .callback = intel_no_lvds_dmi_callback,
401 .ident = "Apple Mac Mini (Core 2 series)",
402 .matches = {
403 DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
404 DMI_MATCH(DMI_PRODUCT_NAME, "Macmini2,1"),
405 },
406 },
407 {
408 .callback = intel_no_lvds_dmi_callback,
409 .ident = "MSI IM-945GSE-A",
410 .matches = {
411 DMI_MATCH(DMI_SYS_VENDOR, "MSI"),
412 DMI_MATCH(DMI_PRODUCT_NAME, "A9830IMS"),
413 },
414 },
415 {
416 .callback = intel_no_lvds_dmi_callback,
417 .ident = "Dell Studio Hybrid",
418 .matches = {
419 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
420 DMI_MATCH(DMI_PRODUCT_NAME, "Studio Hybrid 140g"),
421 },
422 },
387 423
424 /* FIXME: add a check for the Aopen Mini PC */
425
426 { } /* terminating entry */
427};
388 428
389/** 429/**
390 * intel_lvds_init - setup LVDS connectors on this device 430 * intel_lvds_init - setup LVDS connectors on this device
@@ -404,15 +444,9 @@ void intel_lvds_init(struct drm_device *dev)
404 u32 lvds; 444 u32 lvds;
405 int pipe; 445 int pipe;
406 446
407 /* Blacklist machines that we know falsely report LVDS. */ 447 /* Skip init on machines we know falsely report LVDS */
408 /* FIXME: add a check for the Aopen Mini PC */ 448 if (dmi_check_system(intel_no_lvds))
409
410 /* Apple Mac Mini Core Duo and Mac Mini Core 2 Duo */
411 if(dmi_match(DMI_PRODUCT_NAME, "Macmini1,1") ||
412 dmi_match(DMI_PRODUCT_NAME, "Macmini2,1")) {
413 DRM_DEBUG("Skipping LVDS initialization for Apple Mac Mini\n");
414 return; 449 return;
415 }
416 450
417 intel_output = kzalloc(sizeof(struct intel_output), GFP_KERNEL); 451 intel_output = kzalloc(sizeof(struct intel_output), GFP_KERNEL);
418 if (!intel_output) { 452 if (!intel_output) {
@@ -473,10 +507,10 @@ void intel_lvds_init(struct drm_device *dev)
473 } 507 }
474 508
475 /* Failed to get EDID, what about VBT? */ 509 /* Failed to get EDID, what about VBT? */
476 if (dev_priv->vbt_mode) { 510 if (dev_priv->lfp_lvds_vbt_mode) {
477 mutex_lock(&dev->mode_config.mutex); 511 mutex_lock(&dev->mode_config.mutex);
478 dev_priv->panel_fixed_mode = 512 dev_priv->panel_fixed_mode =
479 drm_mode_duplicate(dev, dev_priv->vbt_mode); 513 drm_mode_duplicate(dev, dev_priv->lfp_lvds_vbt_mode);
480 mutex_unlock(&dev->mode_config.mutex); 514 mutex_unlock(&dev->mode_config.mutex);
481 if (dev_priv->panel_fixed_mode) { 515 if (dev_priv->panel_fixed_mode) {
482 dev_priv->panel_fixed_mode->type |= 516 dev_priv->panel_fixed_mode->type |=
diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c
index 07d7ec976168..e0910fefce87 100644
--- a/drivers/gpu/drm/i915/intel_modes.c
+++ b/drivers/gpu/drm/i915/intel_modes.c
@@ -27,6 +27,7 @@
27#include <linux/fb.h> 27#include <linux/fb.h>
28#include "drmP.h" 28#include "drmP.h"
29#include "intel_drv.h" 29#include "intel_drv.h"
30#include "i915_drv.h"
30 31
31/** 32/**
32 * intel_ddc_probe 33 * intel_ddc_probe
@@ -52,7 +53,10 @@ bool intel_ddc_probe(struct intel_output *intel_output)
52 } 53 }
53 }; 54 };
54 55
56 intel_i2c_quirk_set(intel_output->ddc_bus->drm_dev, true);
55 ret = i2c_transfer(&intel_output->ddc_bus->adapter, msgs, 2); 57 ret = i2c_transfer(&intel_output->ddc_bus->adapter, msgs, 2);
58 intel_i2c_quirk_set(intel_output->ddc_bus->drm_dev, false);
59
56 if (ret == 2) 60 if (ret == 2)
57 return true; 61 return true;
58 62
@@ -70,8 +74,10 @@ int intel_ddc_get_modes(struct intel_output *intel_output)
70 struct edid *edid; 74 struct edid *edid;
71 int ret = 0; 75 int ret = 0;
72 76
77 intel_i2c_quirk_set(intel_output->ddc_bus->drm_dev, true);
73 edid = drm_get_edid(&intel_output->base, 78 edid = drm_get_edid(&intel_output->base,
74 &intel_output->ddc_bus->adapter); 79 &intel_output->ddc_bus->adapter);
80 intel_i2c_quirk_set(intel_output->ddc_bus->drm_dev, false);
75 if (edid) { 81 if (edid) {
76 drm_mode_connector_update_edid_property(&intel_output->base, 82 drm_mode_connector_update_edid_property(&intel_output->base,
77 edid); 83 edid);
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index 9913651c1e17..3093b4d4a4dd 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -69,6 +69,10 @@ struct intel_sdvo_priv {
69 * This is set if we treat the device as HDMI, instead of DVI. 69 * This is set if we treat the device as HDMI, instead of DVI.
70 */ 70 */
71 bool is_hdmi; 71 bool is_hdmi;
72 /**
73 * This is set if we detect output of sdvo device as LVDS.
74 */
75 bool is_lvds;
72 76
73 /** 77 /**
74 * Returned SDTV resolutions allowed for the current format, if the 78 * Returned SDTV resolutions allowed for the current format, if the
@@ -1398,10 +1402,8 @@ static enum drm_connector_status intel_sdvo_detect(struct drm_connector *connect
1398static void intel_sdvo_get_ddc_modes(struct drm_connector *connector) 1402static void intel_sdvo_get_ddc_modes(struct drm_connector *connector)
1399{ 1403{
1400 struct intel_output *intel_output = to_intel_output(connector); 1404 struct intel_output *intel_output = to_intel_output(connector);
1401 struct intel_sdvo_priv *sdvo_priv = intel_output->dev_priv;
1402 1405
1403 /* set the bus switch and get the modes */ 1406 /* set the bus switch and get the modes */
1404 intel_sdvo_set_control_bus_switch(intel_output, sdvo_priv->ddc_bus);
1405 intel_ddc_get_modes(intel_output); 1407 intel_ddc_get_modes(intel_output);
1406 1408
1407#if 0 1409#if 0
@@ -1543,6 +1545,37 @@ static void intel_sdvo_get_tv_modes(struct drm_connector *connector)
1543 } 1545 }
1544} 1546}
1545 1547
1548static void intel_sdvo_get_lvds_modes(struct drm_connector *connector)
1549{
1550 struct intel_output *intel_output = to_intel_output(connector);
1551 struct intel_sdvo_priv *sdvo_priv = intel_output->dev_priv;
1552 struct drm_i915_private *dev_priv = connector->dev->dev_private;
1553
1554 /*
1555 * Attempt to get the mode list from DDC.
1556 * Assume that the preferred modes are
1557 * arranged in priority order.
1558 */
1559 /* set the bus switch and get the modes */
1560 intel_sdvo_set_control_bus_switch(intel_output, sdvo_priv->ddc_bus);
1561 intel_ddc_get_modes(intel_output);
1562 if (list_empty(&connector->probed_modes) == false)
1563 return;
1564
1565 /* Fetch modes from VBT */
1566 if (dev_priv->sdvo_lvds_vbt_mode != NULL) {
1567 struct drm_display_mode *newmode;
1568 newmode = drm_mode_duplicate(connector->dev,
1569 dev_priv->sdvo_lvds_vbt_mode);
1570 if (newmode != NULL) {
1571 /* Guarantee the mode is preferred */
1572 newmode->type = (DRM_MODE_TYPE_PREFERRED |
1573 DRM_MODE_TYPE_DRIVER);
1574 drm_mode_probed_add(connector, newmode);
1575 }
1576 }
1577}
1578
1546static int intel_sdvo_get_modes(struct drm_connector *connector) 1579static int intel_sdvo_get_modes(struct drm_connector *connector)
1547{ 1580{
1548 struct intel_output *output = to_intel_output(connector); 1581 struct intel_output *output = to_intel_output(connector);
@@ -1550,6 +1583,8 @@ static int intel_sdvo_get_modes(struct drm_connector *connector)
1550 1583
1551 if (sdvo_priv->is_tv) 1584 if (sdvo_priv->is_tv)
1552 intel_sdvo_get_tv_modes(connector); 1585 intel_sdvo_get_tv_modes(connector);
1586 else if (sdvo_priv->is_lvds == true)
1587 intel_sdvo_get_lvds_modes(connector);
1553 else 1588 else
1554 intel_sdvo_get_ddc_modes(connector); 1589 intel_sdvo_get_ddc_modes(connector);
1555 1590
@@ -1564,6 +1599,9 @@ static void intel_sdvo_destroy(struct drm_connector *connector)
1564 1599
1565 if (intel_output->i2c_bus) 1600 if (intel_output->i2c_bus)
1566 intel_i2c_destroy(intel_output->i2c_bus); 1601 intel_i2c_destroy(intel_output->i2c_bus);
1602 if (intel_output->ddc_bus)
1603 intel_i2c_destroy(intel_output->ddc_bus);
1604
1567 drm_sysfs_connector_remove(connector); 1605 drm_sysfs_connector_remove(connector);
1568 drm_connector_cleanup(connector); 1606 drm_connector_cleanup(connector);
1569 kfree(intel_output); 1607 kfree(intel_output);
@@ -1578,6 +1616,7 @@ static const struct drm_encoder_helper_funcs intel_sdvo_helper_funcs = {
1578}; 1616};
1579 1617
1580static const struct drm_connector_funcs intel_sdvo_connector_funcs = { 1618static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
1619 .dpms = drm_helper_connector_dpms,
1581 .save = intel_sdvo_save, 1620 .save = intel_sdvo_save,
1582 .restore = intel_sdvo_restore, 1621 .restore = intel_sdvo_restore,
1583 .detect = intel_sdvo_detect, 1622 .detect = intel_sdvo_detect,
@@ -1660,12 +1699,56 @@ intel_sdvo_get_digital_encoding_mode(struct intel_output *output)
1660 return true; 1699 return true;
1661} 1700}
1662 1701
1702static struct intel_output *
1703intel_sdvo_chan_to_intel_output(struct intel_i2c_chan *chan)
1704{
1705 struct drm_device *dev = chan->drm_dev;
1706 struct drm_connector *connector;
1707 struct intel_output *intel_output = NULL;
1708
1709 list_for_each_entry(connector,
1710 &dev->mode_config.connector_list, head) {
1711 if (to_intel_output(connector)->ddc_bus == chan) {
1712 intel_output = to_intel_output(connector);
1713 break;
1714 }
1715 }
1716 return intel_output;
1717}
1718
1719static int intel_sdvo_master_xfer(struct i2c_adapter *i2c_adap,
1720 struct i2c_msg msgs[], int num)
1721{
1722 struct intel_output *intel_output;
1723 struct intel_sdvo_priv *sdvo_priv;
1724 struct i2c_algo_bit_data *algo_data;
1725 struct i2c_algorithm *algo;
1726
1727 algo_data = (struct i2c_algo_bit_data *)i2c_adap->algo_data;
1728 intel_output =
1729 intel_sdvo_chan_to_intel_output(
1730 (struct intel_i2c_chan *)(algo_data->data));
1731 if (intel_output == NULL)
1732 return -EINVAL;
1733
1734 sdvo_priv = intel_output->dev_priv;
1735 algo = (struct i2c_algorithm *)intel_output->i2c_bus->adapter.algo;
1736
1737 intel_sdvo_set_control_bus_switch(intel_output, sdvo_priv->ddc_bus);
1738 return algo->master_xfer(i2c_adap, msgs, num);
1739}
1740
1741static struct i2c_algorithm intel_sdvo_i2c_bit_algo = {
1742 .master_xfer = intel_sdvo_master_xfer,
1743};
1744
1663bool intel_sdvo_init(struct drm_device *dev, int output_device) 1745bool intel_sdvo_init(struct drm_device *dev, int output_device)
1664{ 1746{
1665 struct drm_connector *connector; 1747 struct drm_connector *connector;
1666 struct intel_output *intel_output; 1748 struct intel_output *intel_output;
1667 struct intel_sdvo_priv *sdvo_priv; 1749 struct intel_sdvo_priv *sdvo_priv;
1668 struct intel_i2c_chan *i2cbus = NULL; 1750 struct intel_i2c_chan *i2cbus = NULL;
1751 struct intel_i2c_chan *ddcbus = NULL;
1669 int connector_type; 1752 int connector_type;
1670 u8 ch[0x40]; 1753 u8 ch[0x40];
1671 int i; 1754 int i;
@@ -1676,17 +1759,9 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
1676 return false; 1759 return false;
1677 } 1760 }
1678 1761
1679 connector = &intel_output->base;
1680
1681 drm_connector_init(dev, connector, &intel_sdvo_connector_funcs,
1682 DRM_MODE_CONNECTOR_Unknown);
1683 drm_connector_helper_add(connector, &intel_sdvo_connector_helper_funcs);
1684 sdvo_priv = (struct intel_sdvo_priv *)(intel_output + 1); 1762 sdvo_priv = (struct intel_sdvo_priv *)(intel_output + 1);
1685 intel_output->type = INTEL_OUTPUT_SDVO; 1763 intel_output->type = INTEL_OUTPUT_SDVO;
1686 1764
1687 connector->interlace_allowed = 0;
1688 connector->doublescan_allowed = 0;
1689
1690 /* setup the DDC bus. */ 1765 /* setup the DDC bus. */
1691 if (output_device == SDVOB) 1766 if (output_device == SDVOB)
1692 i2cbus = intel_i2c_create(dev, GPIOE, "SDVOCTRL_E for SDVOB"); 1767 i2cbus = intel_i2c_create(dev, GPIOE, "SDVOCTRL_E for SDVOB");
@@ -1694,7 +1769,7 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
1694 i2cbus = intel_i2c_create(dev, GPIOE, "SDVOCTRL_E for SDVOC"); 1769 i2cbus = intel_i2c_create(dev, GPIOE, "SDVOCTRL_E for SDVOC");
1695 1770
1696 if (!i2cbus) 1771 if (!i2cbus)
1697 goto err_connector; 1772 goto err_inteloutput;
1698 1773
1699 sdvo_priv->i2c_bus = i2cbus; 1774 sdvo_priv->i2c_bus = i2cbus;
1700 1775
@@ -1710,7 +1785,6 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
1710 intel_output->i2c_bus = i2cbus; 1785 intel_output->i2c_bus = i2cbus;
1711 intel_output->dev_priv = sdvo_priv; 1786 intel_output->dev_priv = sdvo_priv;
1712 1787
1713
1714 /* Read the regs to test if we can talk to the device */ 1788 /* Read the regs to test if we can talk to the device */
1715 for (i = 0; i < 0x40; i++) { 1789 for (i = 0; i < 0x40; i++) {
1716 if (!intel_sdvo_read_byte(intel_output, i, &ch[i])) { 1790 if (!intel_sdvo_read_byte(intel_output, i, &ch[i])) {
@@ -1720,6 +1794,22 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
1720 } 1794 }
1721 } 1795 }
1722 1796
1797 /* setup the DDC bus. */
1798 if (output_device == SDVOB)
1799 ddcbus = intel_i2c_create(dev, GPIOE, "SDVOB DDC BUS");
1800 else
1801 ddcbus = intel_i2c_create(dev, GPIOE, "SDVOC DDC BUS");
1802
1803 if (ddcbus == NULL)
1804 goto err_i2c;
1805
1806 intel_sdvo_i2c_bit_algo.functionality =
1807 intel_output->i2c_bus->adapter.algo->functionality;
1808 ddcbus->adapter.algo = &intel_sdvo_i2c_bit_algo;
1809 intel_output->ddc_bus = ddcbus;
1810
1811 /* In defaut case sdvo lvds is false */
1812 sdvo_priv->is_lvds = false;
1723 intel_sdvo_get_capabilities(intel_output, &sdvo_priv->caps); 1813 intel_sdvo_get_capabilities(intel_output, &sdvo_priv->caps);
1724 1814
1725 if (sdvo_priv->caps.output_flags & 1815 if (sdvo_priv->caps.output_flags &
@@ -1729,7 +1819,6 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
1729 else 1819 else
1730 sdvo_priv->controlled_output = SDVO_OUTPUT_TMDS1; 1820 sdvo_priv->controlled_output = SDVO_OUTPUT_TMDS1;
1731 1821
1732 connector->display_info.subpixel_order = SubPixelHorizontalRGB;
1733 encoder_type = DRM_MODE_ENCODER_TMDS; 1822 encoder_type = DRM_MODE_ENCODER_TMDS;
1734 connector_type = DRM_MODE_CONNECTOR_DVID; 1823 connector_type = DRM_MODE_CONNECTOR_DVID;
1735 1824
@@ -1747,7 +1836,6 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
1747 else if (sdvo_priv->caps.output_flags & SDVO_OUTPUT_SVID0) 1836 else if (sdvo_priv->caps.output_flags & SDVO_OUTPUT_SVID0)
1748 { 1837 {
1749 sdvo_priv->controlled_output = SDVO_OUTPUT_SVID0; 1838 sdvo_priv->controlled_output = SDVO_OUTPUT_SVID0;
1750 connector->display_info.subpixel_order = SubPixelHorizontalRGB;
1751 encoder_type = DRM_MODE_ENCODER_TVDAC; 1839 encoder_type = DRM_MODE_ENCODER_TVDAC;
1752 connector_type = DRM_MODE_CONNECTOR_SVIDEO; 1840 connector_type = DRM_MODE_CONNECTOR_SVIDEO;
1753 sdvo_priv->is_tv = true; 1841 sdvo_priv->is_tv = true;
@@ -1756,30 +1844,28 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
1756 else if (sdvo_priv->caps.output_flags & SDVO_OUTPUT_RGB0) 1844 else if (sdvo_priv->caps.output_flags & SDVO_OUTPUT_RGB0)
1757 { 1845 {
1758 sdvo_priv->controlled_output = SDVO_OUTPUT_RGB0; 1846 sdvo_priv->controlled_output = SDVO_OUTPUT_RGB0;
1759 connector->display_info.subpixel_order = SubPixelHorizontalRGB;
1760 encoder_type = DRM_MODE_ENCODER_DAC; 1847 encoder_type = DRM_MODE_ENCODER_DAC;
1761 connector_type = DRM_MODE_CONNECTOR_VGA; 1848 connector_type = DRM_MODE_CONNECTOR_VGA;
1762 } 1849 }
1763 else if (sdvo_priv->caps.output_flags & SDVO_OUTPUT_RGB1) 1850 else if (sdvo_priv->caps.output_flags & SDVO_OUTPUT_RGB1)
1764 { 1851 {
1765 sdvo_priv->controlled_output = SDVO_OUTPUT_RGB1; 1852 sdvo_priv->controlled_output = SDVO_OUTPUT_RGB1;
1766 connector->display_info.subpixel_order = SubPixelHorizontalRGB;
1767 encoder_type = DRM_MODE_ENCODER_DAC; 1853 encoder_type = DRM_MODE_ENCODER_DAC;
1768 connector_type = DRM_MODE_CONNECTOR_VGA; 1854 connector_type = DRM_MODE_CONNECTOR_VGA;
1769 } 1855 }
1770 else if (sdvo_priv->caps.output_flags & SDVO_OUTPUT_LVDS0) 1856 else if (sdvo_priv->caps.output_flags & SDVO_OUTPUT_LVDS0)
1771 { 1857 {
1772 sdvo_priv->controlled_output = SDVO_OUTPUT_LVDS0; 1858 sdvo_priv->controlled_output = SDVO_OUTPUT_LVDS0;
1773 connector->display_info.subpixel_order = SubPixelHorizontalRGB;
1774 encoder_type = DRM_MODE_ENCODER_LVDS; 1859 encoder_type = DRM_MODE_ENCODER_LVDS;
1775 connector_type = DRM_MODE_CONNECTOR_LVDS; 1860 connector_type = DRM_MODE_CONNECTOR_LVDS;
1861 sdvo_priv->is_lvds = true;
1776 } 1862 }
1777 else if (sdvo_priv->caps.output_flags & SDVO_OUTPUT_LVDS1) 1863 else if (sdvo_priv->caps.output_flags & SDVO_OUTPUT_LVDS1)
1778 { 1864 {
1779 sdvo_priv->controlled_output = SDVO_OUTPUT_LVDS1; 1865 sdvo_priv->controlled_output = SDVO_OUTPUT_LVDS1;
1780 connector->display_info.subpixel_order = SubPixelHorizontalRGB;
1781 encoder_type = DRM_MODE_ENCODER_LVDS; 1866 encoder_type = DRM_MODE_ENCODER_LVDS;
1782 connector_type = DRM_MODE_CONNECTOR_LVDS; 1867 connector_type = DRM_MODE_CONNECTOR_LVDS;
1868 sdvo_priv->is_lvds = true;
1783 } 1869 }
1784 else 1870 else
1785 { 1871 {
@@ -1795,9 +1881,16 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
1795 goto err_i2c; 1881 goto err_i2c;
1796 } 1882 }
1797 1883
1884 connector = &intel_output->base;
1885 drm_connector_init(dev, connector, &intel_sdvo_connector_funcs,
1886 connector_type);
1887 drm_connector_helper_add(connector, &intel_sdvo_connector_helper_funcs);
1888 connector->interlace_allowed = 0;
1889 connector->doublescan_allowed = 0;
1890 connector->display_info.subpixel_order = SubPixelHorizontalRGB;
1891
1798 drm_encoder_init(dev, &intel_output->enc, &intel_sdvo_enc_funcs, encoder_type); 1892 drm_encoder_init(dev, &intel_output->enc, &intel_sdvo_enc_funcs, encoder_type);
1799 drm_encoder_helper_add(&intel_output->enc, &intel_sdvo_helper_funcs); 1893 drm_encoder_helper_add(&intel_output->enc, &intel_sdvo_helper_funcs);
1800 connector->connector_type = connector_type;
1801 1894
1802 drm_mode_connector_attach_encoder(&intel_output->base, &intel_output->enc); 1895 drm_mode_connector_attach_encoder(&intel_output->base, &intel_output->enc);
1803 drm_sysfs_connector_add(connector); 1896 drm_sysfs_connector_add(connector);
@@ -1829,14 +1922,13 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
1829 sdvo_priv->caps.output_flags & 1922 sdvo_priv->caps.output_flags &
1830 (SDVO_OUTPUT_TMDS1 | SDVO_OUTPUT_RGB1) ? 'Y' : 'N'); 1923 (SDVO_OUTPUT_TMDS1 | SDVO_OUTPUT_RGB1) ? 'Y' : 'N');
1831 1924
1832 intel_output->ddc_bus = i2cbus;
1833
1834 return true; 1925 return true;
1835 1926
1836err_i2c: 1927err_i2c:
1928 if (ddcbus != NULL)
1929 intel_i2c_destroy(intel_output->ddc_bus);
1837 intel_i2c_destroy(intel_output->i2c_bus); 1930 intel_i2c_destroy(intel_output->i2c_bus);
1838err_connector: 1931err_inteloutput:
1839 drm_connector_cleanup(connector);
1840 kfree(intel_output); 1932 kfree(intel_output);
1841 1933
1842 return false; 1934 return false;
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index d2c32983242d..98ac0546b7bd 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1626,6 +1626,7 @@ static const struct drm_encoder_helper_funcs intel_tv_helper_funcs = {
1626}; 1626};
1627 1627
1628static const struct drm_connector_funcs intel_tv_connector_funcs = { 1628static const struct drm_connector_funcs intel_tv_connector_funcs = {
1629 .dpms = drm_helper_connector_dpms,
1629 .save = intel_tv_save, 1630 .save = intel_tv_save,
1630 .restore = intel_tv_restore, 1631 .restore = intel_tv_restore,
1631 .detect = intel_tv_detect, 1632 .detect = intel_tv_detect,
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
index 77a7a4d84650..aff90bb96488 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
+++ b/drivers/gpu/drm/radeon/radeon_cp.c
@@ -2185,9 +2185,9 @@ void radeon_commit_ring(drm_radeon_private_t *dev_priv)
2185 2185
2186 /* check if the ring is padded out to 16-dword alignment */ 2186 /* check if the ring is padded out to 16-dword alignment */
2187 2187
2188 tail_aligned = dev_priv->ring.tail & 0xf; 2188 tail_aligned = dev_priv->ring.tail & (RADEON_RING_ALIGN-1);
2189 if (tail_aligned) { 2189 if (tail_aligned) {
2190 int num_p2 = 16 - tail_aligned; 2190 int num_p2 = RADEON_RING_ALIGN - tail_aligned;
2191 2191
2192 ring = dev_priv->ring.start; 2192 ring = dev_priv->ring.start;
2193 /* pad with some CP_PACKET2 */ 2193 /* pad with some CP_PACKET2 */
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
index 8071d965f142..0c6bfc1de153 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.h
+++ b/drivers/gpu/drm/radeon/radeon_drv.h
@@ -1964,11 +1964,14 @@ do { \
1964 1964
1965#define RING_LOCALS int write, _nr, _align_nr; unsigned int mask; u32 *ring; 1965#define RING_LOCALS int write, _nr, _align_nr; unsigned int mask; u32 *ring;
1966 1966
1967#define RADEON_RING_ALIGN 16
1968
1967#define BEGIN_RING( n ) do { \ 1969#define BEGIN_RING( n ) do { \
1968 if ( RADEON_VERBOSE ) { \ 1970 if ( RADEON_VERBOSE ) { \
1969 DRM_INFO( "BEGIN_RING( %d )\n", (n)); \ 1971 DRM_INFO( "BEGIN_RING( %d )\n", (n)); \
1970 } \ 1972 } \
1971 _align_nr = (n + 0xf) & ~0xf; \ 1973 _align_nr = RADEON_RING_ALIGN - ((dev_priv->ring.tail + n) & (RADEON_RING_ALIGN-1)); \
1974 _align_nr += n; \
1972 if (dev_priv->ring.space <= (_align_nr * sizeof(u32))) { \ 1975 if (dev_priv->ring.space <= (_align_nr * sizeof(u32))) { \
1973 COMMIT_RING(); \ 1976 COMMIT_RING(); \
1974 radeon_wait_ring( dev_priv, _align_nr * sizeof(u32)); \ 1977 radeon_wait_ring( dev_priv, _align_nr * sizeof(u32)); \
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index aa1b995dd033..4d5ee2bbc62b 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -113,6 +113,11 @@
113#define USB_VENDOR_ID_BERKSHIRE 0x0c98 113#define USB_VENDOR_ID_BERKSHIRE 0x0c98
114#define USB_DEVICE_ID_BERKSHIRE_PCWD 0x1140 114#define USB_DEVICE_ID_BERKSHIRE_PCWD 0x1140
115 115
116#define USB_VENDOR_ID_CH 0x068e
117#define USB_DEVICE_ID_CH_PRO_PEDALS 0x00f2
118#define USB_DEVICE_ID_CH_COMBATSTICK 0x00f4
119#define USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE 0x00ff
120
116#define USB_VENDOR_ID_CHERRY 0x046a 121#define USB_VENDOR_ID_CHERRY 0x046a
117#define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023 122#define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023
118 123
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 900ce18dd549..ac8049b5f1e9 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -898,7 +898,7 @@ static int usbhid_parse(struct hid_device *hid)
898 goto err; 898 goto err;
899 } 899 }
900 900
901 hid->quirks = quirks; 901 hid->quirks |= quirks;
902 902
903 return 0; 903 return 0;
904err: 904err:
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 4391717d2519..d8f7423f363e 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -50,6 +50,9 @@ static const struct hid_blacklist {
50 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET }, 50 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET },
51 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET }, 51 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET },
52 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET }, 52 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET },
53 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_COMBATSTICK, HID_QUIRK_NOGET },
54 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE, HID_QUIRK_NOGET },
55 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS, HID_QUIRK_NOGET },
53 { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, 56 { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET },
54 { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, 57 { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },
55 { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET }, 58 { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET },
diff --git a/drivers/hwmon/lm78.c b/drivers/hwmon/lm78.c
index b5e3b2851698..a1787fdf5b9f 100644
--- a/drivers/hwmon/lm78.c
+++ b/drivers/hwmon/lm78.c
@@ -182,7 +182,7 @@ static struct platform_driver lm78_isa_driver = {
182 .name = "lm78", 182 .name = "lm78",
183 }, 183 },
184 .probe = lm78_isa_probe, 184 .probe = lm78_isa_probe,
185 .remove = lm78_isa_remove, 185 .remove = __devexit_p(lm78_isa_remove),
186}; 186};
187 187
188 188
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index a48c8aee0218..f1c6ca7e2852 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -467,7 +467,7 @@ config I2C_PXA_SLAVE
467 467
468config I2C_S3C2410 468config I2C_S3C2410
469 tristate "S3C2410 I2C Driver" 469 tristate "S3C2410 I2C Driver"
470 depends on ARCH_S3C2410 470 depends on ARCH_S3C2410 || ARCH_S3C64XX
471 help 471 help
472 Say Y here to include support for I2C controller in the 472 Say Y here to include support for I2C controller in the
473 Samsung S3C2410 based System-on-Chip devices. 473 Samsung S3C2410 based System-on-Chip devices.
diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c
index 3fcf78e906db..b5db8b883615 100644
--- a/drivers/i2c/busses/i2c-cpm.c
+++ b/drivers/i2c/busses/i2c-cpm.c
@@ -531,16 +531,16 @@ static int __devinit cpm_i2c_setup(struct cpm_i2c *cpm)
531 rbdf = cpm->rbase; 531 rbdf = cpm->rbase;
532 532
533 for (i = 0; i < CPM_MAXBD; i++) { 533 for (i = 0; i < CPM_MAXBD; i++) {
534 cpm->rxbuf[i] = dma_alloc_coherent( 534 cpm->rxbuf[i] = dma_alloc_coherent(&cpm->ofdev->dev,
535 NULL, CPM_MAX_READ + 1, &cpm->rxdma[i], GFP_KERNEL); 535 CPM_MAX_READ + 1,
536 &cpm->rxdma[i], GFP_KERNEL);
536 if (!cpm->rxbuf[i]) { 537 if (!cpm->rxbuf[i]) {
537 ret = -ENOMEM; 538 ret = -ENOMEM;
538 goto out_muram; 539 goto out_muram;
539 } 540 }
540 out_be32(&rbdf[i].cbd_bufaddr, ((cpm->rxdma[i] + 1) & ~1)); 541 out_be32(&rbdf[i].cbd_bufaddr, ((cpm->rxdma[i] + 1) & ~1));
541 542
542 cpm->txbuf[i] = (unsigned char *)dma_alloc_coherent( 543 cpm->txbuf[i] = (unsigned char *)dma_alloc_coherent(&cpm->ofdev->dev, CPM_MAX_READ + 1, &cpm->txdma[i], GFP_KERNEL);
543 NULL, CPM_MAX_READ + 1, &cpm->txdma[i], GFP_KERNEL);
544 if (!cpm->txbuf[i]) { 544 if (!cpm->txbuf[i]) {
545 ret = -ENOMEM; 545 ret = -ENOMEM;
546 goto out_muram; 546 goto out_muram;
@@ -585,10 +585,10 @@ static int __devinit cpm_i2c_setup(struct cpm_i2c *cpm)
585out_muram: 585out_muram:
586 for (i = 0; i < CPM_MAXBD; i++) { 586 for (i = 0; i < CPM_MAXBD; i++) {
587 if (cpm->rxbuf[i]) 587 if (cpm->rxbuf[i])
588 dma_free_coherent(NULL, CPM_MAX_READ + 1, 588 dma_free_coherent(&cpm->ofdev->dev, CPM_MAX_READ + 1,
589 cpm->rxbuf[i], cpm->rxdma[i]); 589 cpm->rxbuf[i], cpm->rxdma[i]);
590 if (cpm->txbuf[i]) 590 if (cpm->txbuf[i])
591 dma_free_coherent(NULL, CPM_MAX_READ + 1, 591 dma_free_coherent(&cpm->ofdev->dev, CPM_MAX_READ + 1,
592 cpm->txbuf[i], cpm->txdma[i]); 592 cpm->txbuf[i], cpm->txdma[i]);
593 } 593 }
594 cpm_muram_free(cpm->dp_addr); 594 cpm_muram_free(cpm->dp_addr);
@@ -619,9 +619,9 @@ static void cpm_i2c_shutdown(struct cpm_i2c *cpm)
619 619
620 /* Free all memory */ 620 /* Free all memory */
621 for (i = 0; i < CPM_MAXBD; i++) { 621 for (i = 0; i < CPM_MAXBD; i++) {
622 dma_free_coherent(NULL, CPM_MAX_READ + 1, 622 dma_free_coherent(&cpm->ofdev->dev, CPM_MAX_READ + 1,
623 cpm->rxbuf[i], cpm->rxdma[i]); 623 cpm->rxbuf[i], cpm->rxdma[i]);
624 dma_free_coherent(NULL, CPM_MAX_READ + 1, 624 dma_free_coherent(&cpm->ofdev->dev, CPM_MAX_READ + 1,
625 cpm->txbuf[i], cpm->txdma[i]); 625 cpm->txbuf[i], cpm->txdma[i]);
626 } 626 }
627 627
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 4af5c09f0e8f..dd778d7ae047 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -164,7 +164,7 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing)
164 return 0; 164 return 0;
165} 165}
166 166
167#ifdef CONFIG_PPC_52xx 167#ifdef CONFIG_PPC_MPC52xx
168static const struct mpc_i2c_divider mpc_i2c_dividers_52xx[] = { 168static const struct mpc_i2c_divider mpc_i2c_dividers_52xx[] = {
169 {20, 0x20}, {22, 0x21}, {24, 0x22}, {26, 0x23}, 169 {20, 0x20}, {22, 0x21}, {24, 0x22}, {26, 0x23},
170 {28, 0x24}, {30, 0x01}, {32, 0x25}, {34, 0x02}, 170 {28, 0x24}, {30, 0x01}, {32, 0x25}, {34, 0x02},
@@ -188,7 +188,7 @@ static const struct mpc_i2c_divider mpc_i2c_dividers_52xx[] = {
188 188
189int mpc_i2c_get_fdr_52xx(struct device_node *node, u32 clock, int prescaler) 189int mpc_i2c_get_fdr_52xx(struct device_node *node, u32 clock, int prescaler)
190{ 190{
191 const struct mpc52xx_i2c_divider *div = NULL; 191 const struct mpc_i2c_divider *div = NULL;
192 unsigned int pvr = mfspr(SPRN_PVR); 192 unsigned int pvr = mfspr(SPRN_PVR);
193 u32 divider; 193 u32 divider;
194 int i; 194 int i;
@@ -203,7 +203,7 @@ int mpc_i2c_get_fdr_52xx(struct device_node *node, u32 clock, int prescaler)
203 * We want to choose an FDR/DFSR that generates an I2C bus speed that 203 * We want to choose an FDR/DFSR that generates an I2C bus speed that
204 * is equal to or lower than the requested speed. 204 * is equal to or lower than the requested speed.
205 */ 205 */
206 for (i = 0; i < ARRAY_SIZE(mpc52xx_i2c_dividers); i++) { 206 for (i = 0; i < ARRAY_SIZE(mpc_i2c_dividers_52xx); i++) {
207 div = &mpc_i2c_dividers_52xx[i]; 207 div = &mpc_i2c_dividers_52xx[i];
208 /* Old MPC5200 rev A CPUs do not support the high bits */ 208 /* Old MPC5200 rev A CPUs do not support the high bits */
209 if (div->fdr & 0xc0 && pvr == 0x80822011) 209 if (div->fdr & 0xc0 && pvr == 0x80822011)
@@ -219,20 +219,23 @@ static void mpc_i2c_setclock_52xx(struct device_node *node,
219 struct mpc_i2c *i2c, 219 struct mpc_i2c *i2c,
220 u32 clock, u32 prescaler) 220 u32 clock, u32 prescaler)
221{ 221{
222 int fdr = mpc52xx_i2c_get_fdr(node, clock, prescaler); 222 int ret, fdr;
223
224 ret = mpc_i2c_get_fdr_52xx(node, clock, prescaler);
225 fdr = (ret >= 0) ? ret : 0x3f; /* backward compatibility */
223 226
224 if (fdr < 0)
225 fdr = 0x3f; /* backward compatibility */
226 writeb(fdr & 0xff, i2c->base + MPC_I2C_FDR); 227 writeb(fdr & 0xff, i2c->base + MPC_I2C_FDR);
227 dev_info(i2c->dev, "clock %d Hz (fdr=%d)\n", clock, fdr); 228
229 if (ret >= 0)
230 dev_info(i2c->dev, "clock %d Hz (fdr=%d)\n", clock, fdr);
228} 231}
229#else /* !CONFIG_PPC_52xx */ 232#else /* !CONFIG_PPC_MPC52xx */
230static void mpc_i2c_setclock_52xx(struct device_node *node, 233static void mpc_i2c_setclock_52xx(struct device_node *node,
231 struct mpc_i2c *i2c, 234 struct mpc_i2c *i2c,
232 u32 clock, u32 prescaler) 235 u32 clock, u32 prescaler)
233{ 236{
234} 237}
235#endif /* CONFIG_PPC_52xx*/ 238#endif /* CONFIG_PPC_MPC52xx*/
236 239
237#ifdef CONFIG_FSL_SOC 240#ifdef CONFIG_FSL_SOC
238static const struct mpc_i2c_divider mpc_i2c_dividers_8xxx[] = { 241static const struct mpc_i2c_divider mpc_i2c_dividers_8xxx[] = {
@@ -321,14 +324,17 @@ static void mpc_i2c_setclock_8xxx(struct device_node *node,
321 struct mpc_i2c *i2c, 324 struct mpc_i2c *i2c,
322 u32 clock, u32 prescaler) 325 u32 clock, u32 prescaler)
323{ 326{
324 int fdr = mpc_i2c_get_fdr_8xxx(node, clock, prescaler); 327 int ret, fdr;
328
329 ret = mpc_i2c_get_fdr_8xxx(node, clock, prescaler);
330 fdr = (ret >= 0) ? ret : 0x1031; /* backward compatibility */
325 331
326 if (fdr < 0)
327 fdr = 0x1031; /* backward compatibility */
328 writeb(fdr & 0xff, i2c->base + MPC_I2C_FDR); 332 writeb(fdr & 0xff, i2c->base + MPC_I2C_FDR);
329 writeb((fdr >> 8) & 0xff, i2c->base + MPC_I2C_DFSRR); 333 writeb((fdr >> 8) & 0xff, i2c->base + MPC_I2C_DFSRR);
330 dev_info(i2c->dev, "clock %d Hz (dfsrr=%d fdr=%d)\n", 334
331 clock, fdr >> 8, fdr & 0xff); 335 if (ret >= 0)
336 dev_info(i2c->dev, "clock %d Hz (dfsrr=%d fdr=%d)\n",
337 clock, fdr >> 8, fdr & 0xff);
332} 338}
333 339
334#else /* !CONFIG_FSL_SOC */ 340#else /* !CONFIG_FSL_SOC */
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
index c1405c8f6ba5..acc7143d9655 100644
--- a/drivers/i2c/busses/i2c-pxa.c
+++ b/drivers/i2c/busses/i2c-pxa.c
@@ -265,10 +265,10 @@ static int i2c_pxa_wait_bus_not_busy(struct pxa_i2c *i2c)
265 show_state(i2c); 265 show_state(i2c);
266 } 266 }
267 267
268 if (timeout <= 0) 268 if (timeout < 0)
269 show_state(i2c); 269 show_state(i2c);
270 270
271 return timeout <= 0 ? I2C_RETRY : 0; 271 return timeout < 0 ? I2C_RETRY : 0;
272} 272}
273 273
274static int i2c_pxa_wait_master(struct pxa_i2c *i2c) 274static int i2c_pxa_wait_master(struct pxa_i2c *i2c)
@@ -612,7 +612,7 @@ static int i2c_pxa_pio_set_master(struct pxa_i2c *i2c)
612 show_state(i2c); 612 show_state(i2c);
613 } 613 }
614 614
615 if (timeout <= 0) { 615 if (timeout < 0) {
616 show_state(i2c); 616 show_state(i2c);
617 dev_err(&i2c->adap.dev, 617 dev_err(&i2c->adap.dev,
618 "i2c_pxa: timeout waiting for bus free\n"); 618 "i2c_pxa: timeout waiting for bus free\n");
diff --git a/drivers/ide/icside.c b/drivers/ide/icside.c
index 4e16ce68b063..36da913cc553 100644
--- a/drivers/ide/icside.c
+++ b/drivers/ide/icside.c
@@ -466,7 +466,7 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)
466 struct ide_host *host; 466 struct ide_host *host;
467 unsigned int sel = 0; 467 unsigned int sel = 0;
468 int ret; 468 int ret;
469 hw_regs_t hw[2], *hws[] = { &hw[0], NULL, NULL, NULL }; 469 hw_regs_t hw[2], *hws[] = { &hw[0], &hw[1], NULL, NULL };
470 struct ide_port_info d = icside_v6_port_info; 470 struct ide_port_info d = icside_v6_port_info;
471 471
472 ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0); 472 ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 35dc38d3b2c5..6415a2e2ba87 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -696,7 +696,7 @@ void ide_timer_expiry (unsigned long data)
696 } 696 }
697 spin_lock_irq(&hwif->lock); 697 spin_lock_irq(&hwif->lock);
698 enable_irq(hwif->irq); 698 enable_irq(hwif->irq);
699 if (startstop == ide_stopped) { 699 if (startstop == ide_stopped && hwif->polling == 0) {
700 ide_unlock_port(hwif); 700 ide_unlock_port(hwif);
701 plug_device = 1; 701 plug_device = 1;
702 } 702 }
@@ -868,7 +868,7 @@ irqreturn_t ide_intr (int irq, void *dev_id)
868 * same irq as is currently being serviced here, and Linux 868 * same irq as is currently being serviced here, and Linux
869 * won't allow another of the same (on any CPU) until we return. 869 * won't allow another of the same (on any CPU) until we return.
870 */ 870 */
871 if (startstop == ide_stopped) { 871 if (startstop == ide_stopped && hwif->polling == 0) {
872 BUG_ON(hwif->handler); 872 BUG_ON(hwif->handler);
873 ide_unlock_port(hwif); 873 ide_unlock_port(hwif);
874 plug_device = 1; 874 plug_device = 1;
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
index c19a221b1e18..06fe002116ec 100644
--- a/drivers/ide/ide-iops.c
+++ b/drivers/ide/ide-iops.c
@@ -206,8 +206,6 @@ EXPORT_SYMBOL_GPL(ide_in_drive_list);
206 206
207/* 207/*
208 * Early UDMA66 devices don't set bit14 to 1, only bit13 is valid. 208 * Early UDMA66 devices don't set bit14 to 1, only bit13 is valid.
209 * We list them here and depend on the device side cable detection for them.
210 *
211 * Some optical devices with the buggy firmwares have the same problem. 209 * Some optical devices with the buggy firmwares have the same problem.
212 */ 210 */
213static const struct drive_list_entry ivb_list[] = { 211static const struct drive_list_entry ivb_list[] = {
@@ -251,10 +249,25 @@ u8 eighty_ninty_three(ide_drive_t *drive)
251 * - force bit13 (80c cable present) check also for !ivb devices 249 * - force bit13 (80c cable present) check also for !ivb devices
252 * (unless the slave device is pre-ATA3) 250 * (unless the slave device is pre-ATA3)
253 */ 251 */
254 if ((id[ATA_ID_HW_CONFIG] & 0x4000) || 252 if (id[ATA_ID_HW_CONFIG] & 0x4000)
255 (ivb && (id[ATA_ID_HW_CONFIG] & 0x2000)))
256 return 1; 253 return 1;
257 254
255 if (ivb) {
256 const char *model = (char *)&id[ATA_ID_PROD];
257
258 if (strstr(model, "TSSTcorp CDDVDW SH-S202")) {
259 /*
260 * These ATAPI devices always report 80c cable
261 * so we have to depend on the host in this case.
262 */
263 if (hwif->cbl == ATA_CBL_PATA80)
264 return 1;
265 } else {
266 /* Depend on the device side cable detection. */
267 if (id[ATA_ID_HW_CONFIG] & 0x2000)
268 return 1;
269 }
270 }
258no_80w: 271no_80w:
259 if (drive->dev_flags & IDE_DFLAG_UDMA33_WARNED) 272 if (drive->dev_flags & IDE_DFLAG_UDMA33_WARNED)
260 return 0; 273 return 0;
diff --git a/drivers/ide/ide-lib.c b/drivers/ide/ide-lib.c
index 56ff8c46c7d1..2148df836ce7 100644
--- a/drivers/ide/ide-lib.c
+++ b/drivers/ide/ide-lib.c
@@ -31,24 +31,6 @@ void ide_toggle_bounce(ide_drive_t *drive, int on)
31 blk_queue_bounce_limit(drive->queue, addr); 31 blk_queue_bounce_limit(drive->queue, addr);
32} 32}
33 33
34static void ide_dump_opcode(ide_drive_t *drive)
35{
36 struct request *rq = drive->hwif->rq;
37 struct ide_cmd *cmd = NULL;
38
39 if (!rq)
40 return;
41
42 if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE)
43 cmd = rq->special;
44
45 printk(KERN_ERR "ide: failed opcode was: ");
46 if (cmd == NULL)
47 printk(KERN_CONT "unknown\n");
48 else
49 printk(KERN_CONT "0x%02x\n", cmd->tf.command);
50}
51
52u64 ide_get_lba_addr(struct ide_cmd *cmd, int lba48) 34u64 ide_get_lba_addr(struct ide_cmd *cmd, int lba48)
53{ 35{
54 struct ide_taskfile *tf = &cmd->tf; 36 struct ide_taskfile *tf = &cmd->tf;
@@ -91,7 +73,7 @@ static void ide_dump_sector(ide_drive_t *drive)
91 73
92static void ide_dump_ata_error(ide_drive_t *drive, u8 err) 74static void ide_dump_ata_error(ide_drive_t *drive, u8 err)
93{ 75{
94 printk(KERN_ERR "{ "); 76 printk(KERN_CONT "{ ");
95 if (err & ATA_ABORTED) 77 if (err & ATA_ABORTED)
96 printk(KERN_CONT "DriveStatusError "); 78 printk(KERN_CONT "DriveStatusError ");
97 if (err & ATA_ICRC) 79 if (err & ATA_ICRC)
@@ -121,7 +103,7 @@ static void ide_dump_ata_error(ide_drive_t *drive, u8 err)
121 103
122static void ide_dump_atapi_error(ide_drive_t *drive, u8 err) 104static void ide_dump_atapi_error(ide_drive_t *drive, u8 err)
123{ 105{
124 printk(KERN_ERR "{ "); 106 printk(KERN_CONT "{ ");
125 if (err & ATAPI_ILI) 107 if (err & ATAPI_ILI)
126 printk(KERN_CONT "IllegalLengthIndication "); 108 printk(KERN_CONT "IllegalLengthIndication ");
127 if (err & ATAPI_EOM) 109 if (err & ATAPI_EOM)
@@ -179,7 +161,10 @@ u8 ide_dump_status(ide_drive_t *drive, const char *msg, u8 stat)
179 else 161 else
180 ide_dump_atapi_error(drive, err); 162 ide_dump_atapi_error(drive, err);
181 } 163 }
182 ide_dump_opcode(drive); 164
165 printk(KERN_ERR "%s: possibly failed opcode: 0x%02x\n",
166 drive->name, drive->hwif->cmd.tf.command);
167
183 return err; 168 return err;
184} 169}
185EXPORT_SYMBOL(ide_dump_status); 170EXPORT_SYMBOL(ide_dump_status);
diff --git a/drivers/ide/ide-pci-generic.c b/drivers/ide/ide-pci-generic.c
index 61111fd27130..39d4e01f5c9c 100644
--- a/drivers/ide/ide-pci-generic.c
+++ b/drivers/ide/ide-pci-generic.c
@@ -33,6 +33,16 @@ static int ide_generic_all; /* Set to claim all devices */
33module_param_named(all_generic_ide, ide_generic_all, bool, 0444); 33module_param_named(all_generic_ide, ide_generic_all, bool, 0444);
34MODULE_PARM_DESC(all_generic_ide, "IDE generic will claim all unknown PCI IDE storage controllers."); 34MODULE_PARM_DESC(all_generic_ide, "IDE generic will claim all unknown PCI IDE storage controllers.");
35 35
36static void netcell_quirkproc(ide_drive_t *drive)
37{
38 /* mark words 85-87 as valid */
39 drive->id[ATA_ID_CSF_DEFAULT] |= 0x4000;
40}
41
42static const struct ide_port_ops netcell_port_ops = {
43 .quirkproc = netcell_quirkproc,
44};
45
36#define DECLARE_GENERIC_PCI_DEV(extra_flags) \ 46#define DECLARE_GENERIC_PCI_DEV(extra_flags) \
37 { \ 47 { \
38 .name = DRV_NAME, \ 48 .name = DRV_NAME, \
@@ -74,6 +84,7 @@ static const struct ide_port_info generic_chipsets[] __devinitdata = {
74 84
75 { /* 6: Revolution */ 85 { /* 6: Revolution */
76 .name = DRV_NAME, 86 .name = DRV_NAME,
87 .port_ops = &netcell_port_ops,
77 .host_flags = IDE_HFLAG_CLEAR_SIMPLEX | 88 .host_flags = IDE_HFLAG_CLEAR_SIMPLEX |
78 IDE_HFLAG_TRUST_BIOS_FOR_DMA | 89 IDE_HFLAG_TRUST_BIOS_FOR_DMA |
79 IDE_HFLAG_OFF_BOARD, 90 IDE_HFLAG_OFF_BOARD,
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 7f264ed1141b..c895ed52b2e8 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -295,7 +295,7 @@ int ide_dev_read_id(ide_drive_t *drive, u8 cmd, u16 *id)
295 295
296 timeout = ((cmd == ATA_CMD_ID_ATA) ? WAIT_WORSTCASE : WAIT_PIDENTIFY) / 2; 296 timeout = ((cmd == ATA_CMD_ID_ATA) ? WAIT_WORSTCASE : WAIT_PIDENTIFY) / 2;
297 297
298 if (ide_busy_sleep(hwif, timeout, use_altstatus)) 298 if (ide_busy_sleep(drive, timeout, use_altstatus))
299 return 1; 299 return 1;
300 300
301 /* wait for IRQ and ATA_DRQ */ 301 /* wait for IRQ and ATA_DRQ */
@@ -316,8 +316,9 @@ int ide_dev_read_id(ide_drive_t *drive, u8 cmd, u16 *id)
316 return rc; 316 return rc;
317} 317}
318 318
319int ide_busy_sleep(ide_hwif_t *hwif, unsigned long timeout, int altstatus) 319int ide_busy_sleep(ide_drive_t *drive, unsigned long timeout, int altstatus)
320{ 320{
321 ide_hwif_t *hwif = drive->hwif;
321 u8 stat; 322 u8 stat;
322 323
323 timeout += jiffies; 324 timeout += jiffies;
@@ -330,6 +331,8 @@ int ide_busy_sleep(ide_hwif_t *hwif, unsigned long timeout, int altstatus)
330 return 0; 331 return 0;
331 } while (time_before(jiffies, timeout)); 332 } while (time_before(jiffies, timeout));
332 333
334 printk(KERN_ERR "%s: timeout in %s\n", drive->name, __func__);
335
333 return 1; /* drive timed-out */ 336 return 1; /* drive timed-out */
334} 337}
335 338
@@ -420,7 +423,7 @@ static int do_probe (ide_drive_t *drive, u8 cmd)
420 tp_ops->dev_select(drive); 423 tp_ops->dev_select(drive);
421 msleep(50); 424 msleep(50);
422 tp_ops->exec_command(hwif, ATA_CMD_DEV_RESET); 425 tp_ops->exec_command(hwif, ATA_CMD_DEV_RESET);
423 (void)ide_busy_sleep(hwif, WAIT_WORSTCASE, 0); 426 (void)ide_busy_sleep(drive, WAIT_WORSTCASE, 0);
424 rc = ide_dev_read_id(drive, cmd, id); 427 rc = ide_dev_read_id(drive, cmd, id);
425 } 428 }
426 429
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index cb942a9b580f..3a53e0834cf7 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -614,12 +614,6 @@ static ide_startstop_t ide_tape_issue_pc(ide_drive_t *drive,
614{ 614{
615 idetape_tape_t *tape = drive->driver_data; 615 idetape_tape_t *tape = drive->driver_data;
616 616
617 if (drive->pc->c[0] == REQUEST_SENSE &&
618 pc->c[0] == REQUEST_SENSE) {
619 printk(KERN_ERR "ide-tape: possible ide-tape.c bug - "
620 "Two request sense in serial were issued\n");
621 }
622
623 if (drive->failed_pc == NULL && pc->c[0] != REQUEST_SENSE) 617 if (drive->failed_pc == NULL && pc->c[0] != REQUEST_SENSE)
624 drive->failed_pc = pc; 618 drive->failed_pc = pc;
625 619
diff --git a/drivers/ide/pdc202xx_old.c b/drivers/ide/pdc202xx_old.c
index 248a54bd2386..b3bc96f930a6 100644
--- a/drivers/ide/pdc202xx_old.c
+++ b/drivers/ide/pdc202xx_old.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 1998-2002 Andre Hedrick <andre@linux-ide.org> 2 * Copyright (C) 1998-2002 Andre Hedrick <andre@linux-ide.org>
3 * Copyright (C) 2006-2007 MontaVista Software, Inc. 3 * Copyright (C) 2006-2007, 2009 MontaVista Software, Inc.
4 * Copyright (C) 2007 Bartlomiej Zolnierkiewicz 4 * Copyright (C) 2007 Bartlomiej Zolnierkiewicz
5 * 5 *
6 * Portions Copyright (C) 1999 Promise Technology, Inc. 6 * Portions Copyright (C) 1999 Promise Technology, Inc.
@@ -227,28 +227,19 @@ somebody_else:
227 return (dma_stat & 4) == 4; /* return 1 if INTR asserted */ 227 return (dma_stat & 4) == 4; /* return 1 if INTR asserted */
228} 228}
229 229
230static void pdc202xx_reset_host (ide_hwif_t *hwif) 230static void pdc202xx_reset(ide_drive_t *drive)
231{ 231{
232 ide_hwif_t *hwif = drive->hwif;
232 unsigned long high_16 = hwif->extra_base - 16; 233 unsigned long high_16 = hwif->extra_base - 16;
233 u8 udma_speed_flag = inb(high_16 | 0x001f); 234 u8 udma_speed_flag = inb(high_16 | 0x001f);
234 235
236 printk(KERN_WARNING "PDC202xx: software reset...\n");
237
235 outb(udma_speed_flag | 0x10, high_16 | 0x001f); 238 outb(udma_speed_flag | 0x10, high_16 | 0x001f);
236 mdelay(100); 239 mdelay(100);
237 outb(udma_speed_flag & ~0x10, high_16 | 0x001f); 240 outb(udma_speed_flag & ~0x10, high_16 | 0x001f);
238 mdelay(2000); /* 2 seconds ?! */ 241 mdelay(2000); /* 2 seconds ?! */
239 242
240 printk(KERN_WARNING "PDC202XX: %s channel reset.\n",
241 hwif->channel ? "Secondary" : "Primary");
242}
243
244static void pdc202xx_reset (ide_drive_t *drive)
245{
246 ide_hwif_t *hwif = drive->hwif;
247 ide_hwif_t *mate = hwif->mate;
248
249 pdc202xx_reset_host(hwif);
250 pdc202xx_reset_host(mate);
251
252 ide_set_max_pio(drive); 243 ide_set_max_pio(drive);
253} 244}
254 245
@@ -328,9 +319,8 @@ static const struct ide_dma_ops pdc20246_dma_ops = {
328 .dma_start = ide_dma_start, 319 .dma_start = ide_dma_start,
329 .dma_end = ide_dma_end, 320 .dma_end = ide_dma_end,
330 .dma_test_irq = pdc202xx_dma_test_irq, 321 .dma_test_irq = pdc202xx_dma_test_irq,
331 .dma_lost_irq = pdc202xx_dma_lost_irq, 322 .dma_lost_irq = ide_dma_lost_irq,
332 .dma_timer_expiry = ide_dma_sff_timer_expiry, 323 .dma_timer_expiry = ide_dma_sff_timer_expiry,
333 .dma_clear = pdc202xx_reset,
334 .dma_sff_read_status = ide_dma_sff_read_status, 324 .dma_sff_read_status = ide_dma_sff_read_status,
335}; 325};
336 326
diff --git a/drivers/ide/piix.c b/drivers/ide/piix.c
index 2aa699933064..69860dea3820 100644
--- a/drivers/ide/piix.c
+++ b/drivers/ide/piix.c
@@ -263,6 +263,7 @@ static const struct ich_laptop ich_laptop[] = {
263 { 0x24CA, 0x1025, 0x003d }, /* ICH4 on ACER TM290 */ 263 { 0x24CA, 0x1025, 0x003d }, /* ICH4 on ACER TM290 */
264 { 0x266F, 0x1025, 0x0066 }, /* ICH6 on ACER Aspire 1694WLMi */ 264 { 0x266F, 0x1025, 0x0066 }, /* ICH6 on ACER Aspire 1694WLMi */
265 { 0x2653, 0x1043, 0x82D8 }, /* ICH6M on Asus Eee 701 */ 265 { 0x2653, 0x1043, 0x82D8 }, /* ICH6M on Asus Eee 701 */
266 { 0x27df, 0x104d, 0x900e }, /* ICH7 on Sony TZ-90 */
266 /* end marker */ 267 /* end marker */
267 { 0, } 268 { 0, }
268}; 269};
diff --git a/drivers/ide/via82cxxx.c b/drivers/ide/via82cxxx.c
index 3ff7231e4858..028de26a25fe 100644
--- a/drivers/ide/via82cxxx.c
+++ b/drivers/ide/via82cxxx.c
@@ -67,6 +67,7 @@ static struct via_isa_bridge {
67 u8 udma_mask; 67 u8 udma_mask;
68 u8 flags; 68 u8 flags;
69} via_isa_bridges[] = { 69} via_isa_bridges[] = {
70 { "vx855", PCI_DEVICE_ID_VIA_VX855, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
70 { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, 71 { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
71 { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, 72 { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
72 { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, 73 { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
@@ -474,6 +475,7 @@ static const struct pci_device_id via_pci_tbl[] = {
474 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_82C576_1), 0 }, 475 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_82C576_1), 0 },
475 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_82C586_1), 0 }, 476 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_82C586_1), 0 },
476 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_CX700_IDE), 0 }, 477 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_CX700_IDE), 0 },
478 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_VX855_IDE), 0 },
477 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_6410), 1 }, 479 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_6410), 1 },
478 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_SATA_EIDE), 1 }, 480 { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_SATA_EIDE), 1 },
479 { 0, }, 481 { 0, },
diff --git a/drivers/idle/i7300_idle.c b/drivers/idle/i7300_idle.c
index bf740394d704..949c97ff57e3 100644
--- a/drivers/idle/i7300_idle.c
+++ b/drivers/idle/i7300_idle.c
@@ -41,6 +41,10 @@ static int debug;
41module_param_named(debug, debug, uint, 0644); 41module_param_named(debug, debug, uint, 0644);
42MODULE_PARM_DESC(debug, "Enable debug printks in this driver"); 42MODULE_PARM_DESC(debug, "Enable debug printks in this driver");
43 43
44static int forceload;
45module_param_named(forceload, forceload, uint, 0644);
46MODULE_PARM_DESC(debug, "Enable driver testing on unvalidated i5000");
47
44#define dprintk(fmt, arg...) \ 48#define dprintk(fmt, arg...) \
45 do { if (debug) printk(KERN_INFO I7300_PRINT fmt, ##arg); } while (0) 49 do { if (debug) printk(KERN_INFO I7300_PRINT fmt, ##arg); } while (0)
46 50
@@ -552,7 +556,7 @@ static int __init i7300_idle_init(void)
552 cpus_clear(idle_cpumask); 556 cpus_clear(idle_cpumask);
553 total_us = 0; 557 total_us = 0;
554 558
555 if (i7300_idle_platform_probe(&fbd_dev, &ioat_dev)) 559 if (i7300_idle_platform_probe(&fbd_dev, &ioat_dev, forceload))
556 return -ENODEV; 560 return -ENODEV;
557 561
558 if (i7300_idle_thrt_save()) 562 if (i7300_idle_thrt_save())
diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.c b/drivers/infiniband/hw/cxgb3/cxio_hal.c
index 8d71086f5a1c..62f9cf2f94ec 100644
--- a/drivers/infiniband/hw/cxgb3/cxio_hal.c
+++ b/drivers/infiniband/hw/cxgb3/cxio_hal.c
@@ -410,6 +410,7 @@ int cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count)
410 ptr = wq->sq_rptr + count; 410 ptr = wq->sq_rptr + count;
411 sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2); 411 sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2);
412 while (ptr != wq->sq_wptr) { 412 while (ptr != wq->sq_wptr) {
413 sqp->signaled = 0;
413 insert_sq_cqe(wq, cq, sqp); 414 insert_sq_cqe(wq, cq, sqp);
414 ptr++; 415 ptr++;
415 sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2); 416 sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2);
diff --git a/drivers/infiniband/hw/ipath/ipath_fs.c b/drivers/infiniband/hw/ipath/ipath_fs.c
index 8dc2bb781605..b3684060465e 100644
--- a/drivers/infiniband/hw/ipath/ipath_fs.c
+++ b/drivers/infiniband/hw/ipath/ipath_fs.c
@@ -347,7 +347,7 @@ static int ipathfs_fill_super(struct super_block *sb, void *data,
347 spin_unlock_irqrestore(&ipath_devs_lock, flags); 347 spin_unlock_irqrestore(&ipath_devs_lock, flags);
348 ret = create_device_files(sb, dd); 348 ret = create_device_files(sb, dd);
349 if (ret) { 349 if (ret) {
350 deactivate_super(sb); 350 deactivate_locked_super(sb);
351 goto bail; 351 goto bail;
352 } 352 }
353 spin_lock_irqsave(&ipath_devs_lock, flags); 353 spin_lock_irqsave(&ipath_devs_lock, flags);
diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
index 9974e886b8de..8a7dd6795fa0 100644
--- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
+++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
@@ -86,6 +86,7 @@ struct mlx4_ib_mr {
86 86
87struct mlx4_ib_fast_reg_page_list { 87struct mlx4_ib_fast_reg_page_list {
88 struct ib_fast_reg_page_list ibfrpl; 88 struct ib_fast_reg_page_list ibfrpl;
89 __be64 *mapped_page_list;
89 dma_addr_t map; 90 dma_addr_t map;
90}; 91};
91 92
diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c
index 8e4d26d56a95..8f3666b20ea4 100644
--- a/drivers/infiniband/hw/mlx4/mr.c
+++ b/drivers/infiniband/hw/mlx4/mr.c
@@ -231,7 +231,11 @@ struct ib_fast_reg_page_list *mlx4_ib_alloc_fast_reg_page_list(struct ib_device
231 if (!mfrpl) 231 if (!mfrpl)
232 return ERR_PTR(-ENOMEM); 232 return ERR_PTR(-ENOMEM);
233 233
234 mfrpl->ibfrpl.page_list = dma_alloc_coherent(&dev->dev->pdev->dev, 234 mfrpl->ibfrpl.page_list = kmalloc(size, GFP_KERNEL);
235 if (!mfrpl->ibfrpl.page_list)
236 goto err_free;
237
238 mfrpl->mapped_page_list = dma_alloc_coherent(&dev->dev->pdev->dev,
235 size, &mfrpl->map, 239 size, &mfrpl->map,
236 GFP_KERNEL); 240 GFP_KERNEL);
237 if (!mfrpl->ibfrpl.page_list) 241 if (!mfrpl->ibfrpl.page_list)
@@ -242,6 +246,7 @@ struct ib_fast_reg_page_list *mlx4_ib_alloc_fast_reg_page_list(struct ib_device
242 return &mfrpl->ibfrpl; 246 return &mfrpl->ibfrpl;
243 247
244err_free: 248err_free:
249 kfree(mfrpl->ibfrpl.page_list);
245 kfree(mfrpl); 250 kfree(mfrpl);
246 return ERR_PTR(-ENOMEM); 251 return ERR_PTR(-ENOMEM);
247} 252}
@@ -252,8 +257,9 @@ void mlx4_ib_free_fast_reg_page_list(struct ib_fast_reg_page_list *page_list)
252 struct mlx4_ib_fast_reg_page_list *mfrpl = to_mfrpl(page_list); 257 struct mlx4_ib_fast_reg_page_list *mfrpl = to_mfrpl(page_list);
253 int size = page_list->max_page_list_len * sizeof (u64); 258 int size = page_list->max_page_list_len * sizeof (u64);
254 259
255 dma_free_coherent(&dev->dev->pdev->dev, size, page_list->page_list, 260 dma_free_coherent(&dev->dev->pdev->dev, size, mfrpl->mapped_page_list,
256 mfrpl->map); 261 mfrpl->map);
262 kfree(mfrpl->ibfrpl.page_list);
257 kfree(mfrpl); 263 kfree(mfrpl);
258} 264}
259 265
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index f385a24d31d2..20724aee76f4 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -1365,7 +1365,7 @@ static void set_fmr_seg(struct mlx4_wqe_fmr_seg *fseg, struct ib_send_wr *wr)
1365 int i; 1365 int i;
1366 1366
1367 for (i = 0; i < wr->wr.fast_reg.page_list_len; ++i) 1367 for (i = 0; i < wr->wr.fast_reg.page_list_len; ++i)
1368 wr->wr.fast_reg.page_list->page_list[i] = 1368 mfrpl->mapped_page_list[i] =
1369 cpu_to_be64(wr->wr.fast_reg.page_list->page_list[i] | 1369 cpu_to_be64(wr->wr.fast_reg.page_list->page_list[i] |
1370 MLX4_MTT_FLAG_PRESENT); 1370 MLX4_MTT_FLAG_PRESENT);
1371 1371
diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c
index bc4e40f3ede7..2d1415e16834 100644
--- a/drivers/input/ff-memless.c
+++ b/drivers/input/ff-memless.c
@@ -226,7 +226,7 @@ static int get_compatible_type(struct ff_device *ff, int effect_type)
226 */ 226 */
227static void ml_combine_effects(struct ff_effect *effect, 227static void ml_combine_effects(struct ff_effect *effect,
228 struct ml_effect_state *state, 228 struct ml_effect_state *state,
229 int gain) 229 unsigned int gain)
230{ 230{
231 struct ff_effect *new = state->effect; 231 struct ff_effect *new = state->effect;
232 unsigned int strong, weak, i; 232 unsigned int strong, weak, i;
diff --git a/drivers/input/input.c b/drivers/input/input.c
index e54e002665b0..5d445f48789b 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -42,6 +42,7 @@ static unsigned int input_abs_bypass_init_data[] __initdata = {
42 ABS_MT_POSITION_Y, 42 ABS_MT_POSITION_Y,
43 ABS_MT_TOOL_TYPE, 43 ABS_MT_TOOL_TYPE,
44 ABS_MT_BLOB_ID, 44 ABS_MT_BLOB_ID,
45 ABS_MT_TRACKING_ID,
45 0 46 0
46}; 47};
47static unsigned long input_abs_bypass[BITS_TO_LONGS(ABS_CNT)]; 48static unsigned long input_abs_bypass[BITS_TO_LONGS(ABS_CNT)];
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c
index 15bb41195bea..0e12f89276a3 100644
--- a/drivers/input/joydev.c
+++ b/drivers/input/joydev.c
@@ -843,7 +843,13 @@ static const struct input_device_id joydev_blacklist[] = {
843 INPUT_DEVICE_ID_MATCH_KEYBIT, 843 INPUT_DEVICE_ID_MATCH_KEYBIT,
844 .evbit = { BIT_MASK(EV_KEY) }, 844 .evbit = { BIT_MASK(EV_KEY) },
845 .keybit = { [BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH) }, 845 .keybit = { [BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH) },
846 }, /* Avoid itouchpads, touchscreens and tablets */ 846 }, /* Avoid itouchpads and touchscreens */
847 {
848 .flags = INPUT_DEVICE_ID_MATCH_EVBIT |
849 INPUT_DEVICE_ID_MATCH_KEYBIT,
850 .evbit = { BIT_MASK(EV_KEY) },
851 .keybit = { [BIT_WORD(BTN_DIGI)] = BIT_MASK(BTN_DIGI) },
852 }, /* Avoid tablets, digitisers and similar devices */
847 { } /* Terminating entry */ 853 { } /* Terminating entry */
848}; 854};
849 855
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index 444dec07e5d8..df3f8aa68115 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -895,6 +895,13 @@ static unsigned int atkbd_amilo_pa1510_forced_release_keys[] = {
895}; 895};
896 896
897/* 897/*
898 * Amilo Xi 3650 key release for light touch bar not working
899 */
900static unsigned int atkbd_amilo_xi3650_forced_release_keys[] = {
901 0x67, 0xed, 0x90, 0xa2, 0x99, 0xa4, 0xae, 0xb0, -1U
902};
903
904/*
898 * atkbd_set_keycode_table() initializes keyboard's keycode table 905 * atkbd_set_keycode_table() initializes keyboard's keycode table
899 * according to the selected scancode set 906 * according to the selected scancode set
900 */ 907 */
@@ -1560,6 +1567,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1560 .callback = atkbd_setup_forced_release, 1567 .callback = atkbd_setup_forced_release,
1561 .driver_data = atkbd_amilo_pa1510_forced_release_keys, 1568 .driver_data = atkbd_amilo_pa1510_forced_release_keys,
1562 }, 1569 },
1570 {
1571 .ident = "Fujitsu Amilo Xi 3650",
1572 .matches = {
1573 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
1574 DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xi 3650"),
1575 },
1576 .callback = atkbd_setup_forced_release,
1577 .driver_data = atkbd_amilo_xi3650_forced_release_keys,
1578 },
1563 { } 1579 { }
1564}; 1580};
1565 1581
diff --git a/drivers/input/serio/ambakmi.c b/drivers/input/serio/ambakmi.c
index e29cdc13a199..a28c06d686e1 100644
--- a/drivers/input/serio/ambakmi.c
+++ b/drivers/input/serio/ambakmi.c
@@ -107,7 +107,7 @@ static void amba_kmi_close(struct serio *io)
107 clk_disable(kmi->clk); 107 clk_disable(kmi->clk);
108} 108}
109 109
110static int amba_kmi_probe(struct amba_device *dev, void *id) 110static int amba_kmi_probe(struct amba_device *dev, struct amba_id *id)
111{ 111{
112 struct amba_kmi_port *kmi; 112 struct amba_kmi_port *kmi;
113 struct serio *io; 113 struct serio *io;
diff --git a/drivers/input/serio/libps2.c b/drivers/input/serio/libps2.c
index 67248c31e19a..be5bbbb8ae4e 100644
--- a/drivers/input/serio/libps2.c
+++ b/drivers/input/serio/libps2.c
@@ -210,7 +210,7 @@ int ps2_command(struct ps2dev *ps2dev, unsigned char *param, int command)
210 timeout = wait_event_timeout(ps2dev->wait, 210 timeout = wait_event_timeout(ps2dev->wait,
211 !(ps2dev->flags & PS2_FLAG_CMD1), timeout); 211 !(ps2dev->flags & PS2_FLAG_CMD1), timeout);
212 212
213 if (ps2dev->cmdcnt && timeout > 0) { 213 if (ps2dev->cmdcnt && !(ps2dev->flags & PS2_FLAG_CMD1)) {
214 214
215 timeout = ps2_adjust_timeout(ps2dev, command, timeout); 215 timeout = ps2_adjust_timeout(ps2dev, command, timeout);
216 wait_event_timeout(ps2dev->wait, 216 wait_event_timeout(ps2dev->wait,
diff --git a/drivers/input/touchscreen/tsc2007.c b/drivers/input/touchscreen/tsc2007.c
index edd4f64d1f43..880f58c6a7c4 100644
--- a/drivers/input/touchscreen/tsc2007.c
+++ b/drivers/input/touchscreen/tsc2007.c
@@ -200,8 +200,9 @@ static int tsc2007_read_values(struct tsc2007 *tsc)
200static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle) 200static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle)
201{ 201{
202 struct tsc2007 *ts = container_of(handle, struct tsc2007, timer); 202 struct tsc2007 *ts = container_of(handle, struct tsc2007, timer);
203 unsigned long flags;
203 204
204 spin_lock_irq(&ts->lock); 205 spin_lock_irqsave(&ts->lock, flags);
205 206
206 if (unlikely(!ts->get_pendown_state() && ts->pendown)) { 207 if (unlikely(!ts->get_pendown_state() && ts->pendown)) {
207 struct input_dev *input = ts->input; 208 struct input_dev *input = ts->input;
@@ -222,7 +223,7 @@ static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle)
222 tsc2007_send_event(ts); 223 tsc2007_send_event(ts);
223 } 224 }
224 225
225 spin_unlock_irq(&ts->lock); 226 spin_unlock_irqrestore(&ts->lock, flags);
226 227
227 return HRTIMER_NORESTART; 228 return HRTIMER_NORESTART;
228} 229}
diff --git a/drivers/input/touchscreen/ucb1400_ts.c b/drivers/input/touchscreen/ucb1400_ts.c
index f100c7f4c1db..6954f5500108 100644
--- a/drivers/input/touchscreen/ucb1400_ts.c
+++ b/drivers/input/touchscreen/ucb1400_ts.c
@@ -419,7 +419,7 @@ static int ucb1400_ts_remove(struct platform_device *dev)
419#ifdef CONFIG_PM 419#ifdef CONFIG_PM
420static int ucb1400_ts_resume(struct platform_device *dev) 420static int ucb1400_ts_resume(struct platform_device *dev)
421{ 421{
422 struct ucb1400_ts *ucb = platform_get_drvdata(dev); 422 struct ucb1400_ts *ucb = dev->dev.platform_data;
423 423
424 if (ucb->ts_task) { 424 if (ucb->ts_task) {
425 /* 425 /*
diff --git a/drivers/isdn/capi/capifs.c b/drivers/isdn/capi/capifs.c
index b129409925af..bff72d81f263 100644
--- a/drivers/isdn/capi/capifs.c
+++ b/drivers/isdn/capi/capifs.c
@@ -75,15 +75,17 @@ static int capifs_remount(struct super_block *s, int *flags, char *data)
75 } 75 }
76 } 76 }
77 77
78 kfree(s->s_options); 78 mutex_lock(&s->s_root->d_inode->i_mutex);
79 s->s_options = new_opt;
80 79
80 replace_mount_options(s, new_opt);
81 config.setuid = setuid; 81 config.setuid = setuid;
82 config.setgid = setgid; 82 config.setgid = setgid;
83 config.uid = uid; 83 config.uid = uid;
84 config.gid = gid; 84 config.gid = gid;
85 config.mode = mode; 85 config.mode = mode;
86 86
87 mutex_unlock(&s->s_root->d_inode->i_mutex);
88
87 return 0; 89 return 0;
88} 90}
89 91
@@ -154,13 +156,16 @@ void capifs_new_ncci(unsigned int number, dev_t device)
154 if (!inode) 156 if (!inode)
155 return; 157 return;
156 inode->i_ino = number+2; 158 inode->i_ino = number+2;
159
160 dentry = get_node(number);
161
162 /* config contents is protected by root's i_mutex */
157 inode->i_uid = config.setuid ? config.uid : current_fsuid(); 163 inode->i_uid = config.setuid ? config.uid : current_fsuid();
158 inode->i_gid = config.setgid ? config.gid : current_fsgid(); 164 inode->i_gid = config.setgid ? config.gid : current_fsgid();
159 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; 165 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
160 init_special_inode(inode, S_IFCHR|config.mode, device); 166 init_special_inode(inode, S_IFCHR|config.mode, device);
161 //inode->i_op = &capifs_file_inode_operations; 167 //inode->i_op = &capifs_file_inode_operations;
162 168
163 dentry = get_node(number);
164 if (!IS_ERR(dentry) && !dentry->d_inode) 169 if (!IS_ERR(dentry) && !dentry->d_inode)
165 d_instantiate(dentry, inode); 170 d_instantiate(dentry, inode);
166 mutex_unlock(&capifs_root->d_inode->i_mutex); 171 mutex_unlock(&capifs_root->d_inode->i_mutex);
diff --git a/drivers/isdn/gigaset/isocdata.c b/drivers/isdn/gigaset/isocdata.c
index b171e75cb52e..29808c4fb1cb 100644
--- a/drivers/isdn/gigaset/isocdata.c
+++ b/drivers/isdn/gigaset/isocdata.c
@@ -175,7 +175,7 @@ int gigaset_isowbuf_getbytes(struct isowbuf_t *iwb, int size)
175 return -EINVAL; 175 return -EINVAL;
176 } 176 }
177 src = iwb->read; 177 src = iwb->read;
178 if (unlikely(limit > BAS_OUTBUFSIZE + BAS_OUTBUFPAD || 178 if (unlikely(limit >= BAS_OUTBUFSIZE + BAS_OUTBUFPAD ||
179 (read < src && limit >= src))) { 179 (read < src && limit >= src))) {
180 pr_err("isoc write buffer frame reservation violated\n"); 180 pr_err("isoc write buffer frame reservation violated\n");
181 return -EFAULT; 181 return -EFAULT;
diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
index 1a83910f674f..eaf722fe309a 100644
--- a/drivers/lguest/x86/core.c
+++ b/drivers/lguest/x86/core.c
@@ -358,6 +358,16 @@ void lguest_arch_handle_trap(struct lg_cpu *cpu)
358 if (emulate_insn(cpu)) 358 if (emulate_insn(cpu))
359 return; 359 return;
360 } 360 }
361 /* If KVM is active, the vmcall instruction triggers a
362 * General Protection Fault. Normally it triggers an
363 * invalid opcode fault (6): */
364 case 6:
365 /* We need to check if ring == GUEST_PL and
366 * faulting instruction == vmcall. */
367 if (is_hypercall(cpu)) {
368 rewrite_hypercall(cpu);
369 return;
370 }
361 break; 371 break;
362 case 14: /* We've intercepted a Page Fault. */ 372 case 14: /* We've intercepted a Page Fault. */
363 /* The Guest accessed a virtual address that wasn't mapped. 373 /* The Guest accessed a virtual address that wasn't mapped.
@@ -403,15 +413,6 @@ void lguest_arch_handle_trap(struct lg_cpu *cpu)
403 * up the pointer now to indicate a hypercall is pending. */ 413 * up the pointer now to indicate a hypercall is pending. */
404 cpu->hcall = (struct hcall_args *)cpu->regs; 414 cpu->hcall = (struct hcall_args *)cpu->regs;
405 return; 415 return;
406 case 6:
407 /* kvm hypercalls trigger an invalid opcode fault (6).
408 * We need to check if ring == GUEST_PL and
409 * faulting instruction == vmcall. */
410 if (is_hypercall(cpu)) {
411 rewrite_hypercall(cpu);
412 return;
413 }
414 break;
415 } 416 }
416 417
417 /* We didn't handle the trap, so it needs to go to the Guest. */ 418 /* We didn't handle the trap, so it needs to go to the Guest. */
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 47c68bc75a17..56df1cee8fb3 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -1097,14 +1097,12 @@ void bitmap_daemon_work(struct bitmap *bitmap)
1097 } 1097 }
1098 bitmap->allclean = 1; 1098 bitmap->allclean = 1;
1099 1099
1100 spin_lock_irqsave(&bitmap->lock, flags);
1100 for (j = 0; j < bitmap->chunks; j++) { 1101 for (j = 0; j < bitmap->chunks; j++) {
1101 bitmap_counter_t *bmc; 1102 bitmap_counter_t *bmc;
1102 spin_lock_irqsave(&bitmap->lock, flags); 1103 if (!bitmap->filemap)
1103 if (!bitmap->filemap) {
1104 /* error or shutdown */ 1104 /* error or shutdown */
1105 spin_unlock_irqrestore(&bitmap->lock, flags);
1106 break; 1105 break;
1107 }
1108 1106
1109 page = filemap_get_page(bitmap, j); 1107 page = filemap_get_page(bitmap, j);
1110 1108
@@ -1121,6 +1119,8 @@ void bitmap_daemon_work(struct bitmap *bitmap)
1121 write_page(bitmap, page, 0); 1119 write_page(bitmap, page, 0);
1122 bitmap->allclean = 0; 1120 bitmap->allclean = 0;
1123 } 1121 }
1122 spin_lock_irqsave(&bitmap->lock, flags);
1123 j |= (PAGE_BITS - 1);
1124 continue; 1124 continue;
1125 } 1125 }
1126 1126
@@ -1181,9 +1181,10 @@ void bitmap_daemon_work(struct bitmap *bitmap)
1181 ext2_clear_bit(file_page_offset(j), paddr); 1181 ext2_clear_bit(file_page_offset(j), paddr);
1182 kunmap_atomic(paddr, KM_USER0); 1182 kunmap_atomic(paddr, KM_USER0);
1183 } 1183 }
1184 } 1184 } else
1185 spin_unlock_irqrestore(&bitmap->lock, flags); 1185 j |= PAGE_COUNTER_MASK;
1186 } 1186 }
1187 spin_unlock_irqrestore(&bitmap->lock, flags);
1187 1188
1188 /* now sync the final page */ 1189 /* now sync the final page */
1189 if (lastpage != NULL) { 1190 if (lastpage != NULL) {
diff --git a/drivers/md/md.c b/drivers/md/md.c
index fccc8343a250..641b211fe3fe 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -1375,6 +1375,9 @@ static void super_1_sync(mddev_t *mddev, mdk_rdev_t *rdev)
1375 1375
1376 sb->raid_disks = cpu_to_le32(mddev->raid_disks); 1376 sb->raid_disks = cpu_to_le32(mddev->raid_disks);
1377 sb->size = cpu_to_le64(mddev->dev_sectors); 1377 sb->size = cpu_to_le64(mddev->dev_sectors);
1378 sb->chunksize = cpu_to_le32(mddev->chunk_size >> 9);
1379 sb->level = cpu_to_le32(mddev->level);
1380 sb->layout = cpu_to_le32(mddev->layout);
1378 1381
1379 if (mddev->bitmap && mddev->bitmap_file == NULL) { 1382 if (mddev->bitmap && mddev->bitmap_file == NULL) {
1380 sb->bitmap_offset = cpu_to_le32((__u32)mddev->bitmap_offset); 1383 sb->bitmap_offset = cpu_to_le32((__u32)mddev->bitmap_offset);
@@ -3303,7 +3306,9 @@ static ssize_t
3303action_show(mddev_t *mddev, char *page) 3306action_show(mddev_t *mddev, char *page)
3304{ 3307{
3305 char *type = "idle"; 3308 char *type = "idle";
3306 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || 3309 if (test_bit(MD_RECOVERY_FROZEN, &mddev->recovery))
3310 type = "frozen";
3311 else if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) ||
3307 (!mddev->ro && test_bit(MD_RECOVERY_NEEDED, &mddev->recovery))) { 3312 (!mddev->ro && test_bit(MD_RECOVERY_NEEDED, &mddev->recovery))) {
3308 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) 3313 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery))
3309 type = "reshape"; 3314 type = "reshape";
@@ -3326,7 +3331,12 @@ action_store(mddev_t *mddev, const char *page, size_t len)
3326 if (!mddev->pers || !mddev->pers->sync_request) 3331 if (!mddev->pers || !mddev->pers->sync_request)
3327 return -EINVAL; 3332 return -EINVAL;
3328 3333
3329 if (cmd_match(page, "idle")) { 3334 if (cmd_match(page, "frozen"))
3335 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
3336 else
3337 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
3338
3339 if (cmd_match(page, "idle") || cmd_match(page, "frozen")) {
3330 if (mddev->sync_thread) { 3340 if (mddev->sync_thread) {
3331 set_bit(MD_RECOVERY_INTR, &mddev->recovery); 3341 set_bit(MD_RECOVERY_INTR, &mddev->recovery);
3332 md_unregister_thread(mddev->sync_thread); 3342 md_unregister_thread(mddev->sync_thread);
@@ -3680,7 +3690,7 @@ array_size_store(mddev_t *mddev, const char *buf, size_t len)
3680 if (strict_blocks_to_sectors(buf, &sectors) < 0) 3690 if (strict_blocks_to_sectors(buf, &sectors) < 0)
3681 return -EINVAL; 3691 return -EINVAL;
3682 if (mddev->pers && mddev->pers->size(mddev, 0, 0) < sectors) 3692 if (mddev->pers && mddev->pers->size(mddev, 0, 0) < sectors)
3683 return -EINVAL; 3693 return -E2BIG;
3684 3694
3685 mddev->external_size = 1; 3695 mddev->external_size = 1;
3686 } 3696 }
@@ -5557,7 +5567,7 @@ static struct block_device_operations md_fops =
5557 .owner = THIS_MODULE, 5567 .owner = THIS_MODULE,
5558 .open = md_open, 5568 .open = md_open,
5559 .release = md_release, 5569 .release = md_release,
5560 .locked_ioctl = md_ioctl, 5570 .ioctl = md_ioctl,
5561 .getgeo = md_getgeo, 5571 .getgeo = md_getgeo,
5562 .media_changed = md_media_changed, 5572 .media_changed = md_media_changed,
5563 .revalidate_disk= md_revalidate, 5573 .revalidate_disk= md_revalidate,
@@ -6352,12 +6362,13 @@ void md_do_sync(mddev_t *mddev)
6352 6362
6353 skipped = 0; 6363 skipped = 0;
6354 6364
6355 if ((mddev->curr_resync > mddev->curr_resync_completed && 6365 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) &&
6356 (mddev->curr_resync - mddev->curr_resync_completed) 6366 ((mddev->curr_resync > mddev->curr_resync_completed &&
6357 > (max_sectors >> 4)) || 6367 (mddev->curr_resync - mddev->curr_resync_completed)
6358 (j - mddev->curr_resync_completed)*2 6368 > (max_sectors >> 4)) ||
6359 >= mddev->resync_max - mddev->curr_resync_completed 6369 (j - mddev->curr_resync_completed)*2
6360 ) { 6370 >= mddev->resync_max - mddev->curr_resync_completed
6371 )) {
6361 /* time to update curr_resync_completed */ 6372 /* time to update curr_resync_completed */
6362 blk_unplug(mddev->queue); 6373 blk_unplug(mddev->queue);
6363 wait_event(mddev->recovery_wait, 6374 wait_event(mddev->recovery_wait,
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 4616bc3a6e71..bb37fb1b2d82 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -362,7 +362,7 @@ static void raid5_unplug_device(struct request_queue *q);
362 362
363static struct stripe_head * 363static struct stripe_head *
364get_active_stripe(raid5_conf_t *conf, sector_t sector, 364get_active_stripe(raid5_conf_t *conf, sector_t sector,
365 int previous, int noblock) 365 int previous, int noblock, int noquiesce)
366{ 366{
367 struct stripe_head *sh; 367 struct stripe_head *sh;
368 368
@@ -372,7 +372,7 @@ get_active_stripe(raid5_conf_t *conf, sector_t sector,
372 372
373 do { 373 do {
374 wait_event_lock_irq(conf->wait_for_stripe, 374 wait_event_lock_irq(conf->wait_for_stripe,
375 conf->quiesce == 0, 375 conf->quiesce == 0 || noquiesce,
376 conf->device_lock, /* nothing */); 376 conf->device_lock, /* nothing */);
377 sh = __find_stripe(conf, sector, conf->generation - previous); 377 sh = __find_stripe(conf, sector, conf->generation - previous);
378 if (!sh) { 378 if (!sh) {
@@ -2671,7 +2671,7 @@ static void handle_stripe_expansion(raid5_conf_t *conf, struct stripe_head *sh,
2671 sector_t bn = compute_blocknr(sh, i, 1); 2671 sector_t bn = compute_blocknr(sh, i, 1);
2672 sector_t s = raid5_compute_sector(conf, bn, 0, 2672 sector_t s = raid5_compute_sector(conf, bn, 0,
2673 &dd_idx, NULL); 2673 &dd_idx, NULL);
2674 sh2 = get_active_stripe(conf, s, 0, 1); 2674 sh2 = get_active_stripe(conf, s, 0, 1, 1);
2675 if (sh2 == NULL) 2675 if (sh2 == NULL)
2676 /* so far only the early blocks of this stripe 2676 /* so far only the early blocks of this stripe
2677 * have been requested. When later blocks 2677 * have been requested. When later blocks
@@ -2944,7 +2944,7 @@ static bool handle_stripe5(struct stripe_head *sh)
2944 /* Finish reconstruct operations initiated by the expansion process */ 2944 /* Finish reconstruct operations initiated by the expansion process */
2945 if (sh->reconstruct_state == reconstruct_state_result) { 2945 if (sh->reconstruct_state == reconstruct_state_result) {
2946 struct stripe_head *sh2 2946 struct stripe_head *sh2
2947 = get_active_stripe(conf, sh->sector, 1, 1); 2947 = get_active_stripe(conf, sh->sector, 1, 1, 1);
2948 if (sh2 && test_bit(STRIPE_EXPAND_SOURCE, &sh2->state)) { 2948 if (sh2 && test_bit(STRIPE_EXPAND_SOURCE, &sh2->state)) {
2949 /* sh cannot be written until sh2 has been read. 2949 /* sh cannot be written until sh2 has been read.
2950 * so arrange for sh to be delayed a little 2950 * so arrange for sh to be delayed a little
@@ -3189,7 +3189,7 @@ static bool handle_stripe6(struct stripe_head *sh, struct page *tmp_page)
3189 3189
3190 if (s.expanded && test_bit(STRIPE_EXPANDING, &sh->state)) { 3190 if (s.expanded && test_bit(STRIPE_EXPANDING, &sh->state)) {
3191 struct stripe_head *sh2 3191 struct stripe_head *sh2
3192 = get_active_stripe(conf, sh->sector, 1, 1); 3192 = get_active_stripe(conf, sh->sector, 1, 1, 1);
3193 if (sh2 && test_bit(STRIPE_EXPAND_SOURCE, &sh2->state)) { 3193 if (sh2 && test_bit(STRIPE_EXPAND_SOURCE, &sh2->state)) {
3194 /* sh cannot be written until sh2 has been read. 3194 /* sh cannot be written until sh2 has been read.
3195 * so arrange for sh to be delayed a little 3195 * so arrange for sh to be delayed a little
@@ -3288,7 +3288,7 @@ static void unplug_slaves(mddev_t *mddev)
3288 int i; 3288 int i;
3289 3289
3290 rcu_read_lock(); 3290 rcu_read_lock();
3291 for (i=0; i<mddev->raid_disks; i++) { 3291 for (i = 0; i < conf->raid_disks; i++) {
3292 mdk_rdev_t *rdev = rcu_dereference(conf->disks[i].rdev); 3292 mdk_rdev_t *rdev = rcu_dereference(conf->disks[i].rdev);
3293 if (rdev && !test_bit(Faulty, &rdev->flags) && atomic_read(&rdev->nr_pending)) { 3293 if (rdev && !test_bit(Faulty, &rdev->flags) && atomic_read(&rdev->nr_pending)) {
3294 struct request_queue *r_queue = bdev_get_queue(rdev->bdev); 3294 struct request_queue *r_queue = bdev_get_queue(rdev->bdev);
@@ -3675,7 +3675,7 @@ static int make_request(struct request_queue *q, struct bio * bi)
3675 (unsigned long long)logical_sector); 3675 (unsigned long long)logical_sector);
3676 3676
3677 sh = get_active_stripe(conf, new_sector, previous, 3677 sh = get_active_stripe(conf, new_sector, previous,
3678 (bi->bi_rw&RWA_MASK)); 3678 (bi->bi_rw&RWA_MASK), 0);
3679 if (sh) { 3679 if (sh) {
3680 if (unlikely(previous)) { 3680 if (unlikely(previous)) {
3681 /* expansion might have moved on while waiting for a 3681 /* expansion might have moved on while waiting for a
@@ -3811,13 +3811,13 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped
3811 safepos = conf->reshape_safe; 3811 safepos = conf->reshape_safe;
3812 sector_div(safepos, data_disks); 3812 sector_div(safepos, data_disks);
3813 if (mddev->delta_disks < 0) { 3813 if (mddev->delta_disks < 0) {
3814 writepos -= reshape_sectors; 3814 writepos -= min_t(sector_t, reshape_sectors, writepos);
3815 readpos += reshape_sectors; 3815 readpos += reshape_sectors;
3816 safepos += reshape_sectors; 3816 safepos += reshape_sectors;
3817 } else { 3817 } else {
3818 writepos += reshape_sectors; 3818 writepos += reshape_sectors;
3819 readpos -= reshape_sectors; 3819 readpos -= min_t(sector_t, reshape_sectors, readpos);
3820 safepos -= reshape_sectors; 3820 safepos -= min_t(sector_t, reshape_sectors, safepos);
3821 } 3821 }
3822 3822
3823 /* 'writepos' is the most advanced device address we might write. 3823 /* 'writepos' is the most advanced device address we might write.
@@ -3873,7 +3873,7 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped
3873 for (i = 0; i < reshape_sectors; i += STRIPE_SECTORS) { 3873 for (i = 0; i < reshape_sectors; i += STRIPE_SECTORS) {
3874 int j; 3874 int j;
3875 int skipped = 0; 3875 int skipped = 0;
3876 sh = get_active_stripe(conf, stripe_addr+i, 0, 0); 3876 sh = get_active_stripe(conf, stripe_addr+i, 0, 0, 1);
3877 set_bit(STRIPE_EXPANDING, &sh->state); 3877 set_bit(STRIPE_EXPANDING, &sh->state);
3878 atomic_inc(&conf->reshape_stripes); 3878 atomic_inc(&conf->reshape_stripes);
3879 /* If any of this stripe is beyond the end of the old 3879 /* If any of this stripe is beyond the end of the old
@@ -3916,13 +3916,13 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped
3916 raid5_compute_sector(conf, stripe_addr*(new_data_disks), 3916 raid5_compute_sector(conf, stripe_addr*(new_data_disks),
3917 1, &dd_idx, NULL); 3917 1, &dd_idx, NULL);
3918 last_sector = 3918 last_sector =
3919 raid5_compute_sector(conf, ((stripe_addr+conf->chunk_size/512) 3919 raid5_compute_sector(conf, ((stripe_addr+reshape_sectors)
3920 *(new_data_disks) - 1), 3920 *(new_data_disks) - 1),
3921 1, &dd_idx, NULL); 3921 1, &dd_idx, NULL);
3922 if (last_sector >= mddev->dev_sectors) 3922 if (last_sector >= mddev->dev_sectors)
3923 last_sector = mddev->dev_sectors - 1; 3923 last_sector = mddev->dev_sectors - 1;
3924 while (first_sector <= last_sector) { 3924 while (first_sector <= last_sector) {
3925 sh = get_active_stripe(conf, first_sector, 1, 0); 3925 sh = get_active_stripe(conf, first_sector, 1, 0, 1);
3926 set_bit(STRIPE_EXPAND_SOURCE, &sh->state); 3926 set_bit(STRIPE_EXPAND_SOURCE, &sh->state);
3927 set_bit(STRIPE_HANDLE, &sh->state); 3927 set_bit(STRIPE_HANDLE, &sh->state);
3928 release_stripe(sh); 3928 release_stripe(sh);
@@ -4022,9 +4022,9 @@ static inline sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *ski
4022 4022
4023 bitmap_cond_end_sync(mddev->bitmap, sector_nr); 4023 bitmap_cond_end_sync(mddev->bitmap, sector_nr);
4024 4024
4025 sh = get_active_stripe(conf, sector_nr, 0, 1); 4025 sh = get_active_stripe(conf, sector_nr, 0, 1, 0);
4026 if (sh == NULL) { 4026 if (sh == NULL) {
4027 sh = get_active_stripe(conf, sector_nr, 0, 0); 4027 sh = get_active_stripe(conf, sector_nr, 0, 0, 0);
4028 /* make sure we don't swamp the stripe cache if someone else 4028 /* make sure we don't swamp the stripe cache if someone else
4029 * is trying to get access 4029 * is trying to get access
4030 */ 4030 */
@@ -4034,7 +4034,7 @@ static inline sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *ski
4034 * We don't need to check the 'failed' flag as when that gets set, 4034 * We don't need to check the 'failed' flag as when that gets set,
4035 * recovery aborts. 4035 * recovery aborts.
4036 */ 4036 */
4037 for (i=0; i<mddev->raid_disks; i++) 4037 for (i = 0; i < conf->raid_disks; i++)
4038 if (conf->disks[i].rdev == NULL) 4038 if (conf->disks[i].rdev == NULL)
4039 still_degraded = 1; 4039 still_degraded = 1;
4040 4040
@@ -4086,7 +4086,7 @@ static int retry_aligned_read(raid5_conf_t *conf, struct bio *raid_bio)
4086 /* already done this stripe */ 4086 /* already done this stripe */
4087 continue; 4087 continue;
4088 4088
4089 sh = get_active_stripe(conf, sector, 0, 1); 4089 sh = get_active_stripe(conf, sector, 0, 1, 0);
4090 4090
4091 if (!sh) { 4091 if (!sh) {
4092 /* failed to get a stripe - must wait */ 4092 /* failed to get a stripe - must wait */
diff --git a/drivers/media/radio/radio-sf16fmi.c b/drivers/media/radio/radio-sf16fmi.c
index 1dba8f0832a0..5cf6c45b91fe 100644
--- a/drivers/media/radio/radio-sf16fmi.c
+++ b/drivers/media/radio/radio-sf16fmi.c
@@ -153,7 +153,7 @@ static int vidioc_g_tuner(struct file *file, void *priv,
153 mult = (fmi->flags & V4L2_TUNER_CAP_LOW) ? 1 : 1000; 153 mult = (fmi->flags & V4L2_TUNER_CAP_LOW) ? 1 : 1000;
154 v->rangelow = RSF16_MINFREQ / mult; 154 v->rangelow = RSF16_MINFREQ / mult;
155 v->rangehigh = RSF16_MAXFREQ / mult; 155 v->rangehigh = RSF16_MAXFREQ / mult;
156 v->rxsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_MODE_STEREO; 156 v->rxsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_SUB_STEREO;
157 v->capability = fmi->flags & V4L2_TUNER_CAP_LOW; 157 v->capability = fmi->flags & V4L2_TUNER_CAP_LOW;
158 v->audmode = V4L2_TUNER_MODE_STEREO; 158 v->audmode = V4L2_TUNER_MODE_STEREO;
159 v->signal = fmi_getsigstr(fmi); 159 v->signal = fmi_getsigstr(fmi);
diff --git a/drivers/media/radio/radio-sf16fmr2.c b/drivers/media/radio/radio-sf16fmr2.c
index c09ca8600ea1..935ff9bcdfcc 100644
--- a/drivers/media/radio/radio-sf16fmr2.c
+++ b/drivers/media/radio/radio-sf16fmr2.c
@@ -233,7 +233,7 @@ static int vidioc_g_tuner(struct file *file, void *priv,
233 mult = (fmr2->flags & V4L2_TUNER_CAP_LOW) ? 1 : 1000; 233 mult = (fmr2->flags & V4L2_TUNER_CAP_LOW) ? 1 : 1000;
234 v->rangelow = RSF16_MINFREQ / mult; 234 v->rangelow = RSF16_MINFREQ / mult;
235 v->rangehigh = RSF16_MAXFREQ / mult; 235 v->rangehigh = RSF16_MAXFREQ / mult;
236 v->rxsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_MODE_STEREO; 236 v->rxsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_SUB_STEREO;
237 v->capability = fmr2->flags&V4L2_TUNER_CAP_LOW; 237 v->capability = fmr2->flags&V4L2_TUNER_CAP_LOW;
238 v->audmode = fmr2->stereo ? V4L2_TUNER_MODE_STEREO: 238 v->audmode = fmr2->stereo ? V4L2_TUNER_MODE_STEREO:
239 V4L2_TUNER_MODE_MONO; 239 V4L2_TUNER_MODE_MONO;
diff --git a/drivers/media/video/cafe_ccic.c b/drivers/media/video/cafe_ccic.c
index 5f582726985d..c4d181dde1ca 100644
--- a/drivers/media/video/cafe_ccic.c
+++ b/drivers/media/video/cafe_ccic.c
@@ -774,6 +774,7 @@ static int cafe_cam_init(struct cafe_camera *cam)
774 ret = __cafe_cam_reset(cam); 774 ret = __cafe_cam_reset(cam);
775 if (ret) 775 if (ret)
776 goto out; 776 goto out;
777 chip.ident = V4L2_IDENT_NONE;
777 chip.match.type = V4L2_CHIP_MATCH_I2C_ADDR; 778 chip.match.type = V4L2_CHIP_MATCH_I2C_ADDR;
778 chip.match.addr = cam->sensor_addr; 779 chip.match.addr = cam->sensor_addr;
779 ret = sensor_call(cam, core, g_chip_ident, &chip); 780 ret = sensor_call(cam, core, g_chip_ident, &chip);
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index 0c49a98213c4..1dc070da8652 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -472,7 +472,7 @@ static int dvb_register(struct cx23885_tsport *port)
472 static struct xc2028_ctrl ctl = { 472 static struct xc2028_ctrl ctl = {
473 .fname = XC2028_DEFAULT_FIRMWARE, 473 .fname = XC2028_DEFAULT_FIRMWARE,
474 .max_len = 64, 474 .max_len = 64,
475 .scode_table = XC3028_FE_OREN538, 475 .demod = XC3028_FE_OREN538,
476 }; 476 };
477 477
478 fe = dvb_attach(xc2028_attach, 478 fe = dvb_attach(xc2028_attach,
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c
index b0195e8ee4d1..db2ac9a99acd 100644
--- a/drivers/media/video/ivtv/ivtv-driver.c
+++ b/drivers/media/video/ivtv/ivtv-driver.c
@@ -305,14 +305,17 @@ int ivtv_waitq(wait_queue_head_t *waitq)
305/* Generic utility functions */ 305/* Generic utility functions */
306int ivtv_msleep_timeout(unsigned int msecs, int intr) 306int ivtv_msleep_timeout(unsigned int msecs, int intr)
307{ 307{
308 int ret;
309 int timeout = msecs_to_jiffies(msecs); 308 int timeout = msecs_to_jiffies(msecs);
310 309
311 do { 310 do {
312 set_current_state(intr ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); 311 set_current_state(intr ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE);
313 timeout = schedule_timeout(timeout); 312 timeout = schedule_timeout(timeout);
314 if (intr && (ret = signal_pending(current))) 313 if (intr) {
315 return ret; 314 int ret = signal_pending(current);
315
316 if (ret)
317 return ret;
318 }
316 } while (timeout); 319 } while (timeout);
317 return 0; 320 return 0;
318} 321}
diff --git a/drivers/media/video/ivtv/ivtv-gpio.c b/drivers/media/video/ivtv/ivtv-gpio.c
index ceb05bdcaf62..85ac707228e7 100644
--- a/drivers/media/video/ivtv/ivtv-gpio.c
+++ b/drivers/media/video/ivtv/ivtv-gpio.c
@@ -190,8 +190,8 @@ static int subdev_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt)
190 190
191 mask = itv->card->gpio_audio_detect.mask; 191 mask = itv->card->gpio_audio_detect.mask;
192 if (mask == 0 || (read_reg(IVTV_REG_GPIO_IN) & mask)) 192 if (mask == 0 || (read_reg(IVTV_REG_GPIO_IN) & mask))
193 vt->rxsubchans = V4L2_TUNER_MODE_STEREO | 193 vt->rxsubchans = V4L2_TUNER_SUB_STEREO |
194 V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; 194 V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2;
195 else 195 else
196 vt->rxsubchans = V4L2_TUNER_SUB_MONO; 196 vt->rxsubchans = V4L2_TUNER_SUB_MONO;
197 return 0; 197 return 0;
diff --git a/drivers/media/video/ivtv/ivtv-ioctl.c b/drivers/media/video/ivtv/ivtv-ioctl.c
index 4a2d464f055e..c342a9fe983e 100644
--- a/drivers/media/video/ivtv/ivtv-ioctl.c
+++ b/drivers/media/video/ivtv/ivtv-ioctl.c
@@ -180,7 +180,7 @@ int ivtv_set_speed(struct ivtv *itv, int speed)
180 180
181 /* Wait for any DMA to finish */ 181 /* Wait for any DMA to finish */
182 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE); 182 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE);
183 while (itv->i_flags & IVTV_F_I_DMA) { 183 while (test_bit(IVTV_F_I_DMA, &itv->i_flags)) {
184 got_sig = signal_pending(current); 184 got_sig = signal_pending(current);
185 if (got_sig) 185 if (got_sig)
186 break; 186 break;
@@ -1710,7 +1710,8 @@ static int ivtv_decoder_ioctls(struct file *filp, unsigned int cmd, void *arg)
1710 we are waiting unlock first and later lock again. */ 1710 we are waiting unlock first and later lock again. */
1711 mutex_unlock(&itv->serialize_lock); 1711 mutex_unlock(&itv->serialize_lock);
1712 prepare_to_wait(&itv->event_waitq, &wait, TASK_INTERRUPTIBLE); 1712 prepare_to_wait(&itv->event_waitq, &wait, TASK_INTERRUPTIBLE);
1713 if ((itv->i_flags & (IVTV_F_I_EV_DEC_STOPPED|IVTV_F_I_EV_VSYNC)) == 0) 1713 if (!test_bit(IVTV_F_I_EV_DEC_STOPPED, &itv->i_flags) &&
1714 !test_bit(IVTV_F_I_EV_VSYNC, &itv->i_flags))
1714 schedule(); 1715 schedule();
1715 finish_wait(&itv->event_waitq, &wait); 1716 finish_wait(&itv->event_waitq, &wait);
1716 mutex_lock(&itv->serialize_lock); 1717 mutex_lock(&itv->serialize_lock);
diff --git a/drivers/media/video/ivtv/ivtv-irq.c b/drivers/media/video/ivtv/ivtv-irq.c
index 01c14d2b381a..cd9db0bf33bf 100644
--- a/drivers/media/video/ivtv/ivtv-irq.c
+++ b/drivers/media/video/ivtv/ivtv-irq.c
@@ -196,7 +196,7 @@ static int stream_enc_dma_append(struct ivtv_stream *s, u32 data[CX2341X_MBOX_MA
196 bytes_needed, s->name); 196 bytes_needed, s->name);
197 return -1; 197 return -1;
198 } 198 }
199 if (rc && !s->buffers_stolen && (s->s_flags & IVTV_F_S_APPL_IO)) { 199 if (rc && !s->buffers_stolen && test_bit(IVTV_F_S_APPL_IO, &s->s_flags)) {
200 IVTV_WARN("All %s stream buffers are full. Dropping data.\n", s->name); 200 IVTV_WARN("All %s stream buffers are full. Dropping data.\n", s->name);
201 IVTV_WARN("Cause: the application is not reading fast enough.\n"); 201 IVTV_WARN("Cause: the application is not reading fast enough.\n");
202 } 202 }
diff --git a/drivers/media/video/ivtv/ivtv-queue.c b/drivers/media/video/ivtv/ivtv-queue.c
index ff7b7deded4f..7fde36e6d227 100644
--- a/drivers/media/video/ivtv/ivtv-queue.c
+++ b/drivers/media/video/ivtv/ivtv-queue.c
@@ -230,7 +230,8 @@ int ivtv_stream_alloc(struct ivtv_stream *s)
230 return -ENOMEM; 230 return -ENOMEM;
231 } 231 }
232 if (ivtv_might_use_dma(s)) { 232 if (ivtv_might_use_dma(s)) {
233 s->sg_handle = pci_map_single(itv->pdev, s->sg_dma, sizeof(struct ivtv_sg_element), s->dma); 233 s->sg_handle = pci_map_single(itv->pdev, s->sg_dma,
234 sizeof(struct ivtv_sg_element), PCI_DMA_TODEVICE);
234 ivtv_stream_sync_for_cpu(s); 235 ivtv_stream_sync_for_cpu(s);
235 } 236 }
236 237
diff --git a/drivers/media/video/ivtv/ivtv-yuv.c b/drivers/media/video/ivtv/ivtv-yuv.c
index 7912ed6b72ee..c0875378acc2 100644
--- a/drivers/media/video/ivtv/ivtv-yuv.c
+++ b/drivers/media/video/ivtv/ivtv-yuv.c
@@ -1063,7 +1063,8 @@ static int ivtv_yuv_udma_frame(struct ivtv *itv, struct ivtv_dma_frame *args)
1063 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE); 1063 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE);
1064 /* if no UDMA is pending and no UDMA is in progress, then the DMA 1064 /* if no UDMA is pending and no UDMA is in progress, then the DMA
1065 is finished */ 1065 is finished */
1066 while (itv->i_flags & (IVTV_F_I_UDMA_PENDING | IVTV_F_I_UDMA)) { 1066 while (test_bit(IVTV_F_I_UDMA_PENDING, &itv->i_flags) ||
1067 test_bit(IVTV_F_I_UDMA, &itv->i_flags)) {
1067 /* don't interrupt if the DMA is in progress but break off 1068 /* don't interrupt if the DMA is in progress but break off
1068 a still pending DMA. */ 1069 a still pending DMA. */
1069 got_sig = signal_pending(current); 1070 got_sig = signal_pending(current);
diff --git a/drivers/media/video/ivtv/ivtvfb.c b/drivers/media/video/ivtv/ivtvfb.c
index 66e6eb513076..fa6bb85cb4b0 100644
--- a/drivers/media/video/ivtv/ivtvfb.c
+++ b/drivers/media/video/ivtv/ivtvfb.c
@@ -298,7 +298,8 @@ static int ivtvfb_prep_dec_dma_to_device(struct ivtv *itv,
298 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE); 298 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE);
299 /* if no UDMA is pending and no UDMA is in progress, then the DMA 299 /* if no UDMA is pending and no UDMA is in progress, then the DMA
300 is finished */ 300 is finished */
301 while (itv->i_flags & (IVTV_F_I_UDMA_PENDING | IVTV_F_I_UDMA)) { 301 while (test_bit(IVTV_F_I_UDMA_PENDING, &itv->i_flags) ||
302 test_bit(IVTV_F_I_UDMA, &itv->i_flags)) {
302 /* don't interrupt if the DMA is in progress but break off 303 /* don't interrupt if the DMA is in progress but break off
303 a still pending DMA. */ 304 a still pending DMA. */
304 got_sig = signal_pending(current); 305 got_sig = signal_pending(current);
diff --git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c
index 399412d7f020..507dc85646b2 100644
--- a/drivers/media/video/uvc/uvc_driver.c
+++ b/drivers/media/video/uvc/uvc_driver.c
@@ -1726,14 +1726,17 @@ static int uvc_suspend(struct usb_interface *intf, pm_message_t message)
1726static int __uvc_resume(struct usb_interface *intf, int reset) 1726static int __uvc_resume(struct usb_interface *intf, int reset)
1727{ 1727{
1728 struct uvc_device *dev = usb_get_intfdata(intf); 1728 struct uvc_device *dev = usb_get_intfdata(intf);
1729 int ret;
1730 1729
1731 uvc_trace(UVC_TRACE_SUSPEND, "Resuming interface %u\n", 1730 uvc_trace(UVC_TRACE_SUSPEND, "Resuming interface %u\n",
1732 intf->cur_altsetting->desc.bInterfaceNumber); 1731 intf->cur_altsetting->desc.bInterfaceNumber);
1733 1732
1734 if (intf->cur_altsetting->desc.bInterfaceSubClass == SC_VIDEOCONTROL) { 1733 if (intf->cur_altsetting->desc.bInterfaceSubClass == SC_VIDEOCONTROL) {
1735 if (reset && (ret = uvc_ctrl_resume_device(dev)) < 0) 1734 if (reset) {
1736 return ret; 1735 int ret = uvc_ctrl_resume_device(dev);
1736
1737 if (ret < 0)
1738 return ret;
1739 }
1737 1740
1738 return uvc_status_resume(dev); 1741 return uvc_status_resume(dev);
1739 } 1742 }
diff --git a/drivers/media/video/uvc/uvc_video.c b/drivers/media/video/uvc/uvc_video.c
index a95e17329c5b..6ce974d7362f 100644
--- a/drivers/media/video/uvc/uvc_video.c
+++ b/drivers/media/video/uvc/uvc_video.c
@@ -742,7 +742,7 @@ static int uvc_alloc_urb_buffers(struct uvc_video_device *video,
742 742
743 /* Buffers are already allocated, bail out. */ 743 /* Buffers are already allocated, bail out. */
744 if (video->urb_size) 744 if (video->urb_size)
745 return 0; 745 return video->urb_size / psize;
746 746
747 /* Compute the number of packets. Bulk endpoints might transfer UVC 747 /* Compute the number of packets. Bulk endpoints might transfer UVC
748 * payloads accross multiple URBs. 748 * payloads accross multiple URBs.
diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c
index 88f10d6cbc92..be64a502ea27 100644
--- a/drivers/media/video/v4l2-ioctl.c
+++ b/drivers/media/video/v4l2-ioctl.c
@@ -42,6 +42,12 @@
42 printk(KERN_DEBUG "%s: " fmt, vfd->name, ## arg);\ 42 printk(KERN_DEBUG "%s: " fmt, vfd->name, ## arg);\
43 } while (0) 43 } while (0)
44 44
45/* Zero out the end of the struct pointed to by p. Everthing after, but
46 * not including, the specified field is cleared. */
47#define CLEAR_AFTER_FIELD(p, field) \
48 memset((u8 *)(p) + offsetof(typeof(*(p)), field) + sizeof((p)->field), \
49 0, sizeof(*(p)) - offsetof(typeof(*(p)), field) - sizeof((p)->field))
50
45struct std_descr { 51struct std_descr {
46 v4l2_std_id std; 52 v4l2_std_id std;
47 const char *descr; 53 const char *descr;
@@ -544,39 +550,39 @@ static int check_fmt(const struct v4l2_ioctl_ops *ops, enum v4l2_buf_type type)
544 550
545 switch (type) { 551 switch (type) {
546 case V4L2_BUF_TYPE_VIDEO_CAPTURE: 552 case V4L2_BUF_TYPE_VIDEO_CAPTURE:
547 if (ops->vidioc_try_fmt_vid_cap) 553 if (ops->vidioc_g_fmt_vid_cap)
548 return 0; 554 return 0;
549 break; 555 break;
550 case V4L2_BUF_TYPE_VIDEO_OVERLAY: 556 case V4L2_BUF_TYPE_VIDEO_OVERLAY:
551 if (ops->vidioc_try_fmt_vid_overlay) 557 if (ops->vidioc_g_fmt_vid_overlay)
552 return 0; 558 return 0;
553 break; 559 break;
554 case V4L2_BUF_TYPE_VIDEO_OUTPUT: 560 case V4L2_BUF_TYPE_VIDEO_OUTPUT:
555 if (ops->vidioc_try_fmt_vid_out) 561 if (ops->vidioc_g_fmt_vid_out)
556 return 0; 562 return 0;
557 break; 563 break;
558 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: 564 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY:
559 if (ops->vidioc_try_fmt_vid_out_overlay) 565 if (ops->vidioc_g_fmt_vid_out_overlay)
560 return 0; 566 return 0;
561 break; 567 break;
562 case V4L2_BUF_TYPE_VBI_CAPTURE: 568 case V4L2_BUF_TYPE_VBI_CAPTURE:
563 if (ops->vidioc_try_fmt_vbi_cap) 569 if (ops->vidioc_g_fmt_vbi_cap)
564 return 0; 570 return 0;
565 break; 571 break;
566 case V4L2_BUF_TYPE_VBI_OUTPUT: 572 case V4L2_BUF_TYPE_VBI_OUTPUT:
567 if (ops->vidioc_try_fmt_vbi_out) 573 if (ops->vidioc_g_fmt_vbi_out)
568 return 0; 574 return 0;
569 break; 575 break;
570 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: 576 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE:
571 if (ops->vidioc_try_fmt_sliced_vbi_cap) 577 if (ops->vidioc_g_fmt_sliced_vbi_cap)
572 return 0; 578 return 0;
573 break; 579 break;
574 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: 580 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT:
575 if (ops->vidioc_try_fmt_sliced_vbi_out) 581 if (ops->vidioc_g_fmt_sliced_vbi_out)
576 return 0; 582 return 0;
577 break; 583 break;
578 case V4L2_BUF_TYPE_PRIVATE: 584 case V4L2_BUF_TYPE_PRIVATE:
579 if (ops->vidioc_try_fmt_type_private) 585 if (ops->vidioc_g_fmt_type_private)
580 return 0; 586 return 0;
581 break; 587 break;
582 } 588 }
@@ -782,44 +788,53 @@ static long __video_do_ioctl(struct file *file,
782 788
783 switch (f->type) { 789 switch (f->type) {
784 case V4L2_BUF_TYPE_VIDEO_CAPTURE: 790 case V4L2_BUF_TYPE_VIDEO_CAPTURE:
791 CLEAR_AFTER_FIELD(f, fmt.pix);
785 v4l_print_pix_fmt(vfd, &f->fmt.pix); 792 v4l_print_pix_fmt(vfd, &f->fmt.pix);
786 if (ops->vidioc_s_fmt_vid_cap) 793 if (ops->vidioc_s_fmt_vid_cap)
787 ret = ops->vidioc_s_fmt_vid_cap(file, fh, f); 794 ret = ops->vidioc_s_fmt_vid_cap(file, fh, f);
788 break; 795 break;
789 case V4L2_BUF_TYPE_VIDEO_OVERLAY: 796 case V4L2_BUF_TYPE_VIDEO_OVERLAY:
797 CLEAR_AFTER_FIELD(f, fmt.win);
790 if (ops->vidioc_s_fmt_vid_overlay) 798 if (ops->vidioc_s_fmt_vid_overlay)
791 ret = ops->vidioc_s_fmt_vid_overlay(file, 799 ret = ops->vidioc_s_fmt_vid_overlay(file,
792 fh, f); 800 fh, f);
793 break; 801 break;
794 case V4L2_BUF_TYPE_VIDEO_OUTPUT: 802 case V4L2_BUF_TYPE_VIDEO_OUTPUT:
803 CLEAR_AFTER_FIELD(f, fmt.pix);
795 v4l_print_pix_fmt(vfd, &f->fmt.pix); 804 v4l_print_pix_fmt(vfd, &f->fmt.pix);
796 if (ops->vidioc_s_fmt_vid_out) 805 if (ops->vidioc_s_fmt_vid_out)
797 ret = ops->vidioc_s_fmt_vid_out(file, fh, f); 806 ret = ops->vidioc_s_fmt_vid_out(file, fh, f);
798 break; 807 break;
799 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: 808 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY:
809 CLEAR_AFTER_FIELD(f, fmt.win);
800 if (ops->vidioc_s_fmt_vid_out_overlay) 810 if (ops->vidioc_s_fmt_vid_out_overlay)
801 ret = ops->vidioc_s_fmt_vid_out_overlay(file, 811 ret = ops->vidioc_s_fmt_vid_out_overlay(file,
802 fh, f); 812 fh, f);
803 break; 813 break;
804 case V4L2_BUF_TYPE_VBI_CAPTURE: 814 case V4L2_BUF_TYPE_VBI_CAPTURE:
815 CLEAR_AFTER_FIELD(f, fmt.vbi);
805 if (ops->vidioc_s_fmt_vbi_cap) 816 if (ops->vidioc_s_fmt_vbi_cap)
806 ret = ops->vidioc_s_fmt_vbi_cap(file, fh, f); 817 ret = ops->vidioc_s_fmt_vbi_cap(file, fh, f);
807 break; 818 break;
808 case V4L2_BUF_TYPE_VBI_OUTPUT: 819 case V4L2_BUF_TYPE_VBI_OUTPUT:
820 CLEAR_AFTER_FIELD(f, fmt.vbi);
809 if (ops->vidioc_s_fmt_vbi_out) 821 if (ops->vidioc_s_fmt_vbi_out)
810 ret = ops->vidioc_s_fmt_vbi_out(file, fh, f); 822 ret = ops->vidioc_s_fmt_vbi_out(file, fh, f);
811 break; 823 break;
812 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: 824 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE:
825 CLEAR_AFTER_FIELD(f, fmt.sliced);
813 if (ops->vidioc_s_fmt_sliced_vbi_cap) 826 if (ops->vidioc_s_fmt_sliced_vbi_cap)
814 ret = ops->vidioc_s_fmt_sliced_vbi_cap(file, 827 ret = ops->vidioc_s_fmt_sliced_vbi_cap(file,
815 fh, f); 828 fh, f);
816 break; 829 break;
817 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: 830 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT:
831 CLEAR_AFTER_FIELD(f, fmt.sliced);
818 if (ops->vidioc_s_fmt_sliced_vbi_out) 832 if (ops->vidioc_s_fmt_sliced_vbi_out)
819 ret = ops->vidioc_s_fmt_sliced_vbi_out(file, 833 ret = ops->vidioc_s_fmt_sliced_vbi_out(file,
820 fh, f); 834 fh, f);
821 break; 835 break;
822 case V4L2_BUF_TYPE_PRIVATE: 836 case V4L2_BUF_TYPE_PRIVATE:
837 /* CLEAR_AFTER_FIELD(f, fmt.raw_data); <- does nothing */
823 if (ops->vidioc_s_fmt_type_private) 838 if (ops->vidioc_s_fmt_type_private)
824 ret = ops->vidioc_s_fmt_type_private(file, 839 ret = ops->vidioc_s_fmt_type_private(file,
825 fh, f); 840 fh, f);
@@ -836,46 +851,55 @@ static long __video_do_ioctl(struct file *file,
836 v4l2_type_names)); 851 v4l2_type_names));
837 switch (f->type) { 852 switch (f->type) {
838 case V4L2_BUF_TYPE_VIDEO_CAPTURE: 853 case V4L2_BUF_TYPE_VIDEO_CAPTURE:
854 CLEAR_AFTER_FIELD(f, fmt.pix);
839 if (ops->vidioc_try_fmt_vid_cap) 855 if (ops->vidioc_try_fmt_vid_cap)
840 ret = ops->vidioc_try_fmt_vid_cap(file, fh, f); 856 ret = ops->vidioc_try_fmt_vid_cap(file, fh, f);
841 if (!ret) 857 if (!ret)
842 v4l_print_pix_fmt(vfd, &f->fmt.pix); 858 v4l_print_pix_fmt(vfd, &f->fmt.pix);
843 break; 859 break;
844 case V4L2_BUF_TYPE_VIDEO_OVERLAY: 860 case V4L2_BUF_TYPE_VIDEO_OVERLAY:
861 CLEAR_AFTER_FIELD(f, fmt.win);
845 if (ops->vidioc_try_fmt_vid_overlay) 862 if (ops->vidioc_try_fmt_vid_overlay)
846 ret = ops->vidioc_try_fmt_vid_overlay(file, 863 ret = ops->vidioc_try_fmt_vid_overlay(file,
847 fh, f); 864 fh, f);
848 break; 865 break;
849 case V4L2_BUF_TYPE_VIDEO_OUTPUT: 866 case V4L2_BUF_TYPE_VIDEO_OUTPUT:
867 CLEAR_AFTER_FIELD(f, fmt.pix);
850 if (ops->vidioc_try_fmt_vid_out) 868 if (ops->vidioc_try_fmt_vid_out)
851 ret = ops->vidioc_try_fmt_vid_out(file, fh, f); 869 ret = ops->vidioc_try_fmt_vid_out(file, fh, f);
852 if (!ret) 870 if (!ret)
853 v4l_print_pix_fmt(vfd, &f->fmt.pix); 871 v4l_print_pix_fmt(vfd, &f->fmt.pix);
854 break; 872 break;
855 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: 873 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY:
874 CLEAR_AFTER_FIELD(f, fmt.win);
856 if (ops->vidioc_try_fmt_vid_out_overlay) 875 if (ops->vidioc_try_fmt_vid_out_overlay)
857 ret = ops->vidioc_try_fmt_vid_out_overlay(file, 876 ret = ops->vidioc_try_fmt_vid_out_overlay(file,
858 fh, f); 877 fh, f);
859 break; 878 break;
860 case V4L2_BUF_TYPE_VBI_CAPTURE: 879 case V4L2_BUF_TYPE_VBI_CAPTURE:
880 CLEAR_AFTER_FIELD(f, fmt.vbi);
861 if (ops->vidioc_try_fmt_vbi_cap) 881 if (ops->vidioc_try_fmt_vbi_cap)
862 ret = ops->vidioc_try_fmt_vbi_cap(file, fh, f); 882 ret = ops->vidioc_try_fmt_vbi_cap(file, fh, f);
863 break; 883 break;
864 case V4L2_BUF_TYPE_VBI_OUTPUT: 884 case V4L2_BUF_TYPE_VBI_OUTPUT:
885 CLEAR_AFTER_FIELD(f, fmt.vbi);
865 if (ops->vidioc_try_fmt_vbi_out) 886 if (ops->vidioc_try_fmt_vbi_out)
866 ret = ops->vidioc_try_fmt_vbi_out(file, fh, f); 887 ret = ops->vidioc_try_fmt_vbi_out(file, fh, f);
867 break; 888 break;
868 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: 889 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE:
890 CLEAR_AFTER_FIELD(f, fmt.sliced);
869 if (ops->vidioc_try_fmt_sliced_vbi_cap) 891 if (ops->vidioc_try_fmt_sliced_vbi_cap)
870 ret = ops->vidioc_try_fmt_sliced_vbi_cap(file, 892 ret = ops->vidioc_try_fmt_sliced_vbi_cap(file,
871 fh, f); 893 fh, f);
872 break; 894 break;
873 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: 895 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT:
896 CLEAR_AFTER_FIELD(f, fmt.sliced);
874 if (ops->vidioc_try_fmt_sliced_vbi_out) 897 if (ops->vidioc_try_fmt_sliced_vbi_out)
875 ret = ops->vidioc_try_fmt_sliced_vbi_out(file, 898 ret = ops->vidioc_try_fmt_sliced_vbi_out(file,
876 fh, f); 899 fh, f);
877 break; 900 break;
878 case V4L2_BUF_TYPE_PRIVATE: 901 case V4L2_BUF_TYPE_PRIVATE:
902 /* CLEAR_AFTER_FIELD(f, fmt.raw_data); <- does nothing */
879 if (ops->vidioc_try_fmt_type_private) 903 if (ops->vidioc_try_fmt_type_private)
880 ret = ops->vidioc_try_fmt_type_private(file, 904 ret = ops->vidioc_try_fmt_type_private(file,
881 fh, f); 905 fh, f);
@@ -898,6 +922,9 @@ static long __video_do_ioctl(struct file *file,
898 if (ret) 922 if (ret)
899 break; 923 break;
900 924
925 if (p->type < V4L2_BUF_TYPE_PRIVATE)
926 CLEAR_AFTER_FIELD(p, memory);
927
901 ret = ops->vidioc_reqbufs(file, fh, p); 928 ret = ops->vidioc_reqbufs(file, fh, p);
902 dbgarg(cmd, "count=%d, type=%s, memory=%s\n", 929 dbgarg(cmd, "count=%d, type=%s, memory=%s\n",
903 p->count, 930 p->count,
diff --git a/drivers/media/video/zoran/zoran_driver.c b/drivers/media/video/zoran/zoran_driver.c
index 092333b1c34f..643cccaa1aab 100644
--- a/drivers/media/video/zoran/zoran_driver.c
+++ b/drivers/media/video/zoran/zoran_driver.c
@@ -1863,22 +1863,20 @@ static int zoran_querycap(struct file *file, void *__fh, struct v4l2_capability
1863 1863
1864static int zoran_enum_fmt(struct zoran *zr, struct v4l2_fmtdesc *fmt, int flag) 1864static int zoran_enum_fmt(struct zoran *zr, struct v4l2_fmtdesc *fmt, int flag)
1865{ 1865{
1866 int num = -1, i; 1866 unsigned int num, i;
1867 1867
1868 for (i = 0; i < NUM_FORMATS; i++) { 1868 for (num = i = 0; i < NUM_FORMATS; i++) {
1869 if (zoran_formats[i].flags & flag) 1869 if (zoran_formats[i].flags & flag && num++ == fmt->index) {
1870 num++; 1870 strncpy(fmt->description, zoran_formats[i].name,
1871 if (num == fmt->index) 1871 sizeof(fmt->description) - 1);
1872 break; 1872 /* fmt struct pre-zeroed, so adding '\0' not neeed */
1873 fmt->pixelformat = zoran_formats[i].fourcc;
1874 if (zoran_formats[i].flags & ZORAN_FORMAT_COMPRESSED)
1875 fmt->flags |= V4L2_FMT_FLAG_COMPRESSED;
1876 return 0;
1877 }
1873 } 1878 }
1874 if (fmt->index < 0 /* late, but not too late */ || i == NUM_FORMATS) 1879 return -EINVAL;
1875 return -EINVAL;
1876
1877 strncpy(fmt->description, zoran_formats[i].name, sizeof(fmt->description)-1);
1878 fmt->pixelformat = zoran_formats[i].fourcc;
1879 if (zoran_formats[i].flags & ZORAN_FORMAT_COMPRESSED)
1880 fmt->flags |= V4L2_FMT_FLAG_COMPRESSED;
1881 return 0;
1882} 1880}
1883 1881
1884static int zoran_enum_fmt_vid_cap(struct file *file, void *__fh, 1882static int zoran_enum_fmt_vid_cap(struct file *file, void *__fh,
diff --git a/drivers/mfd/pcf50633-core.c b/drivers/mfd/pcf50633-core.c
index 7793932a513b..11a6248cc1c1 100644
--- a/drivers/mfd/pcf50633-core.c
+++ b/drivers/mfd/pcf50633-core.c
@@ -443,7 +443,7 @@ static irqreturn_t pcf50633_irq(int irq, void *data)
443 dev_dbg(pcf->dev, "pcf50633_irq\n"); 443 dev_dbg(pcf->dev, "pcf50633_irq\n");
444 444
445 get_device(pcf->dev); 445 get_device(pcf->dev);
446 disable_irq(pcf->irq); 446 disable_irq_nosync(pcf->irq);
447 schedule_work(&pcf->irq_work); 447 schedule_work(&pcf->irq_work);
448 448
449 return IRQ_HANDLED; 449 return IRQ_HANDLED;
diff --git a/drivers/mfd/wm8350-core.c b/drivers/mfd/wm8350-core.c
index c2be3088e2e1..fe24079387c5 100644
--- a/drivers/mfd/wm8350-core.c
+++ b/drivers/mfd/wm8350-core.c
@@ -79,10 +79,6 @@ static int wm8350_phys_read(struct wm8350 *wm8350, u8 reg, int num_regs,
79 /* Cache is CPU endian */ 79 /* Cache is CPU endian */
80 dest[i - reg] = be16_to_cpu(dest[i - reg]); 80 dest[i - reg] = be16_to_cpu(dest[i - reg]);
81 81
82 /* Satisfy non-volatile bits from cache */
83 dest[i - reg] &= wm8350_reg_io_map[i].vol;
84 dest[i - reg] |= wm8350->reg_cache[i];
85
86 /* Mask out non-readable bits */ 82 /* Mask out non-readable bits */
87 dest[i - reg] &= wm8350_reg_io_map[i].readable; 83 dest[i - reg] &= wm8350_reg_io_map[i].readable;
88 } 84 }
@@ -182,9 +178,6 @@ static int wm8350_write(struct wm8350 *wm8350, u8 reg, int num_regs, u16 *src)
182 (wm8350->reg_cache[i] & ~wm8350_reg_io_map[i].writable) 178 (wm8350->reg_cache[i] & ~wm8350_reg_io_map[i].writable)
183 | src[i - reg]; 179 | src[i - reg];
184 180
185 /* Don't store volatile bits */
186 wm8350->reg_cache[i] &= ~wm8350_reg_io_map[i].vol;
187
188 src[i - reg] = cpu_to_be16(src[i - reg]); 181 src[i - reg] = cpu_to_be16(src[i - reg]);
189 } 182 }
190 183
@@ -1261,7 +1254,6 @@ static int wm8350_create_cache(struct wm8350 *wm8350, int type, int mode)
1261 (i < WM8350_CLOCK_CONTROL_1 || i > WM8350_AIF_TEST)) { 1254 (i < WM8350_CLOCK_CONTROL_1 || i > WM8350_AIF_TEST)) {
1262 value = be16_to_cpu(wm8350->reg_cache[i]); 1255 value = be16_to_cpu(wm8350->reg_cache[i]);
1263 value &= wm8350_reg_io_map[i].readable; 1256 value &= wm8350_reg_io_map[i].readable;
1264 value &= ~wm8350_reg_io_map[i].vol;
1265 wm8350->reg_cache[i] = value; 1257 wm8350->reg_cache[i] = value;
1266 } else 1258 } else
1267 wm8350->reg_cache[i] = reg_map[i]; 1259 wm8350->reg_cache[i] = reg_map[i];
diff --git a/drivers/misc/enclosure.c b/drivers/misc/enclosure.c
index 3cf61ece71d7..348443bdb23b 100644
--- a/drivers/misc/enclosure.c
+++ b/drivers/misc/enclosure.c
@@ -119,7 +119,7 @@ enclosure_register(struct device *dev, const char *name, int components,
119 edev->edev.class = &enclosure_class; 119 edev->edev.class = &enclosure_class;
120 edev->edev.parent = get_device(dev); 120 edev->edev.parent = get_device(dev);
121 edev->cb = cb; 121 edev->cb = cb;
122 dev_set_name(&edev->edev, name); 122 dev_set_name(&edev->edev, "%s", name);
123 err = device_register(&edev->edev); 123 err = device_register(&edev->edev);
124 if (err) 124 if (err)
125 goto err; 125 goto err;
@@ -255,8 +255,8 @@ enclosure_component_register(struct enclosure_device *edev,
255 ecomp->number = number; 255 ecomp->number = number;
256 cdev = &ecomp->cdev; 256 cdev = &ecomp->cdev;
257 cdev->parent = get_device(&edev->edev); 257 cdev->parent = get_device(&edev->edev);
258 if (name) 258 if (name && name[0])
259 dev_set_name(cdev, name); 259 dev_set_name(cdev, "%s", name);
260 else 260 else
261 dev_set_name(cdev, "%u", number); 261 dev_set_name(cdev, "%u", number);
262 262
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index 36875dcfa492..7d4febdab286 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -490,7 +490,7 @@ static void mmci_check_status(unsigned long data)
490 mod_timer(&host->timer, jiffies + HZ); 490 mod_timer(&host->timer, jiffies + HZ);
491} 491}
492 492
493static int __devinit mmci_probe(struct amba_device *dev, void *id) 493static int __devinit mmci_probe(struct amba_device *dev, struct amba_id *id)
494{ 494{
495 struct mmc_platform_data *plat = dev->dev.platform_data; 495 struct mmc_platform_data *plat = dev->dev.platform_data;
496 struct mmci_host *host; 496 struct mmci_host *host;
diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
index c643d0fe118f..b56d72ff06e9 100644
--- a/drivers/mmc/host/mvsdio.c
+++ b/drivers/mmc/host/mvsdio.c
@@ -64,6 +64,31 @@ static int mvsd_setup_data(struct mvsd_host *host, struct mmc_data *data)
64 unsigned int tmout; 64 unsigned int tmout;
65 int tmout_index; 65 int tmout_index;
66 66
67 /*
68 * Hardware weirdness. The FIFO_EMPTY bit of the HW_STATE
69 * register is sometimes not set before a while when some
70 * "unusual" data block sizes are used (such as with the SWITCH
71 * command), even despite the fact that the XFER_DONE interrupt
72 * was raised. And if another data transfer starts before
73 * this bit comes to good sense (which eventually happens by
74 * itself) then the new transfer simply fails with a timeout.
75 */
76 if (!(mvsd_read(MVSD_HW_STATE) & (1 << 13))) {
77 unsigned long t = jiffies + HZ;
78 unsigned int hw_state, count = 0;
79 do {
80 if (time_after(jiffies, t)) {
81 dev_warn(host->dev, "FIFO_EMPTY bit missing\n");
82 break;
83 }
84 hw_state = mvsd_read(MVSD_HW_STATE);
85 count++;
86 } while (!(hw_state & (1 << 13)));
87 dev_dbg(host->dev, "*** wait for FIFO_EMPTY bit "
88 "(hw=0x%04x, count=%d, jiffies=%ld)\n",
89 hw_state, count, jiffies - (t - HZ));
90 }
91
67 /* If timeout=0 then maximum timeout index is used. */ 92 /* If timeout=0 then maximum timeout index is used. */
68 tmout = DIV_ROUND_UP(data->timeout_ns, host->ns_per_clk); 93 tmout = DIV_ROUND_UP(data->timeout_ns, host->ns_per_clk);
69 tmout += data->timeout_clks; 94 tmout += data->timeout_clks;
@@ -620,9 +645,18 @@ static void mvsd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
620 if (ios->bus_width == MMC_BUS_WIDTH_4) 645 if (ios->bus_width == MMC_BUS_WIDTH_4)
621 ctrl_reg |= MVSD_HOST_CTRL_DATA_WIDTH_4_BITS; 646 ctrl_reg |= MVSD_HOST_CTRL_DATA_WIDTH_4_BITS;
622 647
648 /*
649 * The HI_SPEED_EN bit is causing trouble with many (but not all)
650 * high speed SD, SDHC and SDIO cards. Not enabling that bit
651 * makes all cards work. So let's just ignore that bit for now
652 * and revisit this issue if problems for not enabling this bit
653 * are ever reported.
654 */
655#if 0
623 if (ios->timing == MMC_TIMING_MMC_HS || 656 if (ios->timing == MMC_TIMING_MMC_HS ||
624 ios->timing == MMC_TIMING_SD_HS) 657 ios->timing == MMC_TIMING_SD_HS)
625 ctrl_reg |= MVSD_HOST_CTRL_HI_SPEED_EN; 658 ctrl_reg |= MVSD_HOST_CTRL_HI_SPEED_EN;
659#endif
626 660
627 host->ctrl = ctrl_reg; 661 host->ctrl = ctrl_reg;
628 mvsd_write(MVSD_HOST_CTRL, ctrl_reg); 662 mvsd_write(MVSD_HOST_CTRL, ctrl_reg);
@@ -882,3 +916,4 @@ module_param(nodma, int, 0);
882MODULE_AUTHOR("Maen Suleiman, Nicolas Pitre"); 916MODULE_AUTHOR("Maen Suleiman, Nicolas Pitre");
883MODULE_DESCRIPTION("Marvell MMC,SD,SDIO Host Controller driver"); 917MODULE_DESCRIPTION("Marvell MMC,SD,SDIO Host Controller driver");
884MODULE_LICENSE("GPL"); 918MODULE_LICENSE("GPL");
919MODULE_ALIAS("platform:mvsdio");
diff --git a/drivers/mmc/host/mxcmmc.c b/drivers/mmc/host/mxcmmc.c
index b4a615c55f28..f4cbe473670e 100644
--- a/drivers/mmc/host/mxcmmc.c
+++ b/drivers/mmc/host/mxcmmc.c
@@ -140,6 +140,8 @@ struct mxcmci_host {
140 struct work_struct datawork; 140 struct work_struct datawork;
141}; 141};
142 142
143static void mxcmci_set_clk_rate(struct mxcmci_host *host, unsigned int clk_ios);
144
143static inline int mxcmci_use_dma(struct mxcmci_host *host) 145static inline int mxcmci_use_dma(struct mxcmci_host *host)
144{ 146{
145 return host->do_dma; 147 return host->do_dma;
@@ -160,7 +162,7 @@ static void mxcmci_softreset(struct mxcmci_host *host)
160 writew(0xff, host->base + MMC_REG_RES_TO); 162 writew(0xff, host->base + MMC_REG_RES_TO);
161} 163}
162 164
163static void mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data) 165static int mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data)
164{ 166{
165 unsigned int nob = data->blocks; 167 unsigned int nob = data->blocks;
166 unsigned int blksz = data->blksz; 168 unsigned int blksz = data->blksz;
@@ -168,6 +170,7 @@ static void mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data)
168#ifdef HAS_DMA 170#ifdef HAS_DMA
169 struct scatterlist *sg; 171 struct scatterlist *sg;
170 int i; 172 int i;
173 int ret;
171#endif 174#endif
172 if (data->flags & MMC_DATA_STREAM) 175 if (data->flags & MMC_DATA_STREAM)
173 nob = 0xffff; 176 nob = 0xffff;
@@ -183,7 +186,7 @@ static void mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data)
183 for_each_sg(data->sg, sg, data->sg_len, i) { 186 for_each_sg(data->sg, sg, data->sg_len, i) {
184 if (sg->offset & 3 || sg->length & 3) { 187 if (sg->offset & 3 || sg->length & 3) {
185 host->do_dma = 0; 188 host->do_dma = 0;
186 return; 189 return 0;
187 } 190 }
188 } 191 }
189 192
@@ -192,23 +195,30 @@ static void mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data)
192 host->dma_nents = dma_map_sg(mmc_dev(host->mmc), data->sg, 195 host->dma_nents = dma_map_sg(mmc_dev(host->mmc), data->sg,
193 data->sg_len, host->dma_dir); 196 data->sg_len, host->dma_dir);
194 197
195 imx_dma_setup_sg(host->dma, data->sg, host->dma_nents, datasize, 198 ret = imx_dma_setup_sg(host->dma, data->sg, host->dma_nents,
196 host->res->start + MMC_REG_BUFFER_ACCESS, 199 datasize,
197 DMA_MODE_READ); 200 host->res->start + MMC_REG_BUFFER_ACCESS,
201 DMA_MODE_READ);
198 } else { 202 } else {
199 host->dma_dir = DMA_TO_DEVICE; 203 host->dma_dir = DMA_TO_DEVICE;
200 host->dma_nents = dma_map_sg(mmc_dev(host->mmc), data->sg, 204 host->dma_nents = dma_map_sg(mmc_dev(host->mmc), data->sg,
201 data->sg_len, host->dma_dir); 205 data->sg_len, host->dma_dir);
202 206
203 imx_dma_setup_sg(host->dma, data->sg, host->dma_nents, datasize, 207 ret = imx_dma_setup_sg(host->dma, data->sg, host->dma_nents,
204 host->res->start + MMC_REG_BUFFER_ACCESS, 208 datasize,
205 DMA_MODE_WRITE); 209 host->res->start + MMC_REG_BUFFER_ACCESS,
210 DMA_MODE_WRITE);
206 } 211 }
207 212
213 if (ret) {
214 dev_err(mmc_dev(host->mmc), "failed to setup DMA : %d\n", ret);
215 return ret;
216 }
208 wmb(); 217 wmb();
209 218
210 imx_dma_enable(host->dma); 219 imx_dma_enable(host->dma);
211#endif /* HAS_DMA */ 220#endif /* HAS_DMA */
221 return 0;
212} 222}
213 223
214static int mxcmci_start_cmd(struct mxcmci_host *host, struct mmc_command *cmd, 224static int mxcmci_start_cmd(struct mxcmci_host *host, struct mmc_command *cmd,
@@ -345,8 +355,11 @@ static int mxcmci_poll_status(struct mxcmci_host *host, u32 mask)
345 stat = readl(host->base + MMC_REG_STATUS); 355 stat = readl(host->base + MMC_REG_STATUS);
346 if (stat & STATUS_ERR_MASK) 356 if (stat & STATUS_ERR_MASK)
347 return stat; 357 return stat;
348 if (time_after(jiffies, timeout)) 358 if (time_after(jiffies, timeout)) {
359 mxcmci_softreset(host);
360 mxcmci_set_clk_rate(host, host->clock);
349 return STATUS_TIME_OUT_READ; 361 return STATUS_TIME_OUT_READ;
362 }
350 if (stat & mask) 363 if (stat & mask)
351 return 0; 364 return 0;
352 cpu_relax(); 365 cpu_relax();
@@ -531,6 +544,7 @@ static void mxcmci_request(struct mmc_host *mmc, struct mmc_request *req)
531{ 544{
532 struct mxcmci_host *host = mmc_priv(mmc); 545 struct mxcmci_host *host = mmc_priv(mmc);
533 unsigned int cmdat = host->cmdat; 546 unsigned int cmdat = host->cmdat;
547 int error;
534 548
535 WARN_ON(host->req != NULL); 549 WARN_ON(host->req != NULL);
536 550
@@ -540,7 +554,12 @@ static void mxcmci_request(struct mmc_host *mmc, struct mmc_request *req)
540 host->do_dma = 1; 554 host->do_dma = 1;
541#endif 555#endif
542 if (req->data) { 556 if (req->data) {
543 mxcmci_setup_data(host, req->data); 557 error = mxcmci_setup_data(host, req->data);
558 if (error) {
559 req->cmd->error = error;
560 goto out;
561 }
562
544 563
545 cmdat |= CMD_DAT_CONT_DATA_ENABLE; 564 cmdat |= CMD_DAT_CONT_DATA_ENABLE;
546 565
@@ -548,7 +567,9 @@ static void mxcmci_request(struct mmc_host *mmc, struct mmc_request *req)
548 cmdat |= CMD_DAT_CONT_WRITE; 567 cmdat |= CMD_DAT_CONT_WRITE;
549 } 568 }
550 569
551 if (mxcmci_start_cmd(host, req->cmd, cmdat)) 570 error = mxcmci_start_cmd(host, req->cmd, cmdat);
571out:
572 if (error)
552 mxcmci_finish_request(host, req); 573 mxcmci_finish_request(host, req);
553} 574}
554 575
@@ -724,7 +745,9 @@ static int mxcmci_probe(struct platform_device *pdev)
724 goto out_clk_put; 745 goto out_clk_put;
725 } 746 }
726 747
727 mmc->f_min = clk_get_rate(host->clk) >> 7; 748 mmc->f_min = clk_get_rate(host->clk) >> 16;
749 if (mmc->f_min < 400000)
750 mmc->f_min = 400000;
728 mmc->f_max = clk_get_rate(host->clk) >> 1; 751 mmc->f_max = clk_get_rate(host->clk) >> 1;
729 752
730 /* recommended in data sheet */ 753 /* recommended in data sheet */
diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c
index bfa25c01c872..dceb5ee3bda0 100644
--- a/drivers/mmc/host/omap.c
+++ b/drivers/mmc/host/omap.c
@@ -822,7 +822,7 @@ static irqreturn_t mmc_omap_irq(int irq, void *dev_id)
822 del_timer(&host->cmd_abort_timer); 822 del_timer(&host->cmd_abort_timer);
823 host->abort = 1; 823 host->abort = 1;
824 OMAP_MMC_WRITE(host, IE, 0); 824 OMAP_MMC_WRITE(host, IE, 0);
825 disable_irq(host->irq); 825 disable_irq_nosync(host->irq);
826 schedule_work(&host->cmd_abort_work); 826 schedule_work(&host->cmd_abort_work);
827 return IRQ_HANDLED; 827 return IRQ_HANDLED;
828 } 828 }
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index e62a22a7f00c..c40cb96255a2 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -680,7 +680,7 @@ static void mmc_omap_dma_cb(int lch, u16 ch_status, void *data)
680 host->dma_ch = -1; 680 host->dma_ch = -1;
681 /* 681 /*
682 * DMA Callback: run in interrupt context. 682 * DMA Callback: run in interrupt context.
683 * mutex_unlock will through a kernel warning if used. 683 * mutex_unlock will throw a kernel warning if used.
684 */ 684 */
685 up(&host->sem); 685 up(&host->sem);
686} 686}
diff --git a/drivers/mmc/host/sdhci-of.c b/drivers/mmc/host/sdhci-of.c
index 3ff4ac3abe8b..128c614d11aa 100644
--- a/drivers/mmc/host/sdhci-of.c
+++ b/drivers/mmc/host/sdhci-of.c
@@ -55,7 +55,13 @@ static u32 esdhc_readl(struct sdhci_host *host, int reg)
55 55
56static u16 esdhc_readw(struct sdhci_host *host, int reg) 56static u16 esdhc_readw(struct sdhci_host *host, int reg)
57{ 57{
58 return in_be16(host->ioaddr + (reg ^ 0x2)); 58 u16 ret;
59
60 if (unlikely(reg == SDHCI_HOST_VERSION))
61 ret = in_be16(host->ioaddr + reg);
62 else
63 ret = in_be16(host->ioaddr + (reg ^ 0x2));
64 return ret;
59} 65}
60 66
61static u8 esdhc_readb(struct sdhci_host *host, int reg) 67static u8 esdhc_readb(struct sdhci_host *host, int reg)
@@ -277,6 +283,7 @@ static int __devexit sdhci_of_remove(struct of_device *ofdev)
277static const struct of_device_id sdhci_of_match[] = { 283static const struct of_device_id sdhci_of_match[] = {
278 { .compatible = "fsl,mpc8379-esdhc", .data = &sdhci_esdhc, }, 284 { .compatible = "fsl,mpc8379-esdhc", .data = &sdhci_esdhc, },
279 { .compatible = "fsl,mpc8536-esdhc", .data = &sdhci_esdhc, }, 285 { .compatible = "fsl,mpc8536-esdhc", .data = &sdhci_esdhc, },
286 { .compatible = "fsl,esdhc", .data = &sdhci_esdhc, },
280 { .compatible = "generic-sdhci", }, 287 { .compatible = "generic-sdhci", },
281 {}, 288 {},
282}; 289};
diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
index 62dee54af0a5..43976aa4dbb1 100644
--- a/drivers/mtd/devices/mtd_dataflash.c
+++ b/drivers/mtd/devices/mtd_dataflash.c
@@ -178,7 +178,7 @@ static int dataflash_erase(struct mtd_info *mtd, struct erase_info *instr)
178 /* Calculate flash page address; use block erase (for speed) if 178 /* Calculate flash page address; use block erase (for speed) if
179 * we're at a block boundary and need to erase the whole block. 179 * we're at a block boundary and need to erase the whole block.
180 */ 180 */
181 pageaddr = div_u64(instr->len, priv->page_size); 181 pageaddr = div_u64(instr->addr, priv->page_size);
182 do_block = (pageaddr & 0x7) == 0 && instr->len >= blocksize; 182 do_block = (pageaddr & 0x7) == 0 && instr->len >= blocksize;
183 pageaddr = pageaddr << priv->page_offset; 183 pageaddr = pageaddr << priv->page_offset;
184 184
diff --git a/drivers/mtd/mtdsuper.c b/drivers/mtd/mtdsuper.c
index 92285d0089c2..af8b42e0a55b 100644
--- a/drivers/mtd/mtdsuper.c
+++ b/drivers/mtd/mtdsuper.c
@@ -74,8 +74,7 @@ static int get_sb_mtd_aux(struct file_system_type *fs_type, int flags,
74 74
75 ret = fill_super(sb, data, flags & MS_SILENT ? 1 : 0); 75 ret = fill_super(sb, data, flags & MS_SILENT ? 1 : 0);
76 if (ret < 0) { 76 if (ret < 0) {
77 up_write(&sb->s_umount); 77 deactivate_locked_super(sb);
78 deactivate_super(sb);
79 return ret; 78 return ret;
80 } 79 }
81 80
diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
index 0119220de7d0..02700f769b8a 100644
--- a/drivers/mtd/nand/davinci_nand.c
+++ b/drivers/mtd/nand/davinci_nand.c
@@ -407,16 +407,17 @@ static int __init nand_davinci_probe(struct platform_device *pdev)
407 } 407 }
408 info->chip.ecc.mode = ecc_mode; 408 info->chip.ecc.mode = ecc_mode;
409 409
410 info->clk = clk_get(&pdev->dev, "AEMIFCLK"); 410 info->clk = clk_get(&pdev->dev, "aemif");
411 if (IS_ERR(info->clk)) { 411 if (IS_ERR(info->clk)) {
412 ret = PTR_ERR(info->clk); 412 ret = PTR_ERR(info->clk);
413 dev_dbg(&pdev->dev, "unable to get AEMIFCLK, err %d\n", ret); 413 dev_dbg(&pdev->dev, "unable to get AEMIF clock, err %d\n", ret);
414 goto err_clk; 414 goto err_clk;
415 } 415 }
416 416
417 ret = clk_enable(info->clk); 417 ret = clk_enable(info->clk);
418 if (ret < 0) { 418 if (ret < 0) {
419 dev_dbg(&pdev->dev, "unable to enable AEMIFCLK, err %d\n", ret); 419 dev_dbg(&pdev->dev, "unable to enable AEMIF clock, err %d\n",
420 ret);
420 goto err_clk_enable; 421 goto err_clk_enable;
421 } 422 }
422 423
diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
index f3548d048014..40c26080ecda 100644
--- a/drivers/mtd/nand/mxc_nand.c
+++ b/drivers/mtd/nand/mxc_nand.c
@@ -831,6 +831,7 @@ static void mxc_nand_command(struct mtd_info *mtd, unsigned command,
831 break; 831 break;
832 832
833 case NAND_CMD_READID: 833 case NAND_CMD_READID:
834 host->col_addr = 0;
834 send_read_id(host); 835 send_read_id(host);
835 break; 836 break;
836 837
@@ -867,6 +868,7 @@ static int __init mxcnd_probe(struct platform_device *pdev)
867 mtd->priv = this; 868 mtd->priv = this;
868 mtd->owner = THIS_MODULE; 869 mtd->owner = THIS_MODULE;
869 mtd->dev.parent = &pdev->dev; 870 mtd->dev.parent = &pdev->dev;
871 mtd->name = "mxc_nand";
870 872
871 /* 50 us command delay time */ 873 /* 50 us command delay time */
872 this->chip_delay = 5; 874 this->chip_delay = 5;
@@ -882,8 +884,10 @@ static int __init mxcnd_probe(struct platform_device *pdev)
882 this->verify_buf = mxc_nand_verify_buf; 884 this->verify_buf = mxc_nand_verify_buf;
883 885
884 host->clk = clk_get(&pdev->dev, "nfc"); 886 host->clk = clk_get(&pdev->dev, "nfc");
885 if (IS_ERR(host->clk)) 887 if (IS_ERR(host->clk)) {
888 err = PTR_ERR(host->clk);
886 goto eclk; 889 goto eclk;
890 }
887 891
888 clk_enable(host->clk); 892 clk_enable(host->clk);
889 host->clk_act = 1; 893 host->clk_act = 1;
@@ -896,7 +900,7 @@ static int __init mxcnd_probe(struct platform_device *pdev)
896 900
897 host->regs = ioremap(res->start, res->end - res->start + 1); 901 host->regs = ioremap(res->start, res->end - res->start + 1);
898 if (!host->regs) { 902 if (!host->regs) {
899 err = -EIO; 903 err = -ENOMEM;
900 goto eres; 904 goto eres;
901 } 905 }
902 906
@@ -1011,30 +1015,35 @@ static int __devexit mxcnd_remove(struct platform_device *pdev)
1011#ifdef CONFIG_PM 1015#ifdef CONFIG_PM
1012static int mxcnd_suspend(struct platform_device *pdev, pm_message_t state) 1016static int mxcnd_suspend(struct platform_device *pdev, pm_message_t state)
1013{ 1017{
1014 struct mtd_info *info = platform_get_drvdata(pdev); 1018 struct mtd_info *mtd = platform_get_drvdata(pdev);
1019 struct nand_chip *nand_chip = mtd->priv;
1020 struct mxc_nand_host *host = nand_chip->priv;
1015 int ret = 0; 1021 int ret = 0;
1016 1022
1017 DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND suspend\n"); 1023 DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND suspend\n");
1018 if (info) 1024 if (mtd) {
1019 ret = info->suspend(info); 1025 ret = mtd->suspend(mtd);
1020 1026 /* Disable the NFC clock */
1021 /* Disable the NFC clock */ 1027 clk_disable(host->clk);
1022 clk_disable(nfc_clk); /* FIXME */ 1028 }
1023 1029
1024 return ret; 1030 return ret;
1025} 1031}
1026 1032
1027static int mxcnd_resume(struct platform_device *pdev) 1033static int mxcnd_resume(struct platform_device *pdev)
1028{ 1034{
1029 struct mtd_info *info = platform_get_drvdata(pdev); 1035 struct mtd_info *mtd = platform_get_drvdata(pdev);
1036 struct nand_chip *nand_chip = mtd->priv;
1037 struct mxc_nand_host *host = nand_chip->priv;
1030 int ret = 0; 1038 int ret = 0;
1031 1039
1032 DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND resume\n"); 1040 DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND resume\n");
1033 /* Enable the NFC clock */
1034 clk_enable(nfc_clk); /* FIXME */
1035 1041
1036 if (info) 1042 if (mtd) {
1037 info->resume(info); 1043 /* Enable the NFC clock */
1044 clk_enable(host->clk);
1045 mtd->resume(mtd);
1046 }
1038 1047
1039 return ret; 1048 return ret;
1040} 1049}
@@ -1055,13 +1064,7 @@ static struct platform_driver mxcnd_driver = {
1055 1064
1056static int __init mxc_nd_init(void) 1065static int __init mxc_nd_init(void)
1057{ 1066{
1058 /* Register the device driver structure. */ 1067 return platform_driver_probe(&mxcnd_driver, mxcnd_probe);
1059 pr_info("MXC MTD nand Driver\n");
1060 if (platform_driver_probe(&mxcnd_driver, mxcnd_probe) != 0) {
1061 printk(KERN_ERR "Driver register failed for mxcnd_driver\n");
1062 return -ENODEV;
1063 }
1064 return 0;
1065} 1068}
1066 1069
1067static void __exit mxc_nd_cleanup(void) 1070static void __exit mxc_nd_cleanup(void)
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c
index fbb371921991..682aad897081 100644
--- a/drivers/net/3c509.c
+++ b/drivers/net/3c509.c
@@ -480,9 +480,13 @@ static int pnp_registered;
480 480
481#ifdef CONFIG_EISA 481#ifdef CONFIG_EISA
482static struct eisa_device_id el3_eisa_ids[] = { 482static struct eisa_device_id el3_eisa_ids[] = {
483 { "TCM5090" },
484 { "TCM5091" },
483 { "TCM5092" }, 485 { "TCM5092" },
484 { "TCM5093" }, 486 { "TCM5093" },
487 { "TCM5094" },
485 { "TCM5095" }, 488 { "TCM5095" },
489 { "TCM5098" },
486 { "" } 490 { "" }
487}; 491};
488MODULE_DEVICE_TABLE(eisa, el3_eisa_ids); 492MODULE_DEVICE_TABLE(eisa, el3_eisa_ids);
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index 1fc4602a6ff2..a1c25cb4669f 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -102,7 +102,7 @@ obj-$(CONFIG_HAMACHI) += hamachi.o
102obj-$(CONFIG_NET) += Space.o loopback.o 102obj-$(CONFIG_NET) += Space.o loopback.o
103obj-$(CONFIG_SEEQ8005) += seeq8005.o 103obj-$(CONFIG_SEEQ8005) += seeq8005.o
104obj-$(CONFIG_NET_SB1000) += sb1000.o 104obj-$(CONFIG_NET_SB1000) += sb1000.o
105obj-$(CONFIG_MAC8390) += mac8390.o 8390.o 105obj-$(CONFIG_MAC8390) += mac8390.o
106obj-$(CONFIG_APNE) += apne.o 8390.o 106obj-$(CONFIG_APNE) += apne.o 8390.o
107obj-$(CONFIG_PCMCIA_PCNET) += 8390.o 107obj-$(CONFIG_PCMCIA_PCNET) += 8390.o
108obj-$(CONFIG_HP100) += hp100.o 108obj-$(CONFIG_HP100) += hp100.o
diff --git a/drivers/net/arm/ixp4xx_eth.c b/drivers/net/arm/ixp4xx_eth.c
index 448487e22fa3..a740053d3af3 100644
--- a/drivers/net/arm/ixp4xx_eth.c
+++ b/drivers/net/arm/ixp4xx_eth.c
@@ -338,12 +338,12 @@ static int ixp4xx_mdio_register(void)
338 if (cpu_is_ixp43x()) { 338 if (cpu_is_ixp43x()) {
339 /* IXP43x lacks NPE-B and uses NPE-C for MII PHY access */ 339 /* IXP43x lacks NPE-B and uses NPE-C for MII PHY access */
340 if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEC_ETH)) 340 if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEC_ETH))
341 return -ENOSYS; 341 return -ENODEV;
342 mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthC_BASE_VIRT; 342 mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthC_BASE_VIRT;
343 } else { 343 } else {
344 /* All MII PHY accesses use NPE-B Ethernet registers */ 344 /* All MII PHY accesses use NPE-B Ethernet registers */
345 if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEB_ETH0)) 345 if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEB_ETH0))
346 return -ENOSYS; 346 return -ENODEV;
347 mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthB_BASE_VIRT; 347 mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthB_BASE_VIRT;
348 } 348 }
349 349
@@ -1174,7 +1174,7 @@ static int __devinit eth_init_one(struct platform_device *pdev)
1174 regs_phys = IXP4XX_EthC_BASE_PHYS; 1174 regs_phys = IXP4XX_EthC_BASE_PHYS;
1175 break; 1175 break;
1176 default: 1176 default:
1177 err = -ENOSYS; 1177 err = -ENODEV;
1178 goto err_free; 1178 goto err_free;
1179 } 1179 }
1180 1180
@@ -1189,15 +1189,10 @@ static int __devinit eth_init_one(struct platform_device *pdev)
1189 goto err_free; 1189 goto err_free;
1190 } 1190 }
1191 1191
1192 if (register_netdev(dev)) {
1193 err = -EIO;
1194 goto err_npe_rel;
1195 }
1196
1197 port->mem_res = request_mem_region(regs_phys, REGS_SIZE, dev->name); 1192 port->mem_res = request_mem_region(regs_phys, REGS_SIZE, dev->name);
1198 if (!port->mem_res) { 1193 if (!port->mem_res) {
1199 err = -EBUSY; 1194 err = -EBUSY;
1200 goto err_unreg; 1195 goto err_npe_rel;
1201 } 1196 }
1202 1197
1203 port->plat = plat; 1198 port->plat = plat;
@@ -1215,20 +1210,25 @@ static int __devinit eth_init_one(struct platform_device *pdev)
1215 snprintf(phy_id, BUS_ID_SIZE, PHY_ID_FMT, "0", plat->phy); 1210 snprintf(phy_id, BUS_ID_SIZE, PHY_ID_FMT, "0", plat->phy);
1216 port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link, 0, 1211 port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link, 0,
1217 PHY_INTERFACE_MODE_MII); 1212 PHY_INTERFACE_MODE_MII);
1218 if (IS_ERR(port->phydev)) { 1213 if ((err = IS_ERR(port->phydev)))
1219 printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name); 1214 goto err_free_mem;
1220 return PTR_ERR(port->phydev);
1221 }
1222 1215
1223 port->phydev->irq = PHY_POLL; 1216 port->phydev->irq = PHY_POLL;
1224 1217
1218 if ((err = register_netdev(dev)))
1219 goto err_phy_dis;
1220
1225 printk(KERN_INFO "%s: MII PHY %i on %s\n", dev->name, plat->phy, 1221 printk(KERN_INFO "%s: MII PHY %i on %s\n", dev->name, plat->phy,
1226 npe_name(port->npe)); 1222 npe_name(port->npe));
1227 1223
1228 return 0; 1224 return 0;
1229 1225
1230err_unreg: 1226err_phy_dis:
1231 unregister_netdev(dev); 1227 phy_disconnect(port->phydev);
1228err_free_mem:
1229 npe_port_tab[NPE_ID(port->id)] = NULL;
1230 platform_set_drvdata(pdev, NULL);
1231 release_resource(port->mem_res);
1232err_npe_rel: 1232err_npe_rel:
1233 npe_release(port->npe); 1233 npe_release(port->npe);
1234err_free: 1234err_free:
@@ -1242,6 +1242,7 @@ static int __devexit eth_remove_one(struct platform_device *pdev)
1242 struct port *port = netdev_priv(dev); 1242 struct port *port = netdev_priv(dev);
1243 1243
1244 unregister_netdev(dev); 1244 unregister_netdev(dev);
1245 phy_disconnect(port->phydev);
1245 npe_port_tab[NPE_ID(port->id)] = NULL; 1246 npe_port_tab[NPE_ID(port->id)] = NULL;
1246 platform_set_drvdata(pdev, NULL); 1247 platform_set_drvdata(pdev, NULL);
1247 npe_release(port->npe); 1248 npe_release(port->npe);
diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c
index fb57b750866b..1342418fb209 100644
--- a/drivers/net/atl1e/atl1e_main.c
+++ b/drivers/net/atl1e/atl1e_main.c
@@ -37,6 +37,7 @@ char atl1e_driver_version[] = DRV_VERSION;
37 */ 37 */
38static struct pci_device_id atl1e_pci_tbl[] = { 38static struct pci_device_id atl1e_pci_tbl[] = {
39 {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATTANSIC_L1E)}, 39 {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATTANSIC_L1E)},
40 {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, 0x1066)},
40 /* required last entry */ 41 /* required last entry */
41 { 0 } 42 { 0 }
42}; 43};
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 0ab22540bf59..4e817126e280 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -82,6 +82,12 @@
82 82
83#include "atl1.h" 83#include "atl1.h"
84 84
85#define ATLX_DRIVER_VERSION "2.1.3"
86MODULE_AUTHOR("Xiong Huang <xiong.huang@atheros.com>, \
87 Chris Snook <csnook@redhat.com>, Jay Cliburn <jcliburn@gmail.com>");
88MODULE_LICENSE("GPL");
89MODULE_VERSION(ATLX_DRIVER_VERSION);
90
85/* Temporary hack for merging atl1 and atl2 */ 91/* Temporary hack for merging atl1 and atl2 */
86#include "atlx.c" 92#include "atlx.c"
87 93
diff --git a/drivers/net/atlx/atlx.h b/drivers/net/atlx/atlx.h
index 297a03da6b7f..14054b75aa62 100644
--- a/drivers/net/atlx/atlx.h
+++ b/drivers/net/atlx/atlx.h
@@ -29,12 +29,6 @@
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/types.h> 30#include <linux/types.h>
31 31
32#define ATLX_DRIVER_VERSION "2.1.3"
33MODULE_AUTHOR("Xiong Huang <xiong.huang@atheros.com>, \
34 Chris Snook <csnook@redhat.com>, Jay Cliburn <jcliburn@gmail.com>");
35MODULE_LICENSE("GPL");
36MODULE_VERSION(ATLX_DRIVER_VERSION);
37
38#define ATLX_ERR_PHY 2 32#define ATLX_ERR_PHY 2
39#define ATLX_ERR_PHY_SPEED 7 33#define ATLX_ERR_PHY_SPEED 7
40#define ATLX_ERR_PHY_RES 8 34#define ATLX_ERR_PHY_RES 8
diff --git a/drivers/net/benet/be.h b/drivers/net/benet/be.h
index c49ddd08b2aa..b4bb06fdf307 100644
--- a/drivers/net/benet/be.h
+++ b/drivers/net/benet/be.h
@@ -35,8 +35,22 @@
35#define DRV_VER "2.0.348" 35#define DRV_VER "2.0.348"
36#define DRV_NAME "be2net" 36#define DRV_NAME "be2net"
37#define BE_NAME "ServerEngines BladeEngine2 10Gbps NIC" 37#define BE_NAME "ServerEngines BladeEngine2 10Gbps NIC"
38#define OC_NAME "Emulex OneConnect 10Gbps NIC"
38#define DRV_DESC BE_NAME "Driver" 39#define DRV_DESC BE_NAME "Driver"
39 40
41#define BE_VENDOR_ID 0x19a2
42#define BE_DEVICE_ID1 0x211
43#define OC_DEVICE_ID1 0x700
44#define OC_DEVICE_ID2 0x701
45
46static inline char *nic_name(struct pci_dev *pdev)
47{
48 if (pdev->device == OC_DEVICE_ID1 || pdev->device == OC_DEVICE_ID2)
49 return OC_NAME;
50 else
51 return BE_NAME;
52}
53
40/* Number of bytes of an RX frame that are copied to skb->data */ 54/* Number of bytes of an RX frame that are copied to skb->data */
41#define BE_HDR_LEN 64 55#define BE_HDR_LEN 64
42#define BE_MAX_JUMBO_FRAME_SIZE 9018 56#define BE_MAX_JUMBO_FRAME_SIZE 9018
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
index 30d0c81c989e..5c378b5e8e41 100644
--- a/drivers/net/benet/be_main.c
+++ b/drivers/net/benet/be_main.c
@@ -28,10 +28,10 @@ static unsigned int rx_frag_size = 2048;
28module_param(rx_frag_size, uint, S_IRUGO); 28module_param(rx_frag_size, uint, S_IRUGO);
29MODULE_PARM_DESC(rx_frag_size, "Size of a fragment that holds rcvd data."); 29MODULE_PARM_DESC(rx_frag_size, "Size of a fragment that holds rcvd data.");
30 30
31#define BE_VENDOR_ID 0x19a2
32#define BE2_DEVICE_ID_1 0x0211
33static DEFINE_PCI_DEVICE_TABLE(be_dev_ids) = { 31static DEFINE_PCI_DEVICE_TABLE(be_dev_ids) = {
34 { PCI_DEVICE(BE_VENDOR_ID, BE2_DEVICE_ID_1) }, 32 { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID1) },
33 { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID1) },
34 { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID2) },
35 { 0 } 35 { 0 }
36}; 36};
37MODULE_DEVICE_TABLE(pci, be_dev_ids); 37MODULE_DEVICE_TABLE(pci, be_dev_ids);
@@ -1859,7 +1859,7 @@ static int __devinit be_probe(struct pci_dev *pdev,
1859 if (status != 0) 1859 if (status != 0)
1860 goto stats_clean; 1860 goto stats_clean;
1861 1861
1862 dev_info(&pdev->dev, BE_NAME " port %d\n", adapter->port_num); 1862 dev_info(&pdev->dev, "%s port %d\n", nic_name(pdev), adapter->port_num);
1863 return 0; 1863 return 0;
1864 1864
1865stats_clean: 1865stats_clean:
@@ -1873,7 +1873,7 @@ rel_reg:
1873disable_dev: 1873disable_dev:
1874 pci_disable_device(pdev); 1874 pci_disable_device(pdev);
1875do_none: 1875do_none:
1876 dev_warn(&pdev->dev, BE_NAME " initialization failed\n"); 1876 dev_err(&pdev->dev, "%s initialization failed\n", nic_name(pdev));
1877 return status; 1877 return status;
1878} 1878}
1879 1879
diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c
index 9f971ed6b58d..b4da18213324 100644
--- a/drivers/net/bfin_mac.c
+++ b/drivers/net/bfin_mac.c
@@ -979,22 +979,7 @@ static int bfin_mac_open(struct net_device *dev)
979 return 0; 979 return 0;
980} 980}
981 981
982static const struct net_device_ops bfin_mac_netdev_ops = {
983 .ndo_open = bfin_mac_open,
984 .ndo_stop = bfin_mac_close,
985 .ndo_start_xmit = bfin_mac_hard_start_xmit,
986 .ndo_set_mac_address = bfin_mac_set_mac_address,
987 .ndo_tx_timeout = bfin_mac_timeout,
988 .ndo_set_multicast_list = bfin_mac_set_multicast_list,
989 .ndo_validate_addr = eth_validate_addr,
990 .ndo_change_mtu = eth_change_mtu,
991#ifdef CONFIG_NET_POLL_CONTROLLER
992 .ndo_poll_controller = bfin_mac_poll,
993#endif
994};
995
996/* 982/*
997 *
998 * this makes the board clean up everything that it can 983 * this makes the board clean up everything that it can
999 * and not talk to the outside world. Caused by 984 * and not talk to the outside world. Caused by
1000 * an 'ifconfig ethX down' 985 * an 'ifconfig ethX down'
@@ -1019,6 +1004,20 @@ static int bfin_mac_close(struct net_device *dev)
1019 return 0; 1004 return 0;
1020} 1005}
1021 1006
1007static const struct net_device_ops bfin_mac_netdev_ops = {
1008 .ndo_open = bfin_mac_open,
1009 .ndo_stop = bfin_mac_close,
1010 .ndo_start_xmit = bfin_mac_hard_start_xmit,
1011 .ndo_set_mac_address = bfin_mac_set_mac_address,
1012 .ndo_tx_timeout = bfin_mac_timeout,
1013 .ndo_set_multicast_list = bfin_mac_set_multicast_list,
1014 .ndo_validate_addr = eth_validate_addr,
1015 .ndo_change_mtu = eth_change_mtu,
1016#ifdef CONFIG_NET_POLL_CONTROLLER
1017 .ndo_poll_controller = bfin_mac_poll,
1018#endif
1019};
1020
1022static int __devinit bfin_mac_probe(struct platform_device *pdev) 1021static int __devinit bfin_mac_probe(struct platform_device *pdev)
1023{ 1022{
1024 struct net_device *ndev; 1023 struct net_device *ndev;
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index d47839184a06..b0cb29d4cc01 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -54,8 +54,8 @@
54 54
55#define DRV_MODULE_NAME "bnx2" 55#define DRV_MODULE_NAME "bnx2"
56#define PFX DRV_MODULE_NAME ": " 56#define PFX DRV_MODULE_NAME ": "
57#define DRV_MODULE_VERSION "2.0.0" 57#define DRV_MODULE_VERSION "2.0.1"
58#define DRV_MODULE_RELDATE "April 2, 2009" 58#define DRV_MODULE_RELDATE "May 6, 2009"
59#define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-4.6.16.fw" 59#define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-4.6.16.fw"
60#define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-4.6.16.fw" 60#define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-4.6.16.fw"
61#define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-4.6.17.fw" 61#define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-4.6.17.fw"
@@ -2600,6 +2600,7 @@ bnx2_get_hw_tx_cons(struct bnx2_napi *bnapi)
2600 /* Tell compiler that status block fields can change. */ 2600 /* Tell compiler that status block fields can change. */
2601 barrier(); 2601 barrier();
2602 cons = *bnapi->hw_tx_cons_ptr; 2602 cons = *bnapi->hw_tx_cons_ptr;
2603 barrier();
2603 if (unlikely((cons & MAX_TX_DESC_CNT) == MAX_TX_DESC_CNT)) 2604 if (unlikely((cons & MAX_TX_DESC_CNT) == MAX_TX_DESC_CNT))
2604 cons++; 2605 cons++;
2605 return cons; 2606 return cons;
@@ -2879,6 +2880,7 @@ bnx2_get_hw_rx_cons(struct bnx2_napi *bnapi)
2879 /* Tell compiler that status block fields can change. */ 2880 /* Tell compiler that status block fields can change. */
2880 barrier(); 2881 barrier();
2881 cons = *bnapi->hw_rx_cons_ptr; 2882 cons = *bnapi->hw_rx_cons_ptr;
2883 barrier();
2882 if (unlikely((cons & MAX_RX_DESC_CNT) == MAX_RX_DESC_CNT)) 2884 if (unlikely((cons & MAX_RX_DESC_CNT) == MAX_RX_DESC_CNT))
2883 cons++; 2885 cons++;
2884 return cons; 2886 return cons;
diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index 8c2e5ab51f08..faf094abef7f 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -1465,6 +1465,12 @@ static struct aggregator *ad_agg_selection_test(struct aggregator *best,
1465 return best; 1465 return best;
1466} 1466}
1467 1467
1468static int agg_device_up(const struct aggregator *agg)
1469{
1470 return (netif_running(agg->slave->dev) &&
1471 netif_carrier_ok(agg->slave->dev));
1472}
1473
1468/** 1474/**
1469 * ad_agg_selection_logic - select an aggregation group for a team 1475 * ad_agg_selection_logic - select an aggregation group for a team
1470 * @aggregator: the aggregator we're looking at 1476 * @aggregator: the aggregator we're looking at
@@ -1496,14 +1502,13 @@ static void ad_agg_selection_logic(struct aggregator *agg)
1496 struct port *port; 1502 struct port *port;
1497 1503
1498 origin = agg; 1504 origin = agg;
1499
1500 active = __get_active_agg(agg); 1505 active = __get_active_agg(agg);
1501 best = active; 1506 best = (active && agg_device_up(active)) ? active : NULL;
1502 1507
1503 do { 1508 do {
1504 agg->is_active = 0; 1509 agg->is_active = 0;
1505 1510
1506 if (agg->num_of_ports) 1511 if (agg->num_of_ports && agg_device_up(agg))
1507 best = ad_agg_selection_test(best, agg); 1512 best = ad_agg_selection_test(best, agg);
1508 1513
1509 } while ((agg = __get_next_agg(agg))); 1514 } while ((agg = __get_next_agg(agg)));
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 2188a96fc090..74824028f85c 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -5181,7 +5181,6 @@ static int __init bonding_init(void)
5181{ 5181{
5182 int i; 5182 int i;
5183 int res; 5183 int res;
5184 struct bonding *bond;
5185 5184
5186 printk(KERN_INFO "%s", version); 5185 printk(KERN_INFO "%s", version);
5187 5186
@@ -5212,13 +5211,6 @@ static int __init bonding_init(void)
5212 5211
5213 goto out; 5212 goto out;
5214err: 5213err:
5215 list_for_each_entry(bond, &bond_dev_list, bond_list) {
5216 bond_work_cancel_all(bond);
5217 destroy_workqueue(bond->wq);
5218 }
5219
5220 bond_destroy_sysfs();
5221
5222 rtnl_lock(); 5214 rtnl_lock();
5223 bond_free_all(); 5215 bond_free_all();
5224 rtnl_unlock(); 5216 rtnl_unlock();
diff --git a/drivers/net/cxgb3/adapter.h b/drivers/net/cxgb3/adapter.h
index 714df2b675e6..c888e97c9671 100644
--- a/drivers/net/cxgb3/adapter.h
+++ b/drivers/net/cxgb3/adapter.h
@@ -85,8 +85,8 @@ struct fl_pg_chunk {
85 struct page *page; 85 struct page *page;
86 void *va; 86 void *va;
87 unsigned int offset; 87 unsigned int offset;
88 u64 *p_cnt; 88 unsigned long *p_cnt;
89 DECLARE_PCI_UNMAP_ADDR(mapping); 89 dma_addr_t mapping;
90}; 90};
91 91
92struct rx_desc; 92struct rx_desc;
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index 7ea48414c6cb..17858b9a5830 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -2496,14 +2496,16 @@ static void check_link_status(struct adapter *adapter)
2496 for_each_port(adapter, i) { 2496 for_each_port(adapter, i) {
2497 struct net_device *dev = adapter->port[i]; 2497 struct net_device *dev = adapter->port[i];
2498 struct port_info *p = netdev_priv(dev); 2498 struct port_info *p = netdev_priv(dev);
2499 int link_fault;
2499 2500
2500 spin_lock_irq(&adapter->work_lock); 2501 spin_lock_irq(&adapter->work_lock);
2501 if (p->link_fault) { 2502 link_fault = p->link_fault;
2503 spin_unlock_irq(&adapter->work_lock);
2504
2505 if (link_fault) {
2502 t3_link_fault(adapter, i); 2506 t3_link_fault(adapter, i);
2503 spin_unlock_irq(&adapter->work_lock);
2504 continue; 2507 continue;
2505 } 2508 }
2506 spin_unlock_irq(&adapter->work_lock);
2507 2509
2508 if (!(p->phy.caps & SUPPORTED_IRQ) && netif_running(dev)) { 2510 if (!(p->phy.caps & SUPPORTED_IRQ) && netif_running(dev)) {
2509 t3_xgm_intr_disable(adapter, i); 2511 t3_xgm_intr_disable(adapter, i);
diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c
index 26d3587f3399..b3ee2bc1a005 100644
--- a/drivers/net/cxgb3/sge.c
+++ b/drivers/net/cxgb3/sge.c
@@ -355,7 +355,7 @@ static void clear_rx_desc(struct pci_dev *pdev, const struct sge_fl *q,
355 (*d->pg_chunk.p_cnt)--; 355 (*d->pg_chunk.p_cnt)--;
356 if (!*d->pg_chunk.p_cnt) 356 if (!*d->pg_chunk.p_cnt)
357 pci_unmap_page(pdev, 357 pci_unmap_page(pdev,
358 pci_unmap_addr(&d->pg_chunk, mapping), 358 d->pg_chunk.mapping,
359 q->alloc_size, PCI_DMA_FROMDEVICE); 359 q->alloc_size, PCI_DMA_FROMDEVICE);
360 360
361 put_page(d->pg_chunk.page); 361 put_page(d->pg_chunk.page);
@@ -454,7 +454,7 @@ static int alloc_pg_chunk(struct adapter *adapter, struct sge_fl *q,
454 q->pg_chunk.offset = 0; 454 q->pg_chunk.offset = 0;
455 mapping = pci_map_page(adapter->pdev, q->pg_chunk.page, 455 mapping = pci_map_page(adapter->pdev, q->pg_chunk.page,
456 0, q->alloc_size, PCI_DMA_FROMDEVICE); 456 0, q->alloc_size, PCI_DMA_FROMDEVICE);
457 pci_unmap_addr_set(&q->pg_chunk, mapping, mapping); 457 q->pg_chunk.mapping = mapping;
458 } 458 }
459 sd->pg_chunk = q->pg_chunk; 459 sd->pg_chunk = q->pg_chunk;
460 460
@@ -511,8 +511,7 @@ static int refill_fl(struct adapter *adap, struct sge_fl *q, int n, gfp_t gfp)
511nomem: q->alloc_failed++; 511nomem: q->alloc_failed++;
512 break; 512 break;
513 } 513 }
514 mapping = pci_unmap_addr(&sd->pg_chunk, mapping) + 514 mapping = sd->pg_chunk.mapping + sd->pg_chunk.offset;
515 sd->pg_chunk.offset;
516 pci_unmap_addr_set(sd, dma_addr, mapping); 515 pci_unmap_addr_set(sd, dma_addr, mapping);
517 516
518 add_one_rx_chunk(mapping, d, q->gen); 517 add_one_rx_chunk(mapping, d, q->gen);
@@ -881,7 +880,7 @@ recycle:
881 (*sd->pg_chunk.p_cnt)--; 880 (*sd->pg_chunk.p_cnt)--;
882 if (!*sd->pg_chunk.p_cnt) 881 if (!*sd->pg_chunk.p_cnt)
883 pci_unmap_page(adap->pdev, 882 pci_unmap_page(adap->pdev,
884 pci_unmap_addr(&sd->pg_chunk, mapping), 883 sd->pg_chunk.mapping,
885 fl->alloc_size, 884 fl->alloc_size,
886 PCI_DMA_FROMDEVICE); 885 PCI_DMA_FROMDEVICE);
887 if (!skb) { 886 if (!skb) {
@@ -2096,7 +2095,7 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs,
2096 (*sd->pg_chunk.p_cnt)--; 2095 (*sd->pg_chunk.p_cnt)--;
2097 if (!*sd->pg_chunk.p_cnt) 2096 if (!*sd->pg_chunk.p_cnt)
2098 pci_unmap_page(adap->pdev, 2097 pci_unmap_page(adap->pdev,
2099 pci_unmap_addr(&sd->pg_chunk, mapping), 2098 sd->pg_chunk.mapping,
2100 fl->alloc_size, 2099 fl->alloc_size,
2101 PCI_DMA_FROMDEVICE); 2100 PCI_DMA_FROMDEVICE);
2102 2101
diff --git a/drivers/net/cxgb3/t3_hw.c b/drivers/net/cxgb3/t3_hw.c
index 4f68aeb2679a..4950d5d789ae 100644
--- a/drivers/net/cxgb3/t3_hw.c
+++ b/drivers/net/cxgb3/t3_hw.c
@@ -1274,6 +1274,11 @@ void t3_link_fault(struct adapter *adapter, int port_id)
1274 A_XGM_INT_STATUS + mac->offset); 1274 A_XGM_INT_STATUS + mac->offset);
1275 link_fault &= F_LINKFAULTCHANGE; 1275 link_fault &= F_LINKFAULTCHANGE;
1276 1276
1277 link_ok = lc->link_ok;
1278 speed = lc->speed;
1279 duplex = lc->duplex;
1280 fc = lc->fc;
1281
1277 phy->ops->get_link_status(phy, &link_ok, &speed, &duplex, &fc); 1282 phy->ops->get_link_status(phy, &link_ok, &speed, &duplex, &fc);
1278 1283
1279 if (link_fault) { 1284 if (link_fault) {
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index b1419e21b46b..fffb006b7d95 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -4027,8 +4027,9 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
4027 PCI_DMA_FROMDEVICE); 4027 PCI_DMA_FROMDEVICE);
4028 4028
4029 length = le16_to_cpu(rx_desc->length); 4029 length = le16_to_cpu(rx_desc->length);
4030 4030 /* !EOP means multiple descriptors were used to store a single
4031 if (unlikely(!(status & E1000_RXD_STAT_EOP))) { 4031 * packet, also make sure the frame isn't just CRC only */
4032 if (unlikely(!(status & E1000_RXD_STAT_EOP) || (length <= 4))) {
4032 /* All receives must fit into a single buffer */ 4033 /* All receives must fit into a single buffer */
4033 E1000_DBG("%s: Receive packet consumed multiple" 4034 E1000_DBG("%s: Receive packet consumed multiple"
4034 " buffers\n", netdev->name); 4035 " buffers\n", netdev->name);
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index f9a846b1b92f..9f6a68fb7b45 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -897,6 +897,12 @@ enum {
897}; 897};
898static int phy_cross = NV_CROSSOVER_DETECTION_DISABLED; 898static int phy_cross = NV_CROSSOVER_DETECTION_DISABLED;
899 899
900/*
901 * Power down phy when interface is down (persists through reboot;
902 * older Linux and other OSes may not power it up again)
903 */
904static int phy_power_down = 0;
905
900static inline struct fe_priv *get_nvpriv(struct net_device *dev) 906static inline struct fe_priv *get_nvpriv(struct net_device *dev)
901{ 907{
902 return netdev_priv(dev); 908 return netdev_priv(dev);
@@ -1485,7 +1491,10 @@ static int phy_init(struct net_device *dev)
1485 1491
1486 /* restart auto negotiation, power down phy */ 1492 /* restart auto negotiation, power down phy */
1487 mii_control = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); 1493 mii_control = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ);
1488 mii_control |= (BMCR_ANRESTART | BMCR_ANENABLE | BMCR_PDOWN); 1494 mii_control |= (BMCR_ANRESTART | BMCR_ANENABLE);
1495 if (phy_power_down) {
1496 mii_control |= BMCR_PDOWN;
1497 }
1489 if (mii_rw(dev, np->phyaddr, MII_BMCR, mii_control)) { 1498 if (mii_rw(dev, np->phyaddr, MII_BMCR, mii_control)) {
1490 return PHY_ERROR; 1499 return PHY_ERROR;
1491 } 1500 }
@@ -5513,7 +5522,7 @@ static int nv_close(struct net_device *dev)
5513 5522
5514 nv_drain_rxtx(dev); 5523 nv_drain_rxtx(dev);
5515 5524
5516 if (np->wolenabled) { 5525 if (np->wolenabled || !phy_power_down) {
5517 writel(NVREG_PFF_ALWAYS|NVREG_PFF_MYADDR, base + NvRegPacketFilterFlags); 5526 writel(NVREG_PFF_ALWAYS|NVREG_PFF_MYADDR, base + NvRegPacketFilterFlags);
5518 nv_start_rx(dev); 5527 nv_start_rx(dev);
5519 } else { 5528 } else {
@@ -6367,6 +6376,8 @@ module_param(dma_64bit, int, 0);
6367MODULE_PARM_DESC(dma_64bit, "High DMA is enabled by setting to 1 and disabled by setting to 0."); 6376MODULE_PARM_DESC(dma_64bit, "High DMA is enabled by setting to 1 and disabled by setting to 0.");
6368module_param(phy_cross, int, 0); 6377module_param(phy_cross, int, 0);
6369MODULE_PARM_DESC(phy_cross, "Phy crossover detection for Realtek 8201 phy is enabled by setting to 1 and disabled by setting to 0."); 6378MODULE_PARM_DESC(phy_cross, "Phy crossover detection for Realtek 8201 phy is enabled by setting to 1 and disabled by setting to 0.");
6379module_param(phy_power_down, int, 0);
6380MODULE_PARM_DESC(phy_power_down, "Power down phy and disable link when interface is down (1), or leave phy powered up (0).");
6370 6381
6371MODULE_AUTHOR("Manfred Spraul <manfred@colorfullife.com>"); 6382MODULE_AUTHOR("Manfred Spraul <manfred@colorfullife.com>");
6372MODULE_DESCRIPTION("Reverse Engineered nForce ethernet driver"); 6383MODULE_DESCRIPTION("Reverse Engineered nForce ethernet driver");
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index b2c49679bba7..a0519184e54e 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -1885,8 +1885,17 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit)
1885 1885
1886 if (unlikely(!newskb)) 1886 if (unlikely(!newskb))
1887 newskb = skb; 1887 newskb = skb;
1888 else if (skb) 1888 else if (skb) {
1889 /*
1890 * We need to reset ->data to what it
1891 * was before gfar_new_skb() re-aligned
1892 * it to an RXBUF_ALIGNMENT boundary
1893 * before we put the skb back on the
1894 * recycle list.
1895 */
1896 skb->data = skb->head + NET_SKB_PAD;
1889 __skb_queue_head(&priv->rx_recycle, skb); 1897 __skb_queue_head(&priv->rx_recycle, skb);
1898 }
1890 } else { 1899 } else {
1891 /* Increment the number of packets */ 1900 /* Increment the number of packets */
1892 dev->stats.rx_packets++; 1901 dev->stats.rx_packets++;
diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h
index 0642d52aef5c..cf352961ae9b 100644
--- a/drivers/net/gianfar.h
+++ b/drivers/net/gianfar.h
@@ -259,7 +259,7 @@ extern const char gfar_driver_version[];
259(IEVENT_RXC | IEVENT_BSY | IEVENT_EBERR | IEVENT_MSRO | \ 259(IEVENT_RXC | IEVENT_BSY | IEVENT_EBERR | IEVENT_MSRO | \
260 IEVENT_BABT | IEVENT_TXC | IEVENT_TXE | IEVENT_LC \ 260 IEVENT_BABT | IEVENT_TXC | IEVENT_TXE | IEVENT_LC \
261 | IEVENT_CRL | IEVENT_XFUN | IEVENT_DPE | IEVENT_PERR \ 261 | IEVENT_CRL | IEVENT_XFUN | IEVENT_DPE | IEVENT_PERR \
262 | IEVENT_MAG) 262 | IEVENT_MAG | IEVENT_BABR)
263 263
264#define IMASK_INIT_CLEAR 0x00000000 264#define IMASK_INIT_CLEAR 0x00000000
265#define IMASK_BABR 0x80000000 265#define IMASK_BABR 0x80000000
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 08c801490c72..e25343588fc7 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -2006,7 +2006,7 @@ static void igb_setup_rctl(struct igb_adapter *adapter)
2006 struct e1000_hw *hw = &adapter->hw; 2006 struct e1000_hw *hw = &adapter->hw;
2007 u32 rctl; 2007 u32 rctl;
2008 u32 srrctl = 0; 2008 u32 srrctl = 0;
2009 int i, j; 2009 int i;
2010 2010
2011 rctl = rd32(E1000_RCTL); 2011 rctl = rd32(E1000_RCTL);
2012 2012
@@ -2071,8 +2071,6 @@ static void igb_setup_rctl(struct igb_adapter *adapter)
2071 if (adapter->vfs_allocated_count) { 2071 if (adapter->vfs_allocated_count) {
2072 u32 vmolr; 2072 u32 vmolr;
2073 2073
2074 j = adapter->rx_ring[0].reg_idx;
2075
2076 /* set all queue drop enable bits */ 2074 /* set all queue drop enable bits */
2077 wr32(E1000_QDE, ALL_QUEUES); 2075 wr32(E1000_QDE, ALL_QUEUES);
2078 srrctl |= E1000_SRRCTL_DROP_EN; 2076 srrctl |= E1000_SRRCTL_DROP_EN;
@@ -2080,16 +2078,16 @@ static void igb_setup_rctl(struct igb_adapter *adapter)
2080 /* disable queue 0 to prevent tail write w/o re-config */ 2078 /* disable queue 0 to prevent tail write w/o re-config */
2081 wr32(E1000_RXDCTL(0), 0); 2079 wr32(E1000_RXDCTL(0), 0);
2082 2080
2083 vmolr = rd32(E1000_VMOLR(j)); 2081 vmolr = rd32(E1000_VMOLR(adapter->vfs_allocated_count));
2084 if (rctl & E1000_RCTL_LPE) 2082 if (rctl & E1000_RCTL_LPE)
2085 vmolr |= E1000_VMOLR_LPE; 2083 vmolr |= E1000_VMOLR_LPE;
2086 if (adapter->num_rx_queues > 0) 2084 if (adapter->num_rx_queues > 1)
2087 vmolr |= E1000_VMOLR_RSSE; 2085 vmolr |= E1000_VMOLR_RSSE;
2088 wr32(E1000_VMOLR(j), vmolr); 2086 wr32(E1000_VMOLR(adapter->vfs_allocated_count), vmolr);
2089 } 2087 }
2090 2088
2091 for (i = 0; i < adapter->num_rx_queues; i++) { 2089 for (i = 0; i < adapter->num_rx_queues; i++) {
2092 j = adapter->rx_ring[i].reg_idx; 2090 int j = adapter->rx_ring[i].reg_idx;
2093 wr32(E1000_SRRCTL(j), srrctl); 2091 wr32(E1000_SRRCTL(j), srrctl);
2094 } 2092 }
2095 2093
diff --git a/drivers/net/mac8390.c b/drivers/net/mac8390.c
index 8e884869a05b..22e74a0e0361 100644
--- a/drivers/net/mac8390.c
+++ b/drivers/net/mac8390.c
@@ -304,7 +304,7 @@ struct net_device * __init mac8390_probe(int unit)
304 if (!MACH_IS_MAC) 304 if (!MACH_IS_MAC)
305 return ERR_PTR(-ENODEV); 305 return ERR_PTR(-ENODEV);
306 306
307 dev = alloc_ei_netdev(); 307 dev = ____alloc_ei_netdev(0);
308 if (!dev) 308 if (!dev)
309 return ERR_PTR(-ENOMEM); 309 return ERR_PTR(-ENOMEM);
310 310
@@ -481,15 +481,15 @@ void cleanup_module(void)
481static const struct net_device_ops mac8390_netdev_ops = { 481static const struct net_device_ops mac8390_netdev_ops = {
482 .ndo_open = mac8390_open, 482 .ndo_open = mac8390_open,
483 .ndo_stop = mac8390_close, 483 .ndo_stop = mac8390_close,
484 .ndo_start_xmit = ei_start_xmit, 484 .ndo_start_xmit = __ei_start_xmit,
485 .ndo_tx_timeout = ei_tx_timeout, 485 .ndo_tx_timeout = __ei_tx_timeout,
486 .ndo_get_stats = ei_get_stats, 486 .ndo_get_stats = __ei_get_stats,
487 .ndo_set_multicast_list = ei_set_multicast_list, 487 .ndo_set_multicast_list = __ei_set_multicast_list,
488 .ndo_validate_addr = eth_validate_addr, 488 .ndo_validate_addr = eth_validate_addr,
489 .ndo_set_mac_address = eth_mac_addr, 489 .ndo_set_mac_address = eth_mac_addr,
490 .ndo_change_mtu = eth_change_mtu, 490 .ndo_change_mtu = eth_change_mtu,
491#ifdef CONFIG_NET_POLL_CONTROLLER 491#ifdef CONFIG_NET_POLL_CONTROLLER
492 .ndo_poll_controller = ei_poll, 492 .ndo_poll_controller = __ei_poll,
493#endif 493#endif
494}; 494};
495 495
diff --git a/drivers/net/meth.c b/drivers/net/meth.c
index aa08987f6e81..dbd3436912b8 100644
--- a/drivers/net/meth.c
+++ b/drivers/net/meth.c
@@ -127,11 +127,11 @@ static unsigned long mdio_read(struct meth_private *priv, unsigned long phyreg)
127static int mdio_probe(struct meth_private *priv) 127static int mdio_probe(struct meth_private *priv)
128{ 128{
129 int i; 129 int i;
130 unsigned long p2, p3; 130 unsigned long p2, p3, flags;
131 /* check if phy is detected already */ 131 /* check if phy is detected already */
132 if(priv->phy_addr>=0&&priv->phy_addr<32) 132 if(priv->phy_addr>=0&&priv->phy_addr<32)
133 return 0; 133 return 0;
134 spin_lock(&priv->meth_lock); 134 spin_lock_irqsave(&priv->meth_lock, flags);
135 for (i=0;i<32;++i){ 135 for (i=0;i<32;++i){
136 priv->phy_addr=i; 136 priv->phy_addr=i;
137 p2=mdio_read(priv,2); 137 p2=mdio_read(priv,2);
@@ -157,7 +157,7 @@ static int mdio_probe(struct meth_private *priv)
157 break; 157 break;
158 } 158 }
159 } 159 }
160 spin_unlock(&priv->meth_lock); 160 spin_unlock_irqrestore(&priv->meth_lock, flags);
161 if(priv->phy_addr<32) { 161 if(priv->phy_addr<32) {
162 return 0; 162 return 0;
163 } 163 }
@@ -373,14 +373,14 @@ static int meth_release(struct net_device *dev)
373static void meth_rx(struct net_device* dev, unsigned long int_status) 373static void meth_rx(struct net_device* dev, unsigned long int_status)
374{ 374{
375 struct sk_buff *skb; 375 struct sk_buff *skb;
376 unsigned long status; 376 unsigned long status, flags;
377 struct meth_private *priv = netdev_priv(dev); 377 struct meth_private *priv = netdev_priv(dev);
378 unsigned long fifo_rptr = (int_status & METH_INT_RX_RPTR_MASK) >> 8; 378 unsigned long fifo_rptr = (int_status & METH_INT_RX_RPTR_MASK) >> 8;
379 379
380 spin_lock(&priv->meth_lock); 380 spin_lock_irqsave(&priv->meth_lock, flags);
381 priv->dma_ctrl &= ~METH_DMA_RX_INT_EN; 381 priv->dma_ctrl &= ~METH_DMA_RX_INT_EN;
382 mace->eth.dma_ctrl = priv->dma_ctrl; 382 mace->eth.dma_ctrl = priv->dma_ctrl;
383 spin_unlock(&priv->meth_lock); 383 spin_unlock_irqrestore(&priv->meth_lock, flags);
384 384
385 if (int_status & METH_INT_RX_UNDERFLOW) { 385 if (int_status & METH_INT_RX_UNDERFLOW) {
386 fifo_rptr = (fifo_rptr - 1) & 0x0f; 386 fifo_rptr = (fifo_rptr - 1) & 0x0f;
@@ -452,12 +452,12 @@ static void meth_rx(struct net_device* dev, unsigned long int_status)
452 mace->eth.rx_fifo = priv->rx_ring_dmas[priv->rx_write]; 452 mace->eth.rx_fifo = priv->rx_ring_dmas[priv->rx_write];
453 ADVANCE_RX_PTR(priv->rx_write); 453 ADVANCE_RX_PTR(priv->rx_write);
454 } 454 }
455 spin_lock(&priv->meth_lock); 455 spin_lock_irqsave(&priv->meth_lock, flags);
456 /* In case there was underflow, and Rx DMA was disabled */ 456 /* In case there was underflow, and Rx DMA was disabled */
457 priv->dma_ctrl |= METH_DMA_RX_INT_EN | METH_DMA_RX_EN; 457 priv->dma_ctrl |= METH_DMA_RX_INT_EN | METH_DMA_RX_EN;
458 mace->eth.dma_ctrl = priv->dma_ctrl; 458 mace->eth.dma_ctrl = priv->dma_ctrl;
459 mace->eth.int_stat = METH_INT_RX_THRESHOLD; 459 mace->eth.int_stat = METH_INT_RX_THRESHOLD;
460 spin_unlock(&priv->meth_lock); 460 spin_unlock_irqrestore(&priv->meth_lock, flags);
461} 461}
462 462
463static int meth_tx_full(struct net_device *dev) 463static int meth_tx_full(struct net_device *dev)
@@ -470,11 +470,11 @@ static int meth_tx_full(struct net_device *dev)
470static void meth_tx_cleanup(struct net_device* dev, unsigned long int_status) 470static void meth_tx_cleanup(struct net_device* dev, unsigned long int_status)
471{ 471{
472 struct meth_private *priv = netdev_priv(dev); 472 struct meth_private *priv = netdev_priv(dev);
473 unsigned long status; 473 unsigned long status, flags;
474 struct sk_buff *skb; 474 struct sk_buff *skb;
475 unsigned long rptr = (int_status&TX_INFO_RPTR) >> 16; 475 unsigned long rptr = (int_status&TX_INFO_RPTR) >> 16;
476 476
477 spin_lock(&priv->meth_lock); 477 spin_lock_irqsave(&priv->meth_lock, flags);
478 478
479 /* Stop DMA notification */ 479 /* Stop DMA notification */
480 priv->dma_ctrl &= ~(METH_DMA_TX_INT_EN); 480 priv->dma_ctrl &= ~(METH_DMA_TX_INT_EN);
@@ -527,12 +527,13 @@ static void meth_tx_cleanup(struct net_device* dev, unsigned long int_status)
527 } 527 }
528 528
529 mace->eth.int_stat = METH_INT_TX_EMPTY | METH_INT_TX_PKT; 529 mace->eth.int_stat = METH_INT_TX_EMPTY | METH_INT_TX_PKT;
530 spin_unlock(&priv->meth_lock); 530 spin_unlock_irqrestore(&priv->meth_lock, flags);
531} 531}
532 532
533static void meth_error(struct net_device* dev, unsigned status) 533static void meth_error(struct net_device* dev, unsigned status)
534{ 534{
535 struct meth_private *priv = netdev_priv(dev); 535 struct meth_private *priv = netdev_priv(dev);
536 unsigned long flags;
536 537
537 printk(KERN_WARNING "meth: error status: 0x%08x\n",status); 538 printk(KERN_WARNING "meth: error status: 0x%08x\n",status);
538 /* check for errors too... */ 539 /* check for errors too... */
@@ -547,7 +548,7 @@ static void meth_error(struct net_device* dev, unsigned status)
547 printk(KERN_WARNING "meth: Rx overflow\n"); 548 printk(KERN_WARNING "meth: Rx overflow\n");
548 if (status & (METH_INT_RX_UNDERFLOW)) { 549 if (status & (METH_INT_RX_UNDERFLOW)) {
549 printk(KERN_WARNING "meth: Rx underflow\n"); 550 printk(KERN_WARNING "meth: Rx underflow\n");
550 spin_lock(&priv->meth_lock); 551 spin_lock_irqsave(&priv->meth_lock, flags);
551 mace->eth.int_stat = METH_INT_RX_UNDERFLOW; 552 mace->eth.int_stat = METH_INT_RX_UNDERFLOW;
552 /* more underflow interrupts will be delivered, 553 /* more underflow interrupts will be delivered,
553 * effectively throwing us into an infinite loop. 554 * effectively throwing us into an infinite loop.
@@ -555,7 +556,7 @@ static void meth_error(struct net_device* dev, unsigned status)
555 priv->dma_ctrl &= ~METH_DMA_RX_EN; 556 priv->dma_ctrl &= ~METH_DMA_RX_EN;
556 mace->eth.dma_ctrl = priv->dma_ctrl; 557 mace->eth.dma_ctrl = priv->dma_ctrl;
557 DPRINTK("Disabled meth Rx DMA temporarily\n"); 558 DPRINTK("Disabled meth Rx DMA temporarily\n");
558 spin_unlock(&priv->meth_lock); 559 spin_unlock_irqrestore(&priv->meth_lock, flags);
559 } 560 }
560 mace->eth.int_stat = METH_INT_ERROR; 561 mace->eth.int_stat = METH_INT_ERROR;
561} 562}
diff --git a/drivers/net/mlx4/en_cq.c b/drivers/net/mlx4/en_cq.c
index 91f50de84be9..a276125b709b 100644
--- a/drivers/net/mlx4/en_cq.c
+++ b/drivers/net/mlx4/en_cq.c
@@ -125,8 +125,10 @@ void mlx4_en_deactivate_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq)
125 125
126 if (cq->is_tx) 126 if (cq->is_tx)
127 del_timer(&cq->timer); 127 del_timer(&cq->timer);
128 else 128 else {
129 napi_disable(&cq->napi); 129 napi_disable(&cq->napi);
130 netif_napi_del(&cq->napi);
131 }
130 132
131 mlx4_cq_free(mdev->dev, &cq->mcq); 133 mlx4_cq_free(mdev->dev, &cq->mcq);
132} 134}
diff --git a/drivers/net/mlx4/en_rx.c b/drivers/net/mlx4/en_rx.c
index 7942c4d3cd88..9ee873e872b3 100644
--- a/drivers/net/mlx4/en_rx.c
+++ b/drivers/net/mlx4/en_rx.c
@@ -951,7 +951,6 @@ static int mlx4_en_config_rss_qp(struct mlx4_en_priv *priv,
951 if (err) { 951 if (err) {
952 mlx4_err(mdev, "Failed to allocate qp #%d\n", qpn); 952 mlx4_err(mdev, "Failed to allocate qp #%d\n", qpn);
953 goto out; 953 goto out;
954 return err;
955 } 954 }
956 qp->event = mlx4_en_sqp_event; 955 qp->event = mlx4_en_sqp_event;
957 956
diff --git a/drivers/net/mlx4/en_tx.c b/drivers/net/mlx4/en_tx.c
index ac6fc499b280..e5c98a98ad37 100644
--- a/drivers/net/mlx4/en_tx.c
+++ b/drivers/net/mlx4/en_tx.c
@@ -426,7 +426,7 @@ void mlx4_en_poll_tx_cq(unsigned long data)
426 426
427 INC_PERF_COUNTER(priv->pstats.tx_poll); 427 INC_PERF_COUNTER(priv->pstats.tx_poll);
428 428
429 if (!spin_trylock(&ring->comp_lock)) { 429 if (!spin_trylock_irq(&ring->comp_lock)) {
430 mod_timer(&cq->timer, jiffies + MLX4_EN_TX_POLL_TIMEOUT); 430 mod_timer(&cq->timer, jiffies + MLX4_EN_TX_POLL_TIMEOUT);
431 return; 431 return;
432 } 432 }
@@ -439,7 +439,7 @@ void mlx4_en_poll_tx_cq(unsigned long data)
439 if (inflight && priv->port_up) 439 if (inflight && priv->port_up)
440 mod_timer(&cq->timer, jiffies + MLX4_EN_TX_POLL_TIMEOUT); 440 mod_timer(&cq->timer, jiffies + MLX4_EN_TX_POLL_TIMEOUT);
441 441
442 spin_unlock(&ring->comp_lock); 442 spin_unlock_irq(&ring->comp_lock);
443} 443}
444 444
445static struct mlx4_en_tx_desc *mlx4_en_bounce_to_desc(struct mlx4_en_priv *priv, 445static struct mlx4_en_tx_desc *mlx4_en_bounce_to_desc(struct mlx4_en_priv *priv,
@@ -482,9 +482,9 @@ static inline void mlx4_en_xmit_poll(struct mlx4_en_priv *priv, int tx_ind)
482 482
483 /* Poll the CQ every mlx4_en_TX_MODER_POLL packets */ 483 /* Poll the CQ every mlx4_en_TX_MODER_POLL packets */
484 if ((++ring->poll_cnt & (MLX4_EN_TX_POLL_MODER - 1)) == 0) 484 if ((++ring->poll_cnt & (MLX4_EN_TX_POLL_MODER - 1)) == 0)
485 if (spin_trylock(&ring->comp_lock)) { 485 if (spin_trylock_irq(&ring->comp_lock)) {
486 mlx4_en_process_tx_cq(priv->dev, cq); 486 mlx4_en_process_tx_cq(priv->dev, cq);
487 spin_unlock(&ring->comp_lock); 487 spin_unlock_irq(&ring->comp_lock);
488 } 488 }
489} 489}
490 490
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index a400d7115f78..6bb5af35eda6 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -569,7 +569,7 @@ static int rxq_process(struct rx_queue *rxq, int budget)
569 if (rxq->rx_curr_desc == rxq->rx_ring_size) 569 if (rxq->rx_curr_desc == rxq->rx_ring_size)
570 rxq->rx_curr_desc = 0; 570 rxq->rx_curr_desc = 0;
571 571
572 dma_unmap_single(NULL, rx_desc->buf_ptr, 572 dma_unmap_single(mp->dev->dev.parent, rx_desc->buf_ptr,
573 rx_desc->buf_size, DMA_FROM_DEVICE); 573 rx_desc->buf_size, DMA_FROM_DEVICE);
574 rxq->rx_desc_count--; 574 rxq->rx_desc_count--;
575 rx++; 575 rx++;
@@ -678,8 +678,9 @@ static int rxq_refill(struct rx_queue *rxq, int budget)
678 678
679 rx_desc = rxq->rx_desc_area + rx; 679 rx_desc = rxq->rx_desc_area + rx;
680 680
681 rx_desc->buf_ptr = dma_map_single(NULL, skb->data, 681 rx_desc->buf_ptr = dma_map_single(mp->dev->dev.parent,
682 mp->skb_size, DMA_FROM_DEVICE); 682 skb->data, mp->skb_size,
683 DMA_FROM_DEVICE);
683 rx_desc->buf_size = mp->skb_size; 684 rx_desc->buf_size = mp->skb_size;
684 rxq->rx_skb[rx] = skb; 685 rxq->rx_skb[rx] = skb;
685 wmb(); 686 wmb();
@@ -718,6 +719,7 @@ static inline unsigned int has_tiny_unaligned_frags(struct sk_buff *skb)
718 719
719static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb) 720static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb)
720{ 721{
722 struct mv643xx_eth_private *mp = txq_to_mp(txq);
721 int nr_frags = skb_shinfo(skb)->nr_frags; 723 int nr_frags = skb_shinfo(skb)->nr_frags;
722 int frag; 724 int frag;
723 725
@@ -746,10 +748,10 @@ static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb)
746 748
747 desc->l4i_chk = 0; 749 desc->l4i_chk = 0;
748 desc->byte_cnt = this_frag->size; 750 desc->byte_cnt = this_frag->size;
749 desc->buf_ptr = dma_map_page(NULL, this_frag->page, 751 desc->buf_ptr = dma_map_page(mp->dev->dev.parent,
750 this_frag->page_offset, 752 this_frag->page,
751 this_frag->size, 753 this_frag->page_offset,
752 DMA_TO_DEVICE); 754 this_frag->size, DMA_TO_DEVICE);
753 } 755 }
754} 756}
755 757
@@ -826,7 +828,8 @@ no_csum:
826 828
827 desc->l4i_chk = l4i_chk; 829 desc->l4i_chk = l4i_chk;
828 desc->byte_cnt = length; 830 desc->byte_cnt = length;
829 desc->buf_ptr = dma_map_single(NULL, skb->data, length, DMA_TO_DEVICE); 831 desc->buf_ptr = dma_map_single(mp->dev->dev.parent, skb->data,
832 length, DMA_TO_DEVICE);
830 833
831 __skb_queue_tail(&txq->tx_skb, skb); 834 __skb_queue_tail(&txq->tx_skb, skb);
832 835
@@ -956,10 +959,10 @@ static int txq_reclaim(struct tx_queue *txq, int budget, int force)
956 } 959 }
957 960
958 if (cmd_sts & TX_FIRST_DESC) { 961 if (cmd_sts & TX_FIRST_DESC) {
959 dma_unmap_single(NULL, desc->buf_ptr, 962 dma_unmap_single(mp->dev->dev.parent, desc->buf_ptr,
960 desc->byte_cnt, DMA_TO_DEVICE); 963 desc->byte_cnt, DMA_TO_DEVICE);
961 } else { 964 } else {
962 dma_unmap_page(NULL, desc->buf_ptr, 965 dma_unmap_page(mp->dev->dev.parent, desc->buf_ptr,
963 desc->byte_cnt, DMA_TO_DEVICE); 966 desc->byte_cnt, DMA_TO_DEVICE);
964 } 967 }
965 968
@@ -1894,9 +1897,9 @@ static int rxq_init(struct mv643xx_eth_private *mp, int index)
1894 mp->rx_desc_sram_size); 1897 mp->rx_desc_sram_size);
1895 rxq->rx_desc_dma = mp->rx_desc_sram_addr; 1898 rxq->rx_desc_dma = mp->rx_desc_sram_addr;
1896 } else { 1899 } else {
1897 rxq->rx_desc_area = dma_alloc_coherent(NULL, size, 1900 rxq->rx_desc_area = dma_alloc_coherent(mp->dev->dev.parent,
1898 &rxq->rx_desc_dma, 1901 size, &rxq->rx_desc_dma,
1899 GFP_KERNEL); 1902 GFP_KERNEL);
1900 } 1903 }
1901 1904
1902 if (rxq->rx_desc_area == NULL) { 1905 if (rxq->rx_desc_area == NULL) {
@@ -1947,7 +1950,7 @@ out_free:
1947 if (index == 0 && size <= mp->rx_desc_sram_size) 1950 if (index == 0 && size <= mp->rx_desc_sram_size)
1948 iounmap(rxq->rx_desc_area); 1951 iounmap(rxq->rx_desc_area);
1949 else 1952 else
1950 dma_free_coherent(NULL, size, 1953 dma_free_coherent(mp->dev->dev.parent, size,
1951 rxq->rx_desc_area, 1954 rxq->rx_desc_area,
1952 rxq->rx_desc_dma); 1955 rxq->rx_desc_dma);
1953 1956
@@ -1979,7 +1982,7 @@ static void rxq_deinit(struct rx_queue *rxq)
1979 rxq->rx_desc_area_size <= mp->rx_desc_sram_size) 1982 rxq->rx_desc_area_size <= mp->rx_desc_sram_size)
1980 iounmap(rxq->rx_desc_area); 1983 iounmap(rxq->rx_desc_area);
1981 else 1984 else
1982 dma_free_coherent(NULL, rxq->rx_desc_area_size, 1985 dma_free_coherent(mp->dev->dev.parent, rxq->rx_desc_area_size,
1983 rxq->rx_desc_area, rxq->rx_desc_dma); 1986 rxq->rx_desc_area, rxq->rx_desc_dma);
1984 1987
1985 kfree(rxq->rx_skb); 1988 kfree(rxq->rx_skb);
@@ -2007,9 +2010,9 @@ static int txq_init(struct mv643xx_eth_private *mp, int index)
2007 mp->tx_desc_sram_size); 2010 mp->tx_desc_sram_size);
2008 txq->tx_desc_dma = mp->tx_desc_sram_addr; 2011 txq->tx_desc_dma = mp->tx_desc_sram_addr;
2009 } else { 2012 } else {
2010 txq->tx_desc_area = dma_alloc_coherent(NULL, size, 2013 txq->tx_desc_area = dma_alloc_coherent(mp->dev->dev.parent,
2011 &txq->tx_desc_dma, 2014 size, &txq->tx_desc_dma,
2012 GFP_KERNEL); 2015 GFP_KERNEL);
2013 } 2016 }
2014 2017
2015 if (txq->tx_desc_area == NULL) { 2018 if (txq->tx_desc_area == NULL) {
@@ -2053,7 +2056,7 @@ static void txq_deinit(struct tx_queue *txq)
2053 txq->tx_desc_area_size <= mp->tx_desc_sram_size) 2056 txq->tx_desc_area_size <= mp->tx_desc_sram_size)
2054 iounmap(txq->tx_desc_area); 2057 iounmap(txq->tx_desc_area);
2055 else 2058 else
2056 dma_free_coherent(NULL, txq->tx_desc_area_size, 2059 dma_free_coherent(mp->dev->dev.parent, txq->tx_desc_area_size,
2057 txq->tx_desc_area, txq->tx_desc_dma); 2060 txq->tx_desc_area, txq->tx_desc_dma);
2058} 2061}
2059 2062
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 0b6e8c896835..3b19e0ce290f 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -66,7 +66,6 @@ static const int multicast_filter_limit = 32;
66#define RX_DMA_BURST 6 /* Maximum PCI burst, '6' is 1024 */ 66#define RX_DMA_BURST 6 /* Maximum PCI burst, '6' is 1024 */
67#define TX_DMA_BURST 6 /* Maximum PCI burst, '6' is 1024 */ 67#define TX_DMA_BURST 6 /* Maximum PCI burst, '6' is 1024 */
68#define EarlyTxThld 0x3F /* 0x3F means NO early transmit */ 68#define EarlyTxThld 0x3F /* 0x3F means NO early transmit */
69#define RxPacketMaxSize 0x3FE8 /* 16K - 1 - ETH_HLEN - VLAN - CRC... */
70#define SafeMtu 0x1c20 /* ... actually life sucks beyond ~7k */ 69#define SafeMtu 0x1c20 /* ... actually life sucks beyond ~7k */
71#define InterFrameGap 0x03 /* 3 means InterFrameGap = the shortest one */ 70#define InterFrameGap 0x03 /* 3 means InterFrameGap = the shortest one */
72 71
@@ -2357,10 +2356,10 @@ static u16 rtl_rw_cpluscmd(void __iomem *ioaddr)
2357 return cmd; 2356 return cmd;
2358} 2357}
2359 2358
2360static void rtl_set_rx_max_size(void __iomem *ioaddr) 2359static void rtl_set_rx_max_size(void __iomem *ioaddr, unsigned int rx_buf_sz)
2361{ 2360{
2362 /* Low hurts. Let's disable the filtering. */ 2361 /* Low hurts. Let's disable the filtering. */
2363 RTL_W16(RxMaxSize, 16383); 2362 RTL_W16(RxMaxSize, rx_buf_sz);
2364} 2363}
2365 2364
2366static void rtl8169_set_magic_reg(void __iomem *ioaddr, unsigned mac_version) 2365static void rtl8169_set_magic_reg(void __iomem *ioaddr, unsigned mac_version)
@@ -2407,7 +2406,7 @@ static void rtl_hw_start_8169(struct net_device *dev)
2407 2406
2408 RTL_W8(EarlyTxThres, EarlyTxThld); 2407 RTL_W8(EarlyTxThres, EarlyTxThld);
2409 2408
2410 rtl_set_rx_max_size(ioaddr); 2409 rtl_set_rx_max_size(ioaddr, tp->rx_buf_sz);
2411 2410
2412 if ((tp->mac_version == RTL_GIGA_MAC_VER_01) || 2411 if ((tp->mac_version == RTL_GIGA_MAC_VER_01) ||
2413 (tp->mac_version == RTL_GIGA_MAC_VER_02) || 2412 (tp->mac_version == RTL_GIGA_MAC_VER_02) ||
@@ -2668,7 +2667,7 @@ static void rtl_hw_start_8168(struct net_device *dev)
2668 2667
2669 RTL_W8(EarlyTxThres, EarlyTxThld); 2668 RTL_W8(EarlyTxThres, EarlyTxThld);
2670 2669
2671 rtl_set_rx_max_size(ioaddr); 2670 rtl_set_rx_max_size(ioaddr, tp->rx_buf_sz);
2672 2671
2673 tp->cp_cmd |= RTL_R16(CPlusCmd) | PktCntrDisable | INTT_1; 2672 tp->cp_cmd |= RTL_R16(CPlusCmd) | PktCntrDisable | INTT_1;
2674 2673
@@ -2846,7 +2845,7 @@ static void rtl_hw_start_8101(struct net_device *dev)
2846 2845
2847 RTL_W8(EarlyTxThres, EarlyTxThld); 2846 RTL_W8(EarlyTxThres, EarlyTxThld);
2848 2847
2849 rtl_set_rx_max_size(ioaddr); 2848 rtl_set_rx_max_size(ioaddr, tp->rx_buf_sz);
2850 2849
2851 tp->cp_cmd |= rtl_rw_cpluscmd(ioaddr) | PCIMulRW; 2850 tp->cp_cmd |= rtl_rw_cpluscmd(ioaddr) | PCIMulRW;
2852 2851
@@ -3554,54 +3553,64 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
3554 int handled = 0; 3553 int handled = 0;
3555 int status; 3554 int status;
3556 3555
3556 /* loop handling interrupts until we have no new ones or
3557 * we hit a invalid/hotplug case.
3558 */
3557 status = RTL_R16(IntrStatus); 3559 status = RTL_R16(IntrStatus);
3560 while (status && status != 0xffff) {
3561 handled = 1;
3558 3562
3559 /* hotplug/major error/no more work/shared irq */ 3563 /* Handle all of the error cases first. These will reset
3560 if ((status == 0xffff) || !status) 3564 * the chip, so just exit the loop.
3561 goto out; 3565 */
3562 3566 if (unlikely(!netif_running(dev))) {
3563 handled = 1; 3567 rtl8169_asic_down(ioaddr);
3568 break;
3569 }
3564 3570
3565 if (unlikely(!netif_running(dev))) { 3571 /* Work around for rx fifo overflow */
3566 rtl8169_asic_down(ioaddr); 3572 if (unlikely(status & RxFIFOOver) &&
3567 goto out; 3573 (tp->mac_version == RTL_GIGA_MAC_VER_11)) {
3568 } 3574 netif_stop_queue(dev);
3575 rtl8169_tx_timeout(dev);
3576 break;
3577 }
3569 3578
3570 status &= tp->intr_mask; 3579 if (unlikely(status & SYSErr)) {
3571 RTL_W16(IntrStatus, 3580 rtl8169_pcierr_interrupt(dev);
3572 (status & RxFIFOOver) ? (status | RxOverflow) : status); 3581 break;
3582 }
3573 3583
3574 if (!(status & tp->intr_event)) 3584 if (status & LinkChg)
3575 goto out; 3585 rtl8169_check_link_status(dev, tp, ioaddr);
3576 3586
3577 /* Work around for rx fifo overflow */ 3587 /* We need to see the lastest version of tp->intr_mask to
3578 if (unlikely(status & RxFIFOOver) && 3588 * avoid ignoring an MSI interrupt and having to wait for
3579 (tp->mac_version == RTL_GIGA_MAC_VER_11)) { 3589 * another event which may never come.
3580 netif_stop_queue(dev); 3590 */
3581 rtl8169_tx_timeout(dev); 3591 smp_rmb();
3582 goto out; 3592 if (status & tp->intr_mask & tp->napi_event) {
3583 } 3593 RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
3594 tp->intr_mask = ~tp->napi_event;
3595
3596 if (likely(napi_schedule_prep(&tp->napi)))
3597 __napi_schedule(&tp->napi);
3598 else if (netif_msg_intr(tp)) {
3599 printk(KERN_INFO "%s: interrupt %04x in poll\n",
3600 dev->name, status);
3601 }
3602 }
3584 3603
3585 if (unlikely(status & SYSErr)) { 3604 /* We only get a new MSI interrupt when all active irq
3586 rtl8169_pcierr_interrupt(dev); 3605 * sources on the chip have been acknowledged. So, ack
3587 goto out; 3606 * everything we've seen and check if new sources have become
3607 * active to avoid blocking all interrupts from the chip.
3608 */
3609 RTL_W16(IntrStatus,
3610 (status & RxFIFOOver) ? (status | RxOverflow) : status);
3611 status = RTL_R16(IntrStatus);
3588 } 3612 }
3589 3613
3590 if (status & LinkChg)
3591 rtl8169_check_link_status(dev, tp, ioaddr);
3592
3593 if (status & tp->napi_event) {
3594 RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
3595 tp->intr_mask = ~tp->napi_event;
3596
3597 if (likely(napi_schedule_prep(&tp->napi)))
3598 __napi_schedule(&tp->napi);
3599 else if (netif_msg_intr(tp)) {
3600 printk(KERN_INFO "%s: interrupt %04x in poll\n",
3601 dev->name, status);
3602 }
3603 }
3604out:
3605 return IRQ_RETVAL(handled); 3614 return IRQ_RETVAL(handled);
3606} 3615}
3607 3616
@@ -3617,13 +3626,15 @@ static int rtl8169_poll(struct napi_struct *napi, int budget)
3617 3626
3618 if (work_done < budget) { 3627 if (work_done < budget) {
3619 napi_complete(napi); 3628 napi_complete(napi);
3620 tp->intr_mask = 0xffff; 3629
3621 /* 3630 /* We need for force the visibility of tp->intr_mask
3622 * 20040426: the barrier is not strictly required but the 3631 * for other CPUs, as we can loose an MSI interrupt
3623 * behavior of the irq handler could be less predictable 3632 * and potentially wait for a retransmit timeout if we don't.
3624 * without it. Btw, the lack of flush for the posted pci 3633 * The posted write to IntrMask is safe, as it will
3625 * write is safe - FR 3634 * eventually make it to the chip and we won't loose anything
3635 * until it does.
3626 */ 3636 */
3637 tp->intr_mask = 0xffff;
3627 smp_wmb(); 3638 smp_wmb();
3628 RTL_W16(IntrMask, tp->intr_event); 3639 RTL_W16(IntrMask, tp->intr_event);
3629 } 3640 }
diff --git a/drivers/net/vxge/vxge-traffic.c b/drivers/net/vxge/vxge-traffic.c
index 7be0ae10d69b..c2eeac4125f3 100644
--- a/drivers/net/vxge/vxge-traffic.c
+++ b/drivers/net/vxge/vxge-traffic.c
@@ -115,7 +115,7 @@ enum vxge_hw_status vxge_hw_vpath_intr_enable(struct __vxge_hw_vpath_handle *vp)
115 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_POISON| 115 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_POISON|
116 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO2_POISON| 116 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO2_POISON|
117 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_DMA_ERR| 117 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_DMA_ERR|
118 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_DMA_ERR), 0, 32), 118 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO2_DMA_ERR), 0, 32),
119 &vp_reg->kdfcctl_errors_mask); 119 &vp_reg->kdfcctl_errors_mask);
120 120
121 __vxge_hw_pio_mem_write32_upper(0, &vp_reg->vpath_ppif_int_mask); 121 __vxge_hw_pio_mem_write32_upper(0, &vp_reg->vpath_ppif_int_mask);
diff --git a/drivers/net/wan/ixp4xx_hss.c b/drivers/net/wan/ixp4xx_hss.c
index 3bf7d3f447db..765a7f5d6aa4 100644
--- a/drivers/net/wan/ixp4xx_hss.c
+++ b/drivers/net/wan/ixp4xx_hss.c
@@ -1249,7 +1249,7 @@ static int __devinit hss_init_one(struct platform_device *pdev)
1249 return -ENOMEM; 1249 return -ENOMEM;
1250 1250
1251 if ((port->npe = npe_request(0)) == NULL) { 1251 if ((port->npe = npe_request(0)) == NULL) {
1252 err = -ENOSYS; 1252 err = -ENODEV;
1253 goto err_free; 1253 goto err_free;
1254 } 1254 }
1255 1255
@@ -1311,7 +1311,7 @@ static int __init hss_init_module(void)
1311 if ((ixp4xx_read_feature_bits() & 1311 if ((ixp4xx_read_feature_bits() &
1312 (IXP4XX_FEATURE_HDLC | IXP4XX_FEATURE_HSS)) != 1312 (IXP4XX_FEATURE_HDLC | IXP4XX_FEATURE_HSS)) !=
1313 (IXP4XX_FEATURE_HDLC | IXP4XX_FEATURE_HSS)) 1313 (IXP4XX_FEATURE_HDLC | IXP4XX_FEATURE_HSS))
1314 return -ENOSYS; 1314 return -ENODEV;
1315 1315
1316 spin_lock_init(&npe_lock); 1316 spin_lock_init(&npe_lock);
1317 1317
diff --git a/drivers/net/wimax/i2400m/rx.c b/drivers/net/wimax/i2400m/rx.c
index 02419bfd64b5..f9fc38902322 100644
--- a/drivers/net/wimax/i2400m/rx.c
+++ b/drivers/net/wimax/i2400m/rx.c
@@ -819,10 +819,9 @@ void i2400m_roq_queue_update_ws(struct i2400m *i2400m, struct i2400m_roq *roq,
819 roq_data = (struct i2400m_roq_data *) &skb->cb; 819 roq_data = (struct i2400m_roq_data *) &skb->cb;
820 i2400m_net_erx(i2400m, skb, roq_data->cs); 820 i2400m_net_erx(i2400m, skb, roq_data->cs);
821 } 821 }
822 else { 822 else
823 __i2400m_roq_queue(i2400m, roq, skb, sn, nsn); 823 __i2400m_roq_queue(i2400m, roq, skb, sn, nsn);
824 __i2400m_roq_update_ws(i2400m, roq, sn + 1); 824 __i2400m_roq_update_ws(i2400m, roq, sn + 1);
825 }
826 i2400m_roq_log_add(i2400m, roq, I2400M_RO_TYPE_PACKET_WS, 825 i2400m_roq_log_add(i2400m, roq, I2400M_RO_TYPE_PACKET_WS,
827 old_ws, len, sn, nsn, roq->ws); 826 old_ws, len, sn, nsn, roq->ws);
828 } 827 }
diff --git a/drivers/net/wimax/i2400m/usb.c b/drivers/net/wimax/i2400m/usb.c
index ca4151a9e222..17851321b7fd 100644
--- a/drivers/net/wimax/i2400m/usb.c
+++ b/drivers/net/wimax/i2400m/usb.c
@@ -505,27 +505,52 @@ int i2400mu_suspend(struct usb_interface *iface, pm_message_t pm_msg)
505#ifdef CONFIG_PM 505#ifdef CONFIG_PM
506 struct usb_device *usb_dev = i2400mu->usb_dev; 506 struct usb_device *usb_dev = i2400mu->usb_dev;
507#endif 507#endif
508 unsigned is_autosuspend = 0;
508 struct i2400m *i2400m = &i2400mu->i2400m; 509 struct i2400m *i2400m = &i2400mu->i2400m;
509 510
511#ifdef CONFIG_PM
512 if (usb_dev->auto_pm > 0)
513 is_autosuspend = 1;
514#endif
515
510 d_fnstart(3, dev, "(iface %p pm_msg %u)\n", iface, pm_msg.event); 516 d_fnstart(3, dev, "(iface %p pm_msg %u)\n", iface, pm_msg.event);
511 if (i2400m->updown == 0) 517 if (i2400m->updown == 0)
512 goto no_firmware; 518 goto no_firmware;
513 d_printf(1, dev, "fw up, requesting standby\n"); 519 if (i2400m->state == I2400M_SS_DATA_PATH_CONNECTED && is_autosuspend) {
520 /* ugh -- the device is connected and this suspend
521 * request is an autosuspend one (not a system standby
522 * / hibernate).
523 *
524 * The only way the device can go to standby is if the
525 * link with the base station is in IDLE mode; that
526 * were the case, we'd be in status
527 * I2400M_SS_CONNECTED_IDLE. But we are not.
528 *
529 * If we *tell* him to go power save now, it'll reset
530 * as a precautionary measure, so if this is an
531 * autosuspend thing, say no and it'll come back
532 * later, when the link is IDLE
533 */
534 result = -EBADF;
535 d_printf(1, dev, "fw up, link up, not-idle, autosuspend: "
536 "not entering powersave\n");
537 goto error_not_now;
538 }
539 d_printf(1, dev, "fw up: entering powersave\n");
514 atomic_dec(&i2400mu->do_autopm); 540 atomic_dec(&i2400mu->do_autopm);
515 result = i2400m_cmd_enter_powersave(i2400m); 541 result = i2400m_cmd_enter_powersave(i2400m);
516 atomic_inc(&i2400mu->do_autopm); 542 atomic_inc(&i2400mu->do_autopm);
517#ifdef CONFIG_PM 543 if (result < 0 && !is_autosuspend) {
518 if (result < 0 && usb_dev->auto_pm == 0) {
519 /* System suspend, can't fail */ 544 /* System suspend, can't fail */
520 dev_err(dev, "failed to suspend, will reset on resume\n"); 545 dev_err(dev, "failed to suspend, will reset on resume\n");
521 result = 0; 546 result = 0;
522 } 547 }
523#endif
524 if (result < 0) 548 if (result < 0)
525 goto error_enter_powersave; 549 goto error_enter_powersave;
526 i2400mu_notification_release(i2400mu); 550 i2400mu_notification_release(i2400mu);
527 d_printf(1, dev, "fw up, got standby\n"); 551 d_printf(1, dev, "powersave requested\n");
528error_enter_powersave: 552error_enter_powersave:
553error_not_now:
529no_firmware: 554no_firmware:
530 d_fnend(3, dev, "(iface %p pm_msg %u) = %d\n", 555 d_fnend(3, dev, "(iface %p pm_msg %u) = %d\n",
531 iface, pm_msg.event, result); 556 iface, pm_msg.event, result);
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
index 8a0823588c51..3d94e7dfea69 100644
--- a/drivers/net/wireless/Kconfig
+++ b/drivers/net/wireless/Kconfig
@@ -430,6 +430,7 @@ config RTL8187
430 ASUS P5B Deluxe 430 ASUS P5B Deluxe
431 Toshiba Satellite Pro series of laptops 431 Toshiba Satellite Pro series of laptops
432 Asus Wireless Link 432 Asus Wireless Link
433 Linksys WUSB54GC-EU
433 434
434 Thanks to Realtek for their support! 435 Thanks to Realtek for their support!
435 436
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index c36d3a3d655f..9eabf4d1f2e7 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -6467,6 +6467,7 @@ static int airo_get_encode(struct net_device *dev,
6467{ 6467{
6468 struct airo_info *local = dev->ml_priv; 6468 struct airo_info *local = dev->ml_priv;
6469 int index = (dwrq->flags & IW_ENCODE_INDEX) - 1; 6469 int index = (dwrq->flags & IW_ENCODE_INDEX) - 1;
6470 int wep_key_len;
6470 u8 buf[16]; 6471 u8 buf[16];
6471 6472
6472 if (!local->wep_capable) 6473 if (!local->wep_capable)
@@ -6500,8 +6501,13 @@ static int airo_get_encode(struct net_device *dev,
6500 dwrq->flags |= index + 1; 6501 dwrq->flags |= index + 1;
6501 6502
6502 /* Copy the key to the user buffer */ 6503 /* Copy the key to the user buffer */
6503 dwrq->length = get_wep_key(local, index, &buf[0], sizeof(buf)); 6504 wep_key_len = get_wep_key(local, index, &buf[0], sizeof(buf));
6504 memcpy(extra, buf, dwrq->length); 6505 if (wep_key_len < 0) {
6506 dwrq->length = 0;
6507 } else {
6508 dwrq->length = wep_key_len;
6509 memcpy(extra, buf, dwrq->length);
6510 }
6505 6511
6506 return 0; 6512 return 0;
6507} 6513}
@@ -6614,7 +6620,7 @@ static int airo_get_encodeext(struct net_device *dev,
6614 struct airo_info *local = dev->ml_priv; 6620 struct airo_info *local = dev->ml_priv;
6615 struct iw_point *encoding = &wrqu->encoding; 6621 struct iw_point *encoding = &wrqu->encoding;
6616 struct iw_encode_ext *ext = (struct iw_encode_ext *)extra; 6622 struct iw_encode_ext *ext = (struct iw_encode_ext *)extra;
6617 int idx, max_key_len; 6623 int idx, max_key_len, wep_key_len;
6618 u8 buf[16]; 6624 u8 buf[16];
6619 6625
6620 if (!local->wep_capable) 6626 if (!local->wep_capable)
@@ -6658,8 +6664,13 @@ static int airo_get_encodeext(struct net_device *dev,
6658 memset(extra, 0, 16); 6664 memset(extra, 0, 16);
6659 6665
6660 /* Copy the key to the user buffer */ 6666 /* Copy the key to the user buffer */
6661 ext->key_len = get_wep_key(local, idx, &buf[0], sizeof(buf)); 6667 wep_key_len = get_wep_key(local, idx, &buf[0], sizeof(buf));
6662 memcpy(extra, buf, ext->key_len); 6668 if (wep_key_len < 0) {
6669 ext->key_len = 0;
6670 } else {
6671 ext->key_len = wep_key_len;
6672 memcpy(extra, buf, ext->key_len);
6673 }
6663 6674
6664 return 0; 6675 return 0;
6665} 6676}
diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c
index 744f4f4dd3d1..8d93ca4651b9 100644
--- a/drivers/net/wireless/at76c50x-usb.c
+++ b/drivers/net/wireless/at76c50x-usb.c
@@ -1873,18 +1873,18 @@ static void at76_dwork_hw_scan(struct work_struct *work)
1873 if (ret != CMD_STATUS_COMPLETE) { 1873 if (ret != CMD_STATUS_COMPLETE) {
1874 queue_delayed_work(priv->hw->workqueue, &priv->dwork_hw_scan, 1874 queue_delayed_work(priv->hw->workqueue, &priv->dwork_hw_scan,
1875 SCAN_POLL_INTERVAL); 1875 SCAN_POLL_INTERVAL);
1876 goto exit; 1876 mutex_unlock(&priv->mtx);
1877 return;
1877 } 1878 }
1878 1879
1879 ieee80211_scan_completed(priv->hw, false);
1880
1881 if (is_valid_ether_addr(priv->bssid)) 1880 if (is_valid_ether_addr(priv->bssid))
1882 at76_join(priv); 1881 at76_join(priv);
1883 1882
1884 ieee80211_wake_queues(priv->hw);
1885
1886exit:
1887 mutex_unlock(&priv->mtx); 1883 mutex_unlock(&priv->mtx);
1884
1885 ieee80211_scan_completed(priv->hw, false);
1886
1887 ieee80211_wake_queues(priv->hw);
1888} 1888}
1889 1889
1890static int at76_hw_scan(struct ieee80211_hw *hw, 1890static int at76_hw_scan(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index a08bc8a4fb69..32df27a9c7a2 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -214,7 +214,7 @@ static struct pci_driver ath5k_pci_driver = {
214 * Prototypes - MAC 802.11 stack related functions 214 * Prototypes - MAC 802.11 stack related functions
215 */ 215 */
216static int ath5k_tx(struct ieee80211_hw *hw, struct sk_buff *skb); 216static int ath5k_tx(struct ieee80211_hw *hw, struct sk_buff *skb);
217static int ath5k_reset(struct ath5k_softc *sc, bool stop, bool change_channel); 217static int ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan);
218static int ath5k_reset_wake(struct ath5k_softc *sc); 218static int ath5k_reset_wake(struct ath5k_softc *sc);
219static int ath5k_start(struct ieee80211_hw *hw); 219static int ath5k_start(struct ieee80211_hw *hw);
220static void ath5k_stop(struct ieee80211_hw *hw); 220static void ath5k_stop(struct ieee80211_hw *hw);
@@ -1038,16 +1038,13 @@ ath5k_chan_set(struct ath5k_softc *sc, struct ieee80211_channel *chan)
1038 if (chan->center_freq != sc->curchan->center_freq || 1038 if (chan->center_freq != sc->curchan->center_freq ||
1039 chan->hw_value != sc->curchan->hw_value) { 1039 chan->hw_value != sc->curchan->hw_value) {
1040 1040
1041 sc->curchan = chan;
1042 sc->curband = &sc->sbands[chan->band];
1043
1044 /* 1041 /*
1045 * To switch channels clear any pending DMA operations; 1042 * To switch channels clear any pending DMA operations;
1046 * wait long enough for the RX fifo to drain, reset the 1043 * wait long enough for the RX fifo to drain, reset the
1047 * hardware at the new frequency, and then re-enable 1044 * hardware at the new frequency, and then re-enable
1048 * the relevant bits of the h/w. 1045 * the relevant bits of the h/w.
1049 */ 1046 */
1050 return ath5k_reset(sc, true, true); 1047 return ath5k_reset(sc, chan);
1051 } 1048 }
1052 1049
1053 return 0; 1050 return 0;
@@ -2314,7 +2311,7 @@ ath5k_init(struct ath5k_softc *sc)
2314 sc->imask = AR5K_INT_RXOK | AR5K_INT_RXERR | AR5K_INT_RXEOL | 2311 sc->imask = AR5K_INT_RXOK | AR5K_INT_RXERR | AR5K_INT_RXEOL |
2315 AR5K_INT_RXORN | AR5K_INT_TXDESC | AR5K_INT_TXEOL | 2312 AR5K_INT_RXORN | AR5K_INT_TXDESC | AR5K_INT_TXEOL |
2316 AR5K_INT_FATAL | AR5K_INT_GLOBAL; 2313 AR5K_INT_FATAL | AR5K_INT_GLOBAL;
2317 ret = ath5k_reset(sc, false, false); 2314 ret = ath5k_reset(sc, NULL);
2318 if (ret) 2315 if (ret)
2319 goto done; 2316 goto done;
2320 2317
@@ -2599,18 +2596,25 @@ drop_packet:
2599 return NETDEV_TX_OK; 2596 return NETDEV_TX_OK;
2600} 2597}
2601 2598
2599/*
2600 * Reset the hardware. If chan is not NULL, then also pause rx/tx
2601 * and change to the given channel.
2602 */
2602static int 2603static int
2603ath5k_reset(struct ath5k_softc *sc, bool stop, bool change_channel) 2604ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan)
2604{ 2605{
2605 struct ath5k_hw *ah = sc->ah; 2606 struct ath5k_hw *ah = sc->ah;
2606 int ret; 2607 int ret;
2607 2608
2608 ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "resetting\n"); 2609 ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "resetting\n");
2609 2610
2610 if (stop) { 2611 if (chan) {
2611 ath5k_hw_set_imr(ah, 0); 2612 ath5k_hw_set_imr(ah, 0);
2612 ath5k_txq_cleanup(sc); 2613 ath5k_txq_cleanup(sc);
2613 ath5k_rx_stop(sc); 2614 ath5k_rx_stop(sc);
2615
2616 sc->curchan = chan;
2617 sc->curband = &sc->sbands[chan->band];
2614 } 2618 }
2615 ret = ath5k_hw_reset(ah, sc->opmode, sc->curchan, true); 2619 ret = ath5k_hw_reset(ah, sc->opmode, sc->curchan, true);
2616 if (ret) { 2620 if (ret) {
@@ -2648,7 +2652,7 @@ ath5k_reset_wake(struct ath5k_softc *sc)
2648{ 2652{
2649 int ret; 2653 int ret;
2650 2654
2651 ret = ath5k_reset(sc, true, true); 2655 ret = ath5k_reset(sc, sc->curchan);
2652 if (!ret) 2656 if (!ret)
2653 ieee80211_wake_queues(sc->hw); 2657 ieee80211_wake_queues(sc->hw);
2654 2658
diff --git a/drivers/net/wireless/ath5k/phy.c b/drivers/net/wireless/ath5k/phy.c
index 9e2faae5ae94..b48b29dca3d2 100644
--- a/drivers/net/wireless/ath5k/phy.c
+++ b/drivers/net/wireless/ath5k/phy.c
@@ -1487,28 +1487,35 @@ ath5k_get_linear_pcdac_min(const u8 *stepL, const u8 *stepR,
1487{ 1487{
1488 s8 tmp; 1488 s8 tmp;
1489 s16 min_pwrL, min_pwrR; 1489 s16 min_pwrL, min_pwrR;
1490 s16 pwr_i = pwrL[0]; 1490 s16 pwr_i;
1491 1491
1492 do { 1492 if (pwrL[0] == pwrL[1])
1493 pwr_i--; 1493 min_pwrL = pwrL[0];
1494 tmp = (s8) ath5k_get_interpolated_value(pwr_i, 1494 else {
1495 pwrL[0], pwrL[1], 1495 pwr_i = pwrL[0];
1496 stepL[0], stepL[1]); 1496 do {
1497 1497 pwr_i--;
1498 } while (tmp > 1); 1498 tmp = (s8) ath5k_get_interpolated_value(pwr_i,
1499 1499 pwrL[0], pwrL[1],
1500 min_pwrL = pwr_i; 1500 stepL[0], stepL[1]);
1501 1501 } while (tmp > 1);
1502 pwr_i = pwrR[0]; 1502
1503 do { 1503 min_pwrL = pwr_i;
1504 pwr_i--; 1504 }
1505 tmp = (s8) ath5k_get_interpolated_value(pwr_i,
1506 pwrR[0], pwrR[1],
1507 stepR[0], stepR[1]);
1508
1509 } while (tmp > 1);
1510 1505
1511 min_pwrR = pwr_i; 1506 if (pwrR[0] == pwrR[1])
1507 min_pwrR = pwrR[0];
1508 else {
1509 pwr_i = pwrR[0];
1510 do {
1511 pwr_i--;
1512 tmp = (s8) ath5k_get_interpolated_value(pwr_i,
1513 pwrR[0], pwrR[1],
1514 stepR[0], stepR[1]);
1515 } while (tmp > 1);
1516
1517 min_pwrR = pwr_i;
1518 }
1512 1519
1513 /* Keep the right boundary so that it works for both curves */ 1520 /* Keep the right boundary so that it works for both curves */
1514 return max(min_pwrL, min_pwrR); 1521 return max(min_pwrL, min_pwrR);
diff --git a/drivers/net/wireless/ath5k/reset.c b/drivers/net/wireless/ath5k/reset.c
index 7a17d31b2fd9..5f72c111c2e8 100644
--- a/drivers/net/wireless/ath5k/reset.c
+++ b/drivers/net/wireless/ath5k/reset.c
@@ -26,7 +26,7 @@
26\*****************************/ 26\*****************************/
27 27
28#include <linux/pci.h> /* To determine if a card is pci-e */ 28#include <linux/pci.h> /* To determine if a card is pci-e */
29#include <linux/bitops.h> /* For get_bitmask_order */ 29#include <linux/log2.h>
30#include "ath5k.h" 30#include "ath5k.h"
31#include "reg.h" 31#include "reg.h"
32#include "base.h" 32#include "base.h"
@@ -69,10 +69,10 @@ static inline int ath5k_hw_write_ofdm_timings(struct ath5k_hw *ah,
69 69
70 /* Get exponent 70 /* Get exponent
71 * ALGO: coef_exp = 14 - highest set bit position */ 71 * ALGO: coef_exp = 14 - highest set bit position */
72 coef_exp = get_bitmask_order(coef_scaled); 72 coef_exp = ilog2(coef_scaled);
73 73
74 /* Doesn't make sense if it's zero*/ 74 /* Doesn't make sense if it's zero*/
75 if (!coef_exp) 75 if (!coef_scaled || !coef_exp)
76 return -EINVAL; 76 return -EINVAL;
77 77
78 /* Note: we've shifted coef_scaled by 24 */ 78 /* Note: we've shifted coef_scaled by 24 */
@@ -359,7 +359,7 @@ int ath5k_hw_nic_wakeup(struct ath5k_hw *ah, int flags, bool initial)
359 mode |= AR5K_PHY_MODE_FREQ_5GHZ; 359 mode |= AR5K_PHY_MODE_FREQ_5GHZ;
360 360
361 if (ah->ah_radio == AR5K_RF5413) 361 if (ah->ah_radio == AR5K_RF5413)
362 clock |= AR5K_PHY_PLL_40MHZ_5413; 362 clock = AR5K_PHY_PLL_40MHZ_5413;
363 else 363 else
364 clock |= AR5K_PHY_PLL_40MHZ; 364 clock |= AR5K_PHY_PLL_40MHZ;
365 365
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index e5ca2511a81a..9452461ce864 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -46,7 +46,7 @@
46#include "iwl-6000-hw.h" 46#include "iwl-6000-hw.h"
47 47
48/* Highest firmware API version supported */ 48/* Highest firmware API version supported */
49#define IWL5000_UCODE_API_MAX 1 49#define IWL5000_UCODE_API_MAX 2
50#define IWL5150_UCODE_API_MAX 2 50#define IWL5150_UCODE_API_MAX 2
51 51
52/* Lowest firmware API version supported */ 52/* Lowest firmware API version supported */
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index edfa5e149f71..bd438d8acf55 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -101,8 +101,8 @@ struct iwl_cfg iwl6000_2agn_cfg = {
101 .eeprom_ver = EEPROM_5000_EEPROM_VERSION, 101 .eeprom_ver = EEPROM_5000_EEPROM_VERSION,
102 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION, 102 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
103 .mod_params = &iwl50_mod_params, 103 .mod_params = &iwl50_mod_params,
104 .valid_tx_ant = ANT_BC, 104 .valid_tx_ant = ANT_AB,
105 .valid_rx_ant = ANT_BC, 105 .valid_rx_ant = ANT_AB,
106 .need_pll_cfg = false, 106 .need_pll_cfg = false,
107}; 107};
108 108
@@ -117,8 +117,8 @@ struct iwl_cfg iwl6050_2agn_cfg = {
117 .eeprom_ver = EEPROM_5000_EEPROM_VERSION, 117 .eeprom_ver = EEPROM_5000_EEPROM_VERSION,
118 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION, 118 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
119 .mod_params = &iwl50_mod_params, 119 .mod_params = &iwl50_mod_params,
120 .valid_tx_ant = ANT_BC, 120 .valid_tx_ant = ANT_AB,
121 .valid_rx_ant = ANT_BC, 121 .valid_rx_ant = ANT_AB,
122 .need_pll_cfg = false, 122 .need_pll_cfg = false,
123}; 123};
124 124
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 1ef4192207a5..f46ba2475776 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -669,13 +669,6 @@ static int iwl_set_mode(struct iwl_priv *priv, int mode)
669 if (!iwl_is_ready_rf(priv)) 669 if (!iwl_is_ready_rf(priv))
670 return -EAGAIN; 670 return -EAGAIN;
671 671
672 cancel_delayed_work(&priv->scan_check);
673 if (iwl_scan_cancel_timeout(priv, 100)) {
674 IWL_WARN(priv, "Aborted scan still in progress after 100ms\n");
675 IWL_DEBUG_MAC80211(priv, "leaving - scan abort failed.\n");
676 return -EAGAIN;
677 }
678
679 iwl_commit_rxon(priv); 672 iwl_commit_rxon(priv);
680 673
681 return 0; 674 return 0;
@@ -3636,7 +3629,9 @@ static struct pci_device_id iwl_hw_card_ids[] = {
3636 {IWL_PCI_DEVICE(0x0085, 0x1112, iwl6000_2ag_cfg)}, 3629 {IWL_PCI_DEVICE(0x0085, 0x1112, iwl6000_2ag_cfg)},
3637 {IWL_PCI_DEVICE(0x0082, 0x1122, iwl6000_2ag_cfg)}, 3630 {IWL_PCI_DEVICE(0x0082, 0x1122, iwl6000_2ag_cfg)},
3638 {IWL_PCI_DEVICE(0x422B, PCI_ANY_ID, iwl6000_3agn_cfg)}, 3631 {IWL_PCI_DEVICE(0x422B, PCI_ANY_ID, iwl6000_3agn_cfg)},
3632 {IWL_PCI_DEVICE(0x422C, PCI_ANY_ID, iwl6000_2agn_cfg)},
3639 {IWL_PCI_DEVICE(0x4238, PCI_ANY_ID, iwl6000_3agn_cfg)}, 3633 {IWL_PCI_DEVICE(0x4238, PCI_ANY_ID, iwl6000_3agn_cfg)},
3634 {IWL_PCI_DEVICE(0x4239, PCI_ANY_ID, iwl6000_2agn_cfg)},
3640 {IWL_PCI_DEVICE(0x0082, PCI_ANY_ID, iwl6000_2agn_cfg)}, 3635 {IWL_PCI_DEVICE(0x0082, PCI_ANY_ID, iwl6000_2agn_cfg)},
3641 {IWL_PCI_DEVICE(0x0085, PCI_ANY_ID, iwl6000_3agn_cfg)}, 3636 {IWL_PCI_DEVICE(0x0085, PCI_ANY_ID, iwl6000_3agn_cfg)},
3642 {IWL_PCI_DEVICE(0x0086, PCI_ANY_ID, iwl6050_3agn_cfg)}, 3637 {IWL_PCI_DEVICE(0x0086, PCI_ANY_ID, iwl6050_3agn_cfg)},
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index e7c65c4f741b..6330b91e37ce 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -227,9 +227,6 @@ static void iwl_rx_scan_complete_notif(struct iwl_priv *priv,
227 /* The HW is no longer scanning */ 227 /* The HW is no longer scanning */
228 clear_bit(STATUS_SCAN_HW, &priv->status); 228 clear_bit(STATUS_SCAN_HW, &priv->status);
229 229
230 /* The scan completion notification came in, so kill that timer... */
231 cancel_delayed_work(&priv->scan_check);
232
233 IWL_DEBUG_INFO(priv, "Scan pass on %sGHz took %dms\n", 230 IWL_DEBUG_INFO(priv, "Scan pass on %sGHz took %dms\n",
234 (priv->scan_bands & BIT(IEEE80211_BAND_2GHZ)) ? 231 (priv->scan_bands & BIT(IEEE80211_BAND_2GHZ)) ?
235 "2.4" : "5.2", 232 "2.4" : "5.2",
@@ -712,6 +709,8 @@ static void iwl_bg_request_scan(struct work_struct *data)
712 709
713 mutex_lock(&priv->mutex); 710 mutex_lock(&priv->mutex);
714 711
712 cancel_delayed_work(&priv->scan_check);
713
715 if (!iwl_is_ready(priv)) { 714 if (!iwl_is_ready(priv)) {
716 IWL_WARN(priv, "request scan called when driver not ready.\n"); 715 IWL_WARN(priv, "request scan called when driver not ready.\n");
717 goto done; 716 goto done;
@@ -925,6 +924,8 @@ void iwl_bg_scan_completed(struct work_struct *work)
925 924
926 IWL_DEBUG_SCAN(priv, "SCAN complete scan\n"); 925 IWL_DEBUG_SCAN(priv, "SCAN complete scan\n");
927 926
927 cancel_delayed_work(&priv->scan_check);
928
928 ieee80211_scan_completed(priv->hw, false); 929 ieee80211_scan_completed(priv->hw, false);
929 930
930 if (test_bit(STATUS_EXIT_PENDING, &priv->status)) 931 if (test_bit(STATUS_EXIT_PENDING, &priv->status))
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c
index 5798fe49c771..44ab03a12e40 100644
--- a/drivers/net/wireless/iwlwifi/iwl-sta.c
+++ b/drivers/net/wireless/iwlwifi/iwl-sta.c
@@ -719,6 +719,14 @@ static int iwl_set_tkip_dynamic_key_info(struct iwl_priv *priv,
719{ 719{
720 unsigned long flags; 720 unsigned long flags;
721 int ret = 0; 721 int ret = 0;
722 __le16 key_flags = 0;
723
724 key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK);
725 key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
726 key_flags &= ~STA_KEY_FLG_INVALID;
727
728 if (sta_id == priv->hw_params.bcast_sta_id)
729 key_flags |= STA_KEY_MULTICAST_MSK;
722 730
723 keyconf->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; 731 keyconf->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
724 keyconf->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC; 732 keyconf->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC;
@@ -738,6 +746,9 @@ static int iwl_set_tkip_dynamic_key_info(struct iwl_priv *priv,
738 WARN(priv->stations[sta_id].sta.key.key_offset == WEP_INVALID_OFFSET, 746 WARN(priv->stations[sta_id].sta.key.key_offset == WEP_INVALID_OFFSET,
739 "no space for a new key"); 747 "no space for a new key");
740 748
749 priv->stations[sta_id].sta.key.key_flags = key_flags;
750
751
741 /* This copy is acutally not needed: we get the key with each TX */ 752 /* This copy is acutally not needed: we get the key with each TX */
742 memcpy(priv->stations[sta_id].keyinfo.key, keyconf->key, 16); 753 memcpy(priv->stations[sta_id].keyinfo.key, keyconf->key, 16);
743 754
@@ -754,9 +765,7 @@ void iwl_update_tkip_key(struct iwl_priv *priv,
754{ 765{
755 u8 sta_id = IWL_INVALID_STATION; 766 u8 sta_id = IWL_INVALID_STATION;
756 unsigned long flags; 767 unsigned long flags;
757 __le16 key_flags = 0;
758 int i; 768 int i;
759 DECLARE_MAC_BUF(mac);
760 769
761 sta_id = iwl_find_station(priv, addr); 770 sta_id = iwl_find_station(priv, addr);
762 if (sta_id == IWL_INVALID_STATION) { 771 if (sta_id == IWL_INVALID_STATION) {
@@ -771,16 +780,8 @@ void iwl_update_tkip_key(struct iwl_priv *priv,
771 return; 780 return;
772 } 781 }
773 782
774 key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK);
775 key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
776 key_flags &= ~STA_KEY_FLG_INVALID;
777
778 if (sta_id == priv->hw_params.bcast_sta_id)
779 key_flags |= STA_KEY_MULTICAST_MSK;
780
781 spin_lock_irqsave(&priv->sta_lock, flags); 783 spin_lock_irqsave(&priv->sta_lock, flags);
782 784
783 priv->stations[sta_id].sta.key.key_flags = key_flags;
784 priv->stations[sta_id].sta.key.tkip_rx_tsc_byte2 = (u8) iv32; 785 priv->stations[sta_id].sta.key.tkip_rx_tsc_byte2 = (u8) iv32;
785 786
786 for (i = 0; i < 5; i++) 787 for (i = 0; i < 5; i++)
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 70a00c8ee42e..ff4d0e41d7c4 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -782,13 +782,6 @@ static int iwl3945_set_mode(struct iwl_priv *priv, int mode)
782 if (!iwl_is_ready_rf(priv)) 782 if (!iwl_is_ready_rf(priv))
783 return -EAGAIN; 783 return -EAGAIN;
784 784
785 cancel_delayed_work(&priv->scan_check);
786 if (iwl_scan_cancel_timeout(priv, 100)) {
787 IWL_WARN(priv, "Aborted scan still in progress after 100ms\n");
788 IWL_DEBUG_MAC80211(priv, "leaving - scan abort failed.\n");
789 return -EAGAIN;
790 }
791
792 iwl3945_commit_rxon(priv); 785 iwl3945_commit_rxon(priv);
793 786
794 return 0; 787 return 0;
@@ -1744,7 +1737,6 @@ static void iwl3945_rx_queue_free(struct iwl_priv *priv, struct iwl_rx_queue *rx
1744 rxq->bd = NULL; 1737 rxq->bd = NULL;
1745 rxq->rb_stts = NULL; 1738 rxq->rb_stts = NULL;
1746} 1739}
1747EXPORT_SYMBOL(iwl3945_rx_queue_free);
1748 1740
1749 1741
1750/* Convert linear signal-to-noise ratio into dB */ 1742/* Convert linear signal-to-noise ratio into dB */
@@ -3299,6 +3291,8 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
3299 3291
3300 mutex_lock(&priv->mutex); 3292 mutex_lock(&priv->mutex);
3301 3293
3294 cancel_delayed_work(&priv->scan_check);
3295
3302 if (!iwl_is_ready(priv)) { 3296 if (!iwl_is_ready(priv)) {
3303 IWL_WARN(priv, "request scan called when driver not ready.\n"); 3297 IWL_WARN(priv, "request scan called when driver not ready.\n");
3304 goto done; 3298 goto done;
diff --git a/drivers/net/wireless/rt2x00/rt2x00debug.c b/drivers/net/wireless/rt2x00/rt2x00debug.c
index 07d378ef0b46..7b3ee8c2eaef 100644
--- a/drivers/net/wireless/rt2x00/rt2x00debug.c
+++ b/drivers/net/wireless/rt2x00/rt2x00debug.c
@@ -138,7 +138,7 @@ void rt2x00debug_update_crypto(struct rt2x00_dev *rt2x00dev,
138 138
139 if (cipher == CIPHER_TKIP_NO_MIC) 139 if (cipher == CIPHER_TKIP_NO_MIC)
140 cipher = CIPHER_TKIP; 140 cipher = CIPHER_TKIP;
141 if (cipher == CIPHER_NONE || cipher > CIPHER_MAX) 141 if (cipher == CIPHER_NONE || cipher >= CIPHER_MAX)
142 return; 142 return;
143 143
144 /* Remove CIPHER_NONE index */ 144 /* Remove CIPHER_NONE index */
diff --git a/drivers/net/wireless/rtl818x/rtl8187.h b/drivers/net/wireless/rtl818x/rtl8187.h
index 9718f61809cf..edeff82a4d06 100644
--- a/drivers/net/wireless/rtl818x/rtl8187.h
+++ b/drivers/net/wireless/rtl818x/rtl8187.h
@@ -120,6 +120,12 @@ struct rtl8187_priv {
120 __le64 buf; 120 __le64 buf;
121 struct sk_buff_head queue; 121 struct sk_buff_head queue;
122 } b_tx_status; /* This queue is used by both -b and non-b devices */ 122 } b_tx_status; /* This queue is used by both -b and non-b devices */
123 struct mutex io_mutex;
124 union {
125 u8 bits8;
126 __le16 bits16;
127 __le32 bits32;
128 } *io_dmabuf;
123}; 129};
124 130
125void rtl8187_write_phy(struct ieee80211_hw *dev, u8 addr, u32 data); 131void rtl8187_write_phy(struct ieee80211_hw *dev, u8 addr, u32 data);
@@ -129,10 +135,14 @@ static inline u8 rtl818x_ioread8_idx(struct rtl8187_priv *priv,
129{ 135{
130 u8 val; 136 u8 val;
131 137
138 mutex_lock(&priv->io_mutex);
132 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0), 139 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0),
133 RTL8187_REQ_GET_REG, RTL8187_REQT_READ, 140 RTL8187_REQ_GET_REG, RTL8187_REQT_READ,
134 (unsigned long)addr, idx & 0x03, &val, 141 (unsigned long)addr, idx & 0x03,
135 sizeof(val), HZ / 2); 142 &priv->io_dmabuf->bits8, sizeof(val), HZ / 2);
143
144 val = priv->io_dmabuf->bits8;
145 mutex_unlock(&priv->io_mutex);
136 146
137 return val; 147 return val;
138} 148}
@@ -147,10 +157,14 @@ static inline u16 rtl818x_ioread16_idx(struct rtl8187_priv *priv,
147{ 157{
148 __le16 val; 158 __le16 val;
149 159
160 mutex_lock(&priv->io_mutex);
150 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0), 161 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0),
151 RTL8187_REQ_GET_REG, RTL8187_REQT_READ, 162 RTL8187_REQ_GET_REG, RTL8187_REQT_READ,
152 (unsigned long)addr, idx & 0x03, &val, 163 (unsigned long)addr, idx & 0x03,
153 sizeof(val), HZ / 2); 164 &priv->io_dmabuf->bits16, sizeof(val), HZ / 2);
165
166 val = priv->io_dmabuf->bits16;
167 mutex_unlock(&priv->io_mutex);
154 168
155 return le16_to_cpu(val); 169 return le16_to_cpu(val);
156} 170}
@@ -165,10 +179,14 @@ static inline u32 rtl818x_ioread32_idx(struct rtl8187_priv *priv,
165{ 179{
166 __le32 val; 180 __le32 val;
167 181
182 mutex_lock(&priv->io_mutex);
168 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0), 183 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0),
169 RTL8187_REQ_GET_REG, RTL8187_REQT_READ, 184 RTL8187_REQ_GET_REG, RTL8187_REQT_READ,
170 (unsigned long)addr, idx & 0x03, &val, 185 (unsigned long)addr, idx & 0x03,
171 sizeof(val), HZ / 2); 186 &priv->io_dmabuf->bits32, sizeof(val), HZ / 2);
187
188 val = priv->io_dmabuf->bits32;
189 mutex_unlock(&priv->io_mutex);
172 190
173 return le32_to_cpu(val); 191 return le32_to_cpu(val);
174} 192}
@@ -181,10 +199,15 @@ static inline u32 rtl818x_ioread32(struct rtl8187_priv *priv, __le32 *addr)
181static inline void rtl818x_iowrite8_idx(struct rtl8187_priv *priv, 199static inline void rtl818x_iowrite8_idx(struct rtl8187_priv *priv,
182 u8 *addr, u8 val, u8 idx) 200 u8 *addr, u8 val, u8 idx)
183{ 201{
202 mutex_lock(&priv->io_mutex);
203
204 priv->io_dmabuf->bits8 = val;
184 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0), 205 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0),
185 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE, 206 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE,
186 (unsigned long)addr, idx & 0x03, &val, 207 (unsigned long)addr, idx & 0x03,
187 sizeof(val), HZ / 2); 208 &priv->io_dmabuf->bits8, sizeof(val), HZ / 2);
209
210 mutex_unlock(&priv->io_mutex);
188} 211}
189 212
190static inline void rtl818x_iowrite8(struct rtl8187_priv *priv, u8 *addr, u8 val) 213static inline void rtl818x_iowrite8(struct rtl8187_priv *priv, u8 *addr, u8 val)
@@ -195,12 +218,15 @@ static inline void rtl818x_iowrite8(struct rtl8187_priv *priv, u8 *addr, u8 val)
195static inline void rtl818x_iowrite16_idx(struct rtl8187_priv *priv, 218static inline void rtl818x_iowrite16_idx(struct rtl8187_priv *priv,
196 __le16 *addr, u16 val, u8 idx) 219 __le16 *addr, u16 val, u8 idx)
197{ 220{
198 __le16 buf = cpu_to_le16(val); 221 mutex_lock(&priv->io_mutex);
199 222
223 priv->io_dmabuf->bits16 = cpu_to_le16(val);
200 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0), 224 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0),
201 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE, 225 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE,
202 (unsigned long)addr, idx & 0x03, &buf, sizeof(buf), 226 (unsigned long)addr, idx & 0x03,
203 HZ / 2); 227 &priv->io_dmabuf->bits16, sizeof(val), HZ / 2);
228
229 mutex_unlock(&priv->io_mutex);
204} 230}
205 231
206static inline void rtl818x_iowrite16(struct rtl8187_priv *priv, __le16 *addr, 232static inline void rtl818x_iowrite16(struct rtl8187_priv *priv, __le16 *addr,
@@ -212,12 +238,15 @@ static inline void rtl818x_iowrite16(struct rtl8187_priv *priv, __le16 *addr,
212static inline void rtl818x_iowrite32_idx(struct rtl8187_priv *priv, 238static inline void rtl818x_iowrite32_idx(struct rtl8187_priv *priv,
213 __le32 *addr, u32 val, u8 idx) 239 __le32 *addr, u32 val, u8 idx)
214{ 240{
215 __le32 buf = cpu_to_le32(val); 241 mutex_lock(&priv->io_mutex);
216 242
243 priv->io_dmabuf->bits32 = cpu_to_le32(val);
217 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0), 244 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0),
218 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE, 245 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE,
219 (unsigned long)addr, idx & 0x03, &buf, sizeof(buf), 246 (unsigned long)addr, idx & 0x03,
220 HZ / 2); 247 &priv->io_dmabuf->bits32, sizeof(val), HZ / 2);
248
249 mutex_unlock(&priv->io_mutex);
221} 250}
222 251
223static inline void rtl818x_iowrite32(struct rtl8187_priv *priv, __le32 *addr, 252static inline void rtl818x_iowrite32(struct rtl8187_priv *priv, __le32 *addr,
diff --git a/drivers/net/wireless/rtl818x/rtl8187_dev.c b/drivers/net/wireless/rtl818x/rtl8187_dev.c
index fd81884b9c7d..d51ba0a88c23 100644
--- a/drivers/net/wireless/rtl818x/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8187_dev.c
@@ -71,6 +71,8 @@ static struct usb_device_id rtl8187_table[] __devinitdata = {
71 {USB_DEVICE(0x18E8, 0x6232), .driver_info = DEVICE_RTL8187}, 71 {USB_DEVICE(0x18E8, 0x6232), .driver_info = DEVICE_RTL8187},
72 /* AirLive */ 72 /* AirLive */
73 {USB_DEVICE(0x1b75, 0x8187), .driver_info = DEVICE_RTL8187}, 73 {USB_DEVICE(0x1b75, 0x8187), .driver_info = DEVICE_RTL8187},
74 /* Linksys */
75 {USB_DEVICE(0x1737, 0x0073), .driver_info = DEVICE_RTL8187B},
74 {} 76 {}
75}; 77};
76 78
@@ -1329,6 +1331,14 @@ static int __devinit rtl8187_probe(struct usb_interface *intf,
1329 priv = dev->priv; 1331 priv = dev->priv;
1330 priv->is_rtl8187b = (id->driver_info == DEVICE_RTL8187B); 1332 priv->is_rtl8187b = (id->driver_info == DEVICE_RTL8187B);
1331 1333
1334 /* allocate "DMA aware" buffer for register accesses */
1335 priv->io_dmabuf = kmalloc(sizeof(*priv->io_dmabuf), GFP_KERNEL);
1336 if (!priv->io_dmabuf) {
1337 err = -ENOMEM;
1338 goto err_free_dev;
1339 }
1340 mutex_init(&priv->io_mutex);
1341
1332 SET_IEEE80211_DEV(dev, &intf->dev); 1342 SET_IEEE80211_DEV(dev, &intf->dev);
1333 usb_set_intfdata(intf, dev); 1343 usb_set_intfdata(intf, dev);
1334 priv->udev = udev; 1344 priv->udev = udev;
@@ -1495,7 +1505,7 @@ static int __devinit rtl8187_probe(struct usb_interface *intf,
1495 err = ieee80211_register_hw(dev); 1505 err = ieee80211_register_hw(dev);
1496 if (err) { 1506 if (err) {
1497 printk(KERN_ERR "rtl8187: Cannot register device\n"); 1507 printk(KERN_ERR "rtl8187: Cannot register device\n");
1498 goto err_free_dev; 1508 goto err_free_dmabuf;
1499 } 1509 }
1500 mutex_init(&priv->conf_mutex); 1510 mutex_init(&priv->conf_mutex);
1501 skb_queue_head_init(&priv->b_tx_status.queue); 1511 skb_queue_head_init(&priv->b_tx_status.queue);
@@ -1506,6 +1516,8 @@ static int __devinit rtl8187_probe(struct usb_interface *intf,
1506 1516
1507 return 0; 1517 return 0;
1508 1518
1519 err_free_dmabuf:
1520 kfree(priv->io_dmabuf);
1509 err_free_dev: 1521 err_free_dev:
1510 ieee80211_free_hw(dev); 1522 ieee80211_free_hw(dev);
1511 usb_set_intfdata(intf, NULL); 1523 usb_set_intfdata(intf, NULL);
@@ -1526,6 +1538,7 @@ static void __devexit rtl8187_disconnect(struct usb_interface *intf)
1526 priv = dev->priv; 1538 priv = dev->priv;
1527 usb_reset_device(priv->udev); 1539 usb_reset_device(priv->udev);
1528 usb_put_dev(interface_to_usbdev(intf)); 1540 usb_put_dev(interface_to_usbdev(intf));
1541 kfree(priv->io_dmabuf);
1529 ieee80211_free_hw(dev); 1542 ieee80211_free_hw(dev);
1530} 1543}
1531 1544
diff --git a/drivers/net/wireless/rtl818x/rtl8187_rtl8225.c b/drivers/net/wireless/rtl818x/rtl8187_rtl8225.c
index 78df281b297a..a09819386a1e 100644
--- a/drivers/net/wireless/rtl818x/rtl8187_rtl8225.c
+++ b/drivers/net/wireless/rtl818x/rtl8187_rtl8225.c
@@ -88,9 +88,15 @@ static void rtl8225_write_8051(struct ieee80211_hw *dev, u8 addr, __le16 data)
88 rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, reg80); 88 rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, reg80);
89 udelay(10); 89 udelay(10);
90 90
91 mutex_lock(&priv->io_mutex);
92
93 priv->io_dmabuf->bits16 = data;
91 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0), 94 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0),
92 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE, 95 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE,
93 addr, 0x8225, &data, sizeof(data), HZ / 2); 96 addr, 0x8225, &priv->io_dmabuf->bits16, sizeof(data),
97 HZ / 2);
98
99 mutex_unlock(&priv->io_mutex);
94 100
95 rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, reg80 | (1 << 2)); 101 rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, reg80 | (1 << 2));
96 udelay(10); 102 udelay(10);
diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c
index f0e99d4c066b..242257b19441 100644
--- a/drivers/oprofile/cpu_buffer.c
+++ b/drivers/oprofile/cpu_buffer.c
@@ -78,16 +78,20 @@ void free_cpu_buffers(void)
78 op_ring_buffer_write = NULL; 78 op_ring_buffer_write = NULL;
79} 79}
80 80
81#define RB_EVENT_HDR_SIZE 4
82
81int alloc_cpu_buffers(void) 83int alloc_cpu_buffers(void)
82{ 84{
83 int i; 85 int i;
84 86
85 unsigned long buffer_size = oprofile_cpu_buffer_size; 87 unsigned long buffer_size = oprofile_cpu_buffer_size;
88 unsigned long byte_size = buffer_size * (sizeof(struct op_sample) +
89 RB_EVENT_HDR_SIZE);
86 90
87 op_ring_buffer_read = ring_buffer_alloc(buffer_size, OP_BUFFER_FLAGS); 91 op_ring_buffer_read = ring_buffer_alloc(byte_size, OP_BUFFER_FLAGS);
88 if (!op_ring_buffer_read) 92 if (!op_ring_buffer_read)
89 goto fail; 93 goto fail;
90 op_ring_buffer_write = ring_buffer_alloc(buffer_size, OP_BUFFER_FLAGS); 94 op_ring_buffer_write = ring_buffer_alloc(byte_size, OP_BUFFER_FLAGS);
91 if (!op_ring_buffer_write) 95 if (!op_ring_buffer_write)
92 goto fail; 96 goto fail;
93 97
diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c
index e6a7e847ee80..ea31a452b153 100644
--- a/drivers/parport/parport_gsc.c
+++ b/drivers/parport/parport_gsc.c
@@ -352,8 +352,8 @@ static int __devinit parport_init_chip(struct parisc_device *dev)
352 unsigned long port; 352 unsigned long port;
353 353
354 if (!dev->irq) { 354 if (!dev->irq) {
355 printk(KERN_WARNING "IRQ not found for parallel device at 0x%lx\n", 355 printk(KERN_WARNING "IRQ not found for parallel device at 0x%llx\n",
356 dev->hpa.start); 356 (unsigned long long)dev->hpa.start);
357 return -ENODEV; 357 return -ENODEV;
358 } 358 }
359 359
diff --git a/drivers/parport/share.c b/drivers/parport/share.c
index 0ebca450ed29..dffa5d4fb298 100644
--- a/drivers/parport/share.c
+++ b/drivers/parport/share.c
@@ -614,7 +614,10 @@ parport_register_device(struct parport *port, const char *name,
614 * pardevice fields. -arca 614 * pardevice fields. -arca
615 */ 615 */
616 port->ops->init_state(tmp, tmp->state); 616 port->ops->init_state(tmp, tmp->state);
617 parport_device_proc_register(tmp); 617 if (!test_and_set_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags)) {
618 port->proc_device = tmp;
619 parport_device_proc_register(tmp);
620 }
618 return tmp; 621 return tmp;
619 622
620 out_free_all: 623 out_free_all:
@@ -646,10 +649,14 @@ void parport_unregister_device(struct pardevice *dev)
646 } 649 }
647#endif 650#endif
648 651
649 parport_device_proc_unregister(dev);
650
651 port = dev->port->physport; 652 port = dev->port->physport;
652 653
654 if (port->proc_device == dev) {
655 port->proc_device = NULL;
656 clear_bit(PARPORT_DEVPROC_REGISTERED, &port->devflags);
657 parport_device_proc_unregister(dev);
658 }
659
653 if (port->cad == dev) { 660 if (port->cad == dev) {
654 printk(KERN_DEBUG "%s: %s forgot to release port\n", 661 printk(KERN_DEBUG "%s: %s forgot to release port\n",
655 port->name, dev->name); 662 port->name, dev->name);
diff --git a/drivers/pci/hotplug/acpiphp.h b/drivers/pci/hotplug/acpiphp.h
index 4fc168b70095..e68d5f20ffb3 100644
--- a/drivers/pci/hotplug/acpiphp.h
+++ b/drivers/pci/hotplug/acpiphp.h
@@ -129,7 +129,6 @@ struct acpiphp_func {
129 struct acpiphp_bridge *bridge; /* Ejectable PCI-to-PCI bridge */ 129 struct acpiphp_bridge *bridge; /* Ejectable PCI-to-PCI bridge */
130 130
131 struct list_head sibling; 131 struct list_head sibling;
132 struct pci_dev *pci_dev;
133 struct notifier_block nb; 132 struct notifier_block nb;
134 acpi_handle handle; 133 acpi_handle handle;
135 134
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index a33794d9e0dc..3a6064bce561 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -32,9 +32,6 @@
32 32
33/* 33/*
34 * Lifetime rules for pci_dev: 34 * Lifetime rules for pci_dev:
35 * - The one in acpiphp_func has its refcount elevated by pci_get_slot()
36 * when the driver is loaded or when an insertion event occurs. It loses
37 * a refcount when its ejected or the driver unloads.
38 * - The one in acpiphp_bridge has its refcount elevated by pci_get_slot() 35 * - The one in acpiphp_bridge has its refcount elevated by pci_get_slot()
39 * when the bridge is scanned and it loses a refcount when the bridge 36 * when the bridge is scanned and it loses a refcount when the bridge
40 * is removed. 37 * is removed.
@@ -130,6 +127,7 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
130 unsigned long long adr, sun; 127 unsigned long long adr, sun;
131 int device, function, retval; 128 int device, function, retval;
132 struct pci_bus *pbus = bridge->pci_bus; 129 struct pci_bus *pbus = bridge->pci_bus;
130 struct pci_dev *pdev;
133 131
134 if (!acpi_pci_check_ejectable(pbus, handle) && !is_dock_device(handle)) 132 if (!acpi_pci_check_ejectable(pbus, handle) && !is_dock_device(handle))
135 return AE_OK; 133 return AE_OK;
@@ -213,10 +211,10 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
213 newfunc->slot = slot; 211 newfunc->slot = slot;
214 list_add_tail(&newfunc->sibling, &slot->funcs); 212 list_add_tail(&newfunc->sibling, &slot->funcs);
215 213
216 /* associate corresponding pci_dev */ 214 pdev = pci_get_slot(pbus, PCI_DEVFN(device, function));
217 newfunc->pci_dev = pci_get_slot(pbus, PCI_DEVFN(device, function)); 215 if (pdev) {
218 if (newfunc->pci_dev) {
219 slot->flags |= (SLOT_ENABLED | SLOT_POWEREDON); 216 slot->flags |= (SLOT_ENABLED | SLOT_POWEREDON);
217 pci_dev_put(pdev);
220 } 218 }
221 219
222 if (is_dock_device(handle)) { 220 if (is_dock_device(handle)) {
@@ -617,7 +615,6 @@ static void cleanup_bridge(struct acpiphp_bridge *bridge)
617 if (ACPI_FAILURE(status)) 615 if (ACPI_FAILURE(status))
618 err("failed to remove notify handler\n"); 616 err("failed to remove notify handler\n");
619 } 617 }
620 pci_dev_put(func->pci_dev);
621 list_del(list); 618 list_del(list);
622 kfree(func); 619 kfree(func);
623 } 620 }
@@ -1101,22 +1098,24 @@ static int __ref enable_device(struct acpiphp_slot *slot)
1101 pci_enable_bridges(bus); 1098 pci_enable_bridges(bus);
1102 pci_bus_add_devices(bus); 1099 pci_bus_add_devices(bus);
1103 1100
1104 /* associate pci_dev to our representation */
1105 list_for_each (l, &slot->funcs) { 1101 list_for_each (l, &slot->funcs) {
1106 func = list_entry(l, struct acpiphp_func, sibling); 1102 func = list_entry(l, struct acpiphp_func, sibling);
1107 func->pci_dev = pci_get_slot(bus, PCI_DEVFN(slot->device, 1103 dev = pci_get_slot(bus, PCI_DEVFN(slot->device,
1108 func->function)); 1104 func->function));
1109 if (!func->pci_dev) 1105 if (!dev)
1110 continue; 1106 continue;
1111 1107
1112 if (func->pci_dev->hdr_type != PCI_HEADER_TYPE_BRIDGE && 1108 if (dev->hdr_type != PCI_HEADER_TYPE_BRIDGE &&
1113 func->pci_dev->hdr_type != PCI_HEADER_TYPE_CARDBUS) 1109 dev->hdr_type != PCI_HEADER_TYPE_CARDBUS) {
1110 pci_dev_put(dev);
1114 continue; 1111 continue;
1112 }
1115 1113
1116 status = find_p2p_bridge(func->handle, (u32)1, bus, NULL); 1114 status = find_p2p_bridge(func->handle, (u32)1, bus, NULL);
1117 if (ACPI_FAILURE(status)) 1115 if (ACPI_FAILURE(status))
1118 warn("find_p2p_bridge failed (error code = 0x%x)\n", 1116 warn("find_p2p_bridge failed (error code = 0x%x)\n",
1119 status); 1117 status);
1118 pci_dev_put(dev);
1120 } 1119 }
1121 1120
1122 slot->flags |= SLOT_ENABLED; 1121 slot->flags |= SLOT_ENABLED;
@@ -1142,17 +1141,14 @@ static void disable_bridges(struct pci_bus *bus)
1142 */ 1141 */
1143static int disable_device(struct acpiphp_slot *slot) 1142static int disable_device(struct acpiphp_slot *slot)
1144{ 1143{
1145 int retval = 0;
1146 struct acpiphp_func *func; 1144 struct acpiphp_func *func;
1147 struct list_head *l; 1145 struct pci_dev *pdev;
1148 1146
1149 /* is this slot already disabled? */ 1147 /* is this slot already disabled? */
1150 if (!(slot->flags & SLOT_ENABLED)) 1148 if (!(slot->flags & SLOT_ENABLED))
1151 goto err_exit; 1149 goto err_exit;
1152 1150
1153 list_for_each (l, &slot->funcs) { 1151 list_for_each_entry(func, &slot->funcs, sibling) {
1154 func = list_entry(l, struct acpiphp_func, sibling);
1155
1156 if (func->bridge) { 1152 if (func->bridge) {
1157 /* cleanup p2p bridges under this P2P bridge */ 1153 /* cleanup p2p bridges under this P2P bridge */
1158 cleanup_p2p_bridge(func->bridge->handle, 1154 cleanup_p2p_bridge(func->bridge->handle,
@@ -1160,35 +1156,28 @@ static int disable_device(struct acpiphp_slot *slot)
1160 func->bridge = NULL; 1156 func->bridge = NULL;
1161 } 1157 }
1162 1158
1163 if (func->pci_dev) { 1159 pdev = pci_get_slot(slot->bridge->pci_bus,
1164 pci_stop_bus_device(func->pci_dev); 1160 PCI_DEVFN(slot->device, func->function));
1165 if (func->pci_dev->subordinate) { 1161 if (pdev) {
1166 disable_bridges(func->pci_dev->subordinate); 1162 pci_stop_bus_device(pdev);
1167 pci_disable_device(func->pci_dev); 1163 if (pdev->subordinate) {
1164 disable_bridges(pdev->subordinate);
1165 pci_disable_device(pdev);
1168 } 1166 }
1167 pci_remove_bus_device(pdev);
1168 pci_dev_put(pdev);
1169 } 1169 }
1170 } 1170 }
1171 1171
1172 list_for_each (l, &slot->funcs) { 1172 list_for_each_entry(func, &slot->funcs, sibling) {
1173 func = list_entry(l, struct acpiphp_func, sibling);
1174
1175 acpiphp_unconfigure_ioapics(func->handle); 1173 acpiphp_unconfigure_ioapics(func->handle);
1176 acpiphp_bus_trim(func->handle); 1174 acpiphp_bus_trim(func->handle);
1177 /* try to remove anyway.
1178 * acpiphp_bus_add might have been failed */
1179
1180 if (!func->pci_dev)
1181 continue;
1182
1183 pci_remove_bus_device(func->pci_dev);
1184 pci_dev_put(func->pci_dev);
1185 func->pci_dev = NULL;
1186 } 1175 }
1187 1176
1188 slot->flags &= (~SLOT_ENABLED); 1177 slot->flags &= (~SLOT_ENABLED);
1189 1178
1190 err_exit: 1179err_exit:
1191 return retval; 1180 return 0;
1192} 1181}
1193 1182
1194 1183
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index 001b328adf80..a563fbe559d0 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -59,6 +59,10 @@
59#define DMA_32BIT_PFN IOVA_PFN(DMA_BIT_MASK(32)) 59#define DMA_32BIT_PFN IOVA_PFN(DMA_BIT_MASK(32))
60#define DMA_64BIT_PFN IOVA_PFN(DMA_BIT_MASK(64)) 60#define DMA_64BIT_PFN IOVA_PFN(DMA_BIT_MASK(64))
61 61
62#ifndef PHYSICAL_PAGE_MASK
63#define PHYSICAL_PAGE_MASK PAGE_MASK
64#endif
65
62/* global iommu list, set NULL for ignored DMAR units */ 66/* global iommu list, set NULL for ignored DMAR units */
63static struct intel_iommu **g_iommus; 67static struct intel_iommu **g_iommus;
64 68
@@ -1216,7 +1220,7 @@ static void dmar_init_reserved_ranges(void)
1216 if (!r->flags || !(r->flags & IORESOURCE_MEM)) 1220 if (!r->flags || !(r->flags & IORESOURCE_MEM))
1217 continue; 1221 continue;
1218 addr = r->start; 1222 addr = r->start;
1219 addr &= PAGE_MASK; 1223 addr &= PHYSICAL_PAGE_MASK;
1220 size = r->end - addr; 1224 size = r->end - addr;
1221 size = PAGE_ALIGN(size); 1225 size = PAGE_ALIGN(size);
1222 iova = reserve_iova(&reserved_iova_list, IOVA_PFN(addr), 1226 iova = reserve_iova(&reserved_iova_list, IOVA_PFN(addr),
@@ -2173,7 +2177,8 @@ static dma_addr_t __intel_map_single(struct device *hwdev, phys_addr_t paddr,
2173 * is not a big problem 2177 * is not a big problem
2174 */ 2178 */
2175 ret = domain_page_mapping(domain, start_paddr, 2179 ret = domain_page_mapping(domain, start_paddr,
2176 ((u64)paddr) & PAGE_MASK, size, prot); 2180 ((u64)paddr) & PHYSICAL_PAGE_MASK,
2181 size, prot);
2177 if (ret) 2182 if (ret)
2178 goto error; 2183 goto error;
2179 2184
@@ -2463,8 +2468,8 @@ static int intel_map_sg(struct device *hwdev, struct scatterlist *sglist, int ne
2463 addr = page_to_phys(sg_page(sg)) + sg->offset; 2468 addr = page_to_phys(sg_page(sg)) + sg->offset;
2464 size = aligned_size((u64)addr, sg->length); 2469 size = aligned_size((u64)addr, sg->length);
2465 ret = domain_page_mapping(domain, start_addr + offset, 2470 ret = domain_page_mapping(domain, start_addr + offset,
2466 ((u64)addr) & PAGE_MASK, 2471 ((u64)addr) & PHYSICAL_PAGE_MASK,
2467 size, prot); 2472 size, prot);
2468 if (ret) { 2473 if (ret) {
2469 /* clear the page */ 2474 /* clear the page */
2470 dma_pte_clear_range(domain, start_addr, 2475 dma_pte_clear_range(domain, start_addr,
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 6f2e6295e773..362773247fbf 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -455,8 +455,6 @@ static int msix_capability_init(struct pci_dev *dev,
455 entry->msi_attrib.default_irq = dev->irq; 455 entry->msi_attrib.default_irq = dev->irq;
456 entry->msi_attrib.pos = pos; 456 entry->msi_attrib.pos = pos;
457 entry->mask_base = base; 457 entry->mask_base = base;
458 entry->masked = readl(base + j * PCI_MSIX_ENTRY_SIZE +
459 PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET);
460 msix_mask_irq(entry, 1); 458 msix_mask_irq(entry, 1);
461 459
462 list_add_tail(&entry->list, &dev->msi_list); 460 list_add_tail(&entry->list, &dev->msi_list);
@@ -493,6 +491,12 @@ static int msix_capability_init(struct pci_dev *dev,
493 msix_set_enable(dev, 1); 491 msix_set_enable(dev, 1);
494 dev->msix_enabled = 1; 492 dev->msix_enabled = 1;
495 493
494 list_for_each_entry(entry, &dev->msi_list, list) {
495 int vector = entry->msi_attrib.entry_nr;
496 entry->masked = readl(base + vector * PCI_MSIX_ENTRY_SIZE +
497 PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET);
498 }
499
496 return 0; 500 return 0;
497} 501}
498 502
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 34bf0fdf5047..1a91bf9687af 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -557,7 +557,8 @@ static int pci_platform_power_transition(struct pci_dev *dev, pci_power_t state)
557 } else { 557 } else {
558 error = -ENODEV; 558 error = -ENODEV;
559 /* Fall back to PCI_D0 if native PM is not supported */ 559 /* Fall back to PCI_D0 if native PM is not supported */
560 pci_update_current_state(dev, PCI_D0); 560 if (!dev->pm_cap)
561 dev->current_state = PCI_D0;
561 } 562 }
562 563
563 return error; 564 return error;
diff --git a/drivers/pci/pcie/aer/aerdrv.h b/drivers/pci/pcie/aer/aerdrv.h
index c7ad68b6c6d6..aa14482a4779 100644
--- a/drivers/pci/pcie/aer/aerdrv.h
+++ b/drivers/pci/pcie/aer/aerdrv.h
@@ -95,6 +95,9 @@ struct aer_broadcast_data {
95static inline pci_ers_result_t merge_result(enum pci_ers_result orig, 95static inline pci_ers_result_t merge_result(enum pci_ers_result orig,
96 enum pci_ers_result new) 96 enum pci_ers_result new)
97{ 97{
98 if (new == PCI_ERS_RESULT_NONE)
99 return orig;
100
98 switch (orig) { 101 switch (orig) {
99 case PCI_ERS_RESULT_CAN_RECOVER: 102 case PCI_ERS_RESULT_CAN_RECOVER:
100 case PCI_ERS_RESULT_RECOVERED: 103 case PCI_ERS_RESULT_RECOVERED:
diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c
index b924e2463f85..091ce70051e0 100644
--- a/drivers/pci/pcie/portdrv_pci.c
+++ b/drivers/pci/pcie/portdrv_pci.c
@@ -200,7 +200,7 @@ static int slot_reset_iter(struct device *device, void *data)
200 200
201static pci_ers_result_t pcie_portdrv_slot_reset(struct pci_dev *dev) 201static pci_ers_result_t pcie_portdrv_slot_reset(struct pci_dev *dev)
202{ 202{
203 pci_ers_result_t status = PCI_ERS_RESULT_NONE; 203 pci_ers_result_t status = PCI_ERS_RESULT_RECOVERED;
204 int retval; 204 int retval;
205 205
206 /* If fatal, restore cfg space for possible link reset at upstream */ 206 /* If fatal, restore cfg space for possible link reset at upstream */
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index e3c3e081b834..f1ae2475ffff 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -745,6 +745,8 @@ int pci_setup_device(struct pci_dev *dev)
745 745
746 /* Early fixups, before probing the BARs */ 746 /* Early fixups, before probing the BARs */
747 pci_fixup_device(pci_fixup_early, dev); 747 pci_fixup_device(pci_fixup_early, dev);
748 /* device class may be changed after fixup */
749 class = dev->class >> 8;
748 750
749 switch (dev->hdr_type) { /* header type */ 751 switch (dev->hdr_type) { /* header type */
750 case PCI_HEADER_TYPE_NORMAL: /* standard header */ 752 case PCI_HEADER_TYPE_NORMAL: /* standard header */
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index eeafc6c0160d..bfc1a8892a32 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -269,16 +269,16 @@ static struct key_entry asus_keymap[] = {
269 {KE_KEY, 0x34, KEY_SWITCHVIDEOMODE}, 269 {KE_KEY, 0x34, KEY_SWITCHVIDEOMODE},
270 {KE_KEY, 0x40, KEY_PREVIOUSSONG}, 270 {KE_KEY, 0x40, KEY_PREVIOUSSONG},
271 {KE_KEY, 0x41, KEY_NEXTSONG}, 271 {KE_KEY, 0x41, KEY_NEXTSONG},
272 {KE_KEY, 0x43, KEY_STOP}, 272 {KE_KEY, 0x43, KEY_STOPCD},
273 {KE_KEY, 0x45, KEY_PLAYPAUSE}, 273 {KE_KEY, 0x45, KEY_PLAYPAUSE},
274 {KE_KEY, 0x50, KEY_EMAIL}, 274 {KE_KEY, 0x50, KEY_EMAIL},
275 {KE_KEY, 0x51, KEY_WWW}, 275 {KE_KEY, 0x51, KEY_WWW},
276 {KE_KEY, 0x5C, BTN_EXTRA}, /* Performance */ 276 {KE_KEY, 0x5C, KEY_SCREENLOCK}, /* Screenlock */
277 {KE_KEY, 0x5D, KEY_WLAN}, 277 {KE_KEY, 0x5D, KEY_WLAN},
278 {KE_KEY, 0x61, KEY_SWITCHVIDEOMODE}, 278 {KE_KEY, 0x61, KEY_SWITCHVIDEOMODE},
279 {KE_KEY, 0x6B, BTN_TOUCH}, /* Lock Mouse */ 279 {KE_KEY, 0x6B, BTN_TOUCH}, /* Lock Mouse */
280 {KE_KEY, 0x82, KEY_CAMERA}, 280 {KE_KEY, 0x82, KEY_CAMERA},
281 {KE_KEY, 0x8A, KEY_TV}, 281 {KE_KEY, 0x8A, KEY_PROG1},
282 {KE_KEY, 0x95, KEY_MEDIA}, 282 {KE_KEY, 0x95, KEY_MEDIA},
283 {KE_KEY, 0x99, KEY_PHONE}, 283 {KE_KEY, 0x99, KEY_PHONE},
284 {KE_END, 0}, 284 {KE_END, 0},
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index 6f54fd1757cd..353a898c3693 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -158,6 +158,7 @@ enum { KE_KEY, KE_END };
158static struct key_entry eeepc_keymap[] = { 158static struct key_entry eeepc_keymap[] = {
159 /* Sleep already handled via generic ACPI code */ 159 /* Sleep already handled via generic ACPI code */
160 {KE_KEY, 0x10, KEY_WLAN }, 160 {KE_KEY, 0x10, KEY_WLAN },
161 {KE_KEY, 0x11, KEY_WLAN },
161 {KE_KEY, 0x12, KEY_PROG1 }, 162 {KE_KEY, 0x12, KEY_PROG1 },
162 {KE_KEY, 0x13, KEY_MUTE }, 163 {KE_KEY, 0x13, KEY_MUTE },
163 {KE_KEY, 0x14, KEY_VOLUMEDOWN }, 164 {KE_KEY, 0x14, KEY_VOLUMEDOWN },
@@ -166,6 +167,8 @@ static struct key_entry eeepc_keymap[] = {
166 {KE_KEY, 0x1b, KEY_ZOOM }, 167 {KE_KEY, 0x1b, KEY_ZOOM },
167 {KE_KEY, 0x1c, KEY_PROG2 }, 168 {KE_KEY, 0x1c, KEY_PROG2 },
168 {KE_KEY, 0x1d, KEY_PROG3 }, 169 {KE_KEY, 0x1d, KEY_PROG3 },
170 {KE_KEY, NOTIFY_BRN_MIN, KEY_BRIGHTNESSDOWN },
171 {KE_KEY, NOTIFY_BRN_MIN + 2, KEY_BRIGHTNESSUP },
169 {KE_KEY, 0x30, KEY_SWITCHVIDEOMODE }, 172 {KE_KEY, 0x30, KEY_SWITCHVIDEOMODE },
170 {KE_KEY, 0x31, KEY_SWITCHVIDEOMODE }, 173 {KE_KEY, 0x31, KEY_SWITCHVIDEOMODE },
171 {KE_KEY, 0x32, KEY_SWITCHVIDEOMODE }, 174 {KE_KEY, 0x32, KEY_SWITCHVIDEOMODE },
@@ -381,11 +384,13 @@ static ssize_t show_sys_acpi(int cm, char *buf)
381EEEPC_CREATE_DEVICE_ATTR(camera, CM_ASL_CAMERA); 384EEEPC_CREATE_DEVICE_ATTR(camera, CM_ASL_CAMERA);
382EEEPC_CREATE_DEVICE_ATTR(cardr, CM_ASL_CARDREADER); 385EEEPC_CREATE_DEVICE_ATTR(cardr, CM_ASL_CARDREADER);
383EEEPC_CREATE_DEVICE_ATTR(disp, CM_ASL_DISPLAYSWITCH); 386EEEPC_CREATE_DEVICE_ATTR(disp, CM_ASL_DISPLAYSWITCH);
387EEEPC_CREATE_DEVICE_ATTR(cpufv, CM_ASL_CPUFV);
384 388
385static struct attribute *platform_attributes[] = { 389static struct attribute *platform_attributes[] = {
386 &dev_attr_camera.attr, 390 &dev_attr_camera.attr,
387 &dev_attr_cardr.attr, 391 &dev_attr_cardr.attr,
388 &dev_attr_disp.attr, 392 &dev_attr_disp.attr,
393 &dev_attr_cpufv.attr,
389 NULL 394 NULL
390}; 395};
391 396
@@ -512,15 +517,21 @@ static int eeepc_hotk_check(void)
512 return 0; 517 return 0;
513} 518}
514 519
515static void notify_brn(void) 520static int notify_brn(void)
516{ 521{
522 /* returns the *previous* brightness, or -1 */
517 struct backlight_device *bd = eeepc_backlight_device; 523 struct backlight_device *bd = eeepc_backlight_device;
518 if (bd) 524 if (bd) {
525 int old = bd->props.brightness;
519 bd->props.brightness = read_brightness(bd); 526 bd->props.brightness = read_brightness(bd);
527 return old;
528 }
529 return -1;
520} 530}
521 531
522static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data) 532static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data)
523{ 533{
534 enum rfkill_state state;
524 struct pci_dev *dev; 535 struct pci_dev *dev;
525 struct pci_bus *bus = pci_find_bus(0, 1); 536 struct pci_bus *bus = pci_find_bus(0, 1);
526 537
@@ -532,7 +543,9 @@ static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data)
532 return; 543 return;
533 } 544 }
534 545
535 if (get_acpi(CM_ASL_WLAN) == 1) { 546 eeepc_wlan_rfkill_state(ehotk->eeepc_wlan_rfkill, &state);
547
548 if (state == RFKILL_STATE_UNBLOCKED) {
536 dev = pci_get_slot(bus, 0); 549 dev = pci_get_slot(bus, 0);
537 if (dev) { 550 if (dev) {
538 /* Device already present */ 551 /* Device already present */
@@ -552,23 +565,41 @@ static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data)
552 pci_dev_put(dev); 565 pci_dev_put(dev);
553 } 566 }
554 } 567 }
568
569 rfkill_force_state(ehotk->eeepc_wlan_rfkill, state);
555} 570}
556 571
557static void eeepc_hotk_notify(acpi_handle handle, u32 event, void *data) 572static void eeepc_hotk_notify(acpi_handle handle, u32 event, void *data)
558{ 573{
559 static struct key_entry *key; 574 static struct key_entry *key;
560 u16 count; 575 u16 count;
576 int brn = -ENODEV;
561 577
562 if (!ehotk) 578 if (!ehotk)
563 return; 579 return;
564 if (event >= NOTIFY_BRN_MIN && event <= NOTIFY_BRN_MAX) 580 if (event >= NOTIFY_BRN_MIN && event <= NOTIFY_BRN_MAX)
565 notify_brn(); 581 brn = notify_brn();
566 count = ehotk->event_count[event % 128]++; 582 count = ehotk->event_count[event % 128]++;
567 acpi_bus_generate_proc_event(ehotk->device, event, count); 583 acpi_bus_generate_proc_event(ehotk->device, event, count);
568 acpi_bus_generate_netlink_event(ehotk->device->pnp.device_class, 584 acpi_bus_generate_netlink_event(ehotk->device->pnp.device_class,
569 dev_name(&ehotk->device->dev), event, 585 dev_name(&ehotk->device->dev), event,
570 count); 586 count);
571 if (ehotk->inputdev) { 587 if (ehotk->inputdev) {
588 if (brn != -ENODEV) {
589 /* brightness-change events need special
590 * handling for conversion to key events
591 */
592 if (brn < 0)
593 brn = event;
594 else
595 brn += NOTIFY_BRN_MIN;
596 if (event < brn)
597 event = NOTIFY_BRN_MIN; /* brightness down */
598 else if (event > brn)
599 event = NOTIFY_BRN_MIN + 2; /* ... up */
600 else
601 event = NOTIFY_BRN_MIN + 1; /* ... unchanged */
602 }
572 key = eepc_get_entry_by_scancode(event); 603 key = eepc_get_entry_by_scancode(event);
573 if (key) { 604 if (key) {
574 switch (key->type) { 605 switch (key->type) {
@@ -649,6 +680,9 @@ static int eeepc_hotk_add(struct acpi_device *device)
649 if (ACPI_FAILURE(status)) 680 if (ACPI_FAILURE(status))
650 printk(EEEPC_ERR "Error installing notify handler\n"); 681 printk(EEEPC_ERR "Error installing notify handler\n");
651 682
683 eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P6");
684 eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P7");
685
652 if (get_acpi(CM_ASL_WLAN) != -1) { 686 if (get_acpi(CM_ASL_WLAN) != -1) {
653 ehotk->eeepc_wlan_rfkill = rfkill_allocate(&device->dev, 687 ehotk->eeepc_wlan_rfkill = rfkill_allocate(&device->dev,
654 RFKILL_TYPE_WLAN); 688 RFKILL_TYPE_WLAN);
@@ -704,9 +738,6 @@ static int eeepc_hotk_add(struct acpi_device *device)
704 goto bluetooth_fail; 738 goto bluetooth_fail;
705 } 739 }
706 740
707 eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P6");
708 eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P7");
709
710 return 0; 741 return 0;
711 742
712 bluetooth_fail: 743 bluetooth_fail:
@@ -717,6 +748,8 @@ static int eeepc_hotk_add(struct acpi_device *device)
717 wlan_fail: 748 wlan_fail:
718 if (ehotk->eeepc_wlan_rfkill) 749 if (ehotk->eeepc_wlan_rfkill)
719 rfkill_free(ehotk->eeepc_wlan_rfkill); 750 rfkill_free(ehotk->eeepc_wlan_rfkill);
751 eeepc_unregister_rfkill_notifier("\\_SB.PCI0.P0P6");
752 eeepc_unregister_rfkill_notifier("\\_SB.PCI0.P0P7");
720 ehotk_fail: 753 ehotk_fail:
721 kfree(ehotk); 754 kfree(ehotk);
722 ehotk = NULL; 755 ehotk = NULL;
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
index 9a3a682c6981..9496494f340e 100644
--- a/drivers/pnp/pnpacpi/core.c
+++ b/drivers/pnp/pnpacpi/core.c
@@ -110,11 +110,9 @@ static int pnpacpi_disable_resources(struct pnp_dev *dev)
110 110
111 /* acpi_unregister_gsi(pnp_irq(dev, 0)); */ 111 /* acpi_unregister_gsi(pnp_irq(dev, 0)); */
112 ret = 0; 112 ret = 0;
113 if (acpi_bus_power_manageable(handle)) { 113 if (acpi_bus_power_manageable(handle))
114 ret = acpi_bus_set_power(handle, ACPI_STATE_D3); 114 acpi_bus_set_power(handle, ACPI_STATE_D3);
115 if (ret) 115 /* continue even if acpi_bus_set_power() fails */
116 return ret;
117 }
118 if (ACPI_FAILURE(acpi_evaluate_object(handle, "_DIS", NULL, NULL))) 116 if (ACPI_FAILURE(acpi_evaluate_object(handle, "_DIS", NULL, NULL)))
119 ret = -ENODEV; 117 ret = -ENODEV;
120 return ret; 118 return ret;
diff --git a/drivers/regulator/da903x.c b/drivers/regulator/da903x.c
index 72b15495183c..c6628f5a0af7 100644
--- a/drivers/regulator/da903x.c
+++ b/drivers/regulator/da903x.c
@@ -497,7 +497,7 @@ static struct platform_driver da903x_regulator_driver = {
497 .owner = THIS_MODULE, 497 .owner = THIS_MODULE,
498 }, 498 },
499 .probe = da903x_regulator_probe, 499 .probe = da903x_regulator_probe,
500 .remove = da903x_regulator_remove, 500 .remove = __devexit_p(da903x_regulator_remove),
501}; 501};
502 502
503static int __init da903x_regulator_init(void) 503static int __init da903x_regulator_init(void)
diff --git a/drivers/rtc/rtc-pl030.c b/drivers/rtc/rtc-pl030.c
index 826153552157..aaf1f75fa293 100644
--- a/drivers/rtc/rtc-pl030.c
+++ b/drivers/rtc/rtc-pl030.c
@@ -102,7 +102,7 @@ static const struct rtc_class_ops pl030_ops = {
102 .set_alarm = pl030_set_alarm, 102 .set_alarm = pl030_set_alarm,
103}; 103};
104 104
105static int pl030_probe(struct amba_device *dev, void *id) 105static int pl030_probe(struct amba_device *dev, struct amba_id *id)
106{ 106{
107 struct pl030_rtc *rtc; 107 struct pl030_rtc *rtc;
108 int ret; 108 int ret;
diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c
index 333eec689d2f..451fc13784d1 100644
--- a/drivers/rtc/rtc-pl031.c
+++ b/drivers/rtc/rtc-pl031.c
@@ -127,7 +127,7 @@ static int pl031_remove(struct amba_device *adev)
127 return 0; 127 return 0;
128} 128}
129 129
130static int pl031_probe(struct amba_device *adev, void *id) 130static int pl031_probe(struct amba_device *adev, struct amba_id *id)
131{ 131{
132 int ret; 132 int ret;
133 struct pl031_local *ldata; 133 struct pl031_local *ldata;
diff --git a/drivers/rtc/rtc-twl4030.c b/drivers/rtc/rtc-twl4030.c
index a6341e4f9a0f..9c8c70c497dc 100644
--- a/drivers/rtc/rtc-twl4030.c
+++ b/drivers/rtc/rtc-twl4030.c
@@ -495,9 +495,7 @@ static int twl4030_rtc_suspend(struct platform_device *pdev, pm_message_t state)
495{ 495{
496 irqstat = rtc_irq_bits; 496 irqstat = rtc_irq_bits;
497 497
498 /* REVISIT alarm may need to wake us from sleep */ 498 mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M);
499 mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M |
500 BIT_RTC_INTERRUPTS_REG_IT_ALARM_M);
501 return 0; 499 return 0;
502} 500}
503 501
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
index 8b7983aba8f7..36c21b19e5d7 100644
--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -1978,7 +1978,8 @@ static void twa_unmap_scsi_data(TW_Device_Extension *tw_dev, int request_id)
1978{ 1978{
1979 struct scsi_cmnd *cmd = tw_dev->srb[request_id]; 1979 struct scsi_cmnd *cmd = tw_dev->srb[request_id];
1980 1980
1981 scsi_dma_unmap(cmd); 1981 if (cmd->SCp.phase == TW_PHASE_SGLIST)
1982 scsi_dma_unmap(cmd);
1982} /* End twa_unmap_scsi_data() */ 1983} /* End twa_unmap_scsi_data() */
1983 1984
1984/* scsi_host_template initializer */ 1985/* scsi_host_template initializer */
diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c
index c03f1d2c9e2e..faa0fcfed71e 100644
--- a/drivers/scsi/3w-xxxx.c
+++ b/drivers/scsi/3w-xxxx.c
@@ -6,7 +6,7 @@
6 Arnaldo Carvalho de Melo <acme@conectiva.com.br> 6 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
7 Brad Strand <linux@3ware.com> 7 Brad Strand <linux@3ware.com>
8 8
9 Copyright (C) 1999-2007 3ware Inc. 9 Copyright (C) 1999-2009 3ware Inc.
10 10
11 Kernel compatiblity By: Andre Hedrick <andre@suse.com> 11 Kernel compatiblity By: Andre Hedrick <andre@suse.com>
12 Non-Copyright (C) 2000 Andre Hedrick <andre@suse.com> 12 Non-Copyright (C) 2000 Andre Hedrick <andre@suse.com>
@@ -1294,7 +1294,8 @@ static void tw_unmap_scsi_data(struct pci_dev *pdev, struct scsi_cmnd *cmd)
1294{ 1294{
1295 dprintk(KERN_WARNING "3w-xxxx: tw_unmap_scsi_data()\n"); 1295 dprintk(KERN_WARNING "3w-xxxx: tw_unmap_scsi_data()\n");
1296 1296
1297 scsi_dma_unmap(cmd); 1297 if (cmd->SCp.phase == TW_PHASE_SGLIST)
1298 scsi_dma_unmap(cmd);
1298} /* End tw_unmap_scsi_data() */ 1299} /* End tw_unmap_scsi_data() */
1299 1300
1300/* This function will reset a device extension */ 1301/* This function will reset a device extension */
diff --git a/drivers/scsi/3w-xxxx.h b/drivers/scsi/3w-xxxx.h
index 8e71e5e122b3..a5a2ba2561d9 100644
--- a/drivers/scsi/3w-xxxx.h
+++ b/drivers/scsi/3w-xxxx.h
@@ -6,7 +6,7 @@
6 Arnaldo Carvalho de Melo <acme@conectiva.com.br> 6 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
7 Brad Strand <linux@3ware.com> 7 Brad Strand <linux@3ware.com>
8 8
9 Copyright (C) 1999-2007 3ware Inc. 9 Copyright (C) 1999-2009 3ware Inc.
10 10
11 Kernel compatiblity By: Andre Hedrick <andre@suse.com> 11 Kernel compatiblity By: Andre Hedrick <andre@suse.com>
12 Non-Copyright (C) 2000 Andre Hedrick <andre@suse.com> 12 Non-Copyright (C) 2000 Andre Hedrick <andre@suse.com>
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 8ed2990c826e..fb2740789b68 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -628,6 +628,17 @@ config FCOE
628 ---help--- 628 ---help---
629 Fibre Channel over Ethernet module 629 Fibre Channel over Ethernet module
630 630
631config FCOE_FNIC
632 tristate "Cisco FNIC Driver"
633 depends on PCI && X86
634 select LIBFC
635 help
636 This is support for the Cisco PCI-Express FCoE HBA.
637
638 To compile this driver as a module, choose M here and read
639 <file:Documentation/scsi/scsi.txt>.
640 The module will be called fnic.
641
631config SCSI_DMX3191D 642config SCSI_DMX3191D
632 tristate "DMX3191D SCSI support" 643 tristate "DMX3191D SCSI support"
633 depends on PCI && SCSI 644 depends on PCI && SCSI
diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile
index e7c861ac417d..a5049cfb40ed 100644
--- a/drivers/scsi/Makefile
+++ b/drivers/scsi/Makefile
@@ -39,6 +39,7 @@ obj-$(CONFIG_SCSI_DH) += device_handler/
39obj-$(CONFIG_LIBFC) += libfc/ 39obj-$(CONFIG_LIBFC) += libfc/
40obj-$(CONFIG_LIBFCOE) += fcoe/ 40obj-$(CONFIG_LIBFCOE) += fcoe/
41obj-$(CONFIG_FCOE) += fcoe/ 41obj-$(CONFIG_FCOE) += fcoe/
42obj-$(CONFIG_FCOE_FNIC) += fnic/
42obj-$(CONFIG_ISCSI_TCP) += libiscsi.o libiscsi_tcp.o iscsi_tcp.o 43obj-$(CONFIG_ISCSI_TCP) += libiscsi.o libiscsi_tcp.o iscsi_tcp.o
43obj-$(CONFIG_INFINIBAND_ISER) += libiscsi.o 44obj-$(CONFIG_INFINIBAND_ISER) += libiscsi.o
44obj-$(CONFIG_SCSI_A4000T) += 53c700.o a4000t.o 45obj-$(CONFIG_SCSI_A4000T) += 53c700.o a4000t.o
diff --git a/drivers/scsi/fnic/Makefile b/drivers/scsi/fnic/Makefile
new file mode 100644
index 000000000000..37c3440bc17c
--- /dev/null
+++ b/drivers/scsi/fnic/Makefile
@@ -0,0 +1,15 @@
1obj-$(CONFIG_FCOE_FNIC) += fnic.o
2
3fnic-y := \
4 fnic_attrs.o \
5 fnic_isr.o \
6 fnic_main.o \
7 fnic_res.o \
8 fnic_fcs.o \
9 fnic_scsi.o \
10 vnic_cq.o \
11 vnic_dev.o \
12 vnic_intr.o \
13 vnic_rq.o \
14 vnic_wq_copy.o \
15 vnic_wq.o
diff --git a/drivers/scsi/fnic/cq_desc.h b/drivers/scsi/fnic/cq_desc.h
new file mode 100644
index 000000000000..d1225cf6320e
--- /dev/null
+++ b/drivers/scsi/fnic/cq_desc.h
@@ -0,0 +1,78 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _CQ_DESC_H_
19#define _CQ_DESC_H_
20
21/*
22 * Completion queue descriptor types
23 */
24enum cq_desc_types {
25 CQ_DESC_TYPE_WQ_ENET = 0,
26 CQ_DESC_TYPE_DESC_COPY = 1,
27 CQ_DESC_TYPE_WQ_EXCH = 2,
28 CQ_DESC_TYPE_RQ_ENET = 3,
29 CQ_DESC_TYPE_RQ_FCP = 4,
30};
31
32/* Completion queue descriptor: 16B
33 *
34 * All completion queues have this basic layout. The
35 * type_specfic area is unique for each completion
36 * queue type.
37 */
38struct cq_desc {
39 __le16 completed_index;
40 __le16 q_number;
41 u8 type_specfic[11];
42 u8 type_color;
43};
44
45#define CQ_DESC_TYPE_BITS 4
46#define CQ_DESC_TYPE_MASK ((1 << CQ_DESC_TYPE_BITS) - 1)
47#define CQ_DESC_COLOR_MASK 1
48#define CQ_DESC_COLOR_SHIFT 7
49#define CQ_DESC_Q_NUM_BITS 10
50#define CQ_DESC_Q_NUM_MASK ((1 << CQ_DESC_Q_NUM_BITS) - 1)
51#define CQ_DESC_COMP_NDX_BITS 12
52#define CQ_DESC_COMP_NDX_MASK ((1 << CQ_DESC_COMP_NDX_BITS) - 1)
53
54static inline void cq_desc_dec(const struct cq_desc *desc_arg,
55 u8 *type, u8 *color, u16 *q_number, u16 *completed_index)
56{
57 const struct cq_desc *desc = desc_arg;
58 const u8 type_color = desc->type_color;
59
60 *color = (type_color >> CQ_DESC_COLOR_SHIFT) & CQ_DESC_COLOR_MASK;
61
62 /*
63 * Make sure color bit is read from desc *before* other fields
64 * are read from desc. Hardware guarantees color bit is last
65 * bit (byte) written. Adding the rmb() prevents the compiler
66 * and/or CPU from reordering the reads which would potentially
67 * result in reading stale values.
68 */
69
70 rmb();
71
72 *type = type_color & CQ_DESC_TYPE_MASK;
73 *q_number = le16_to_cpu(desc->q_number) & CQ_DESC_Q_NUM_MASK;
74 *completed_index = le16_to_cpu(desc->completed_index) &
75 CQ_DESC_COMP_NDX_MASK;
76}
77
78#endif /* _CQ_DESC_H_ */
diff --git a/drivers/scsi/fnic/cq_enet_desc.h b/drivers/scsi/fnic/cq_enet_desc.h
new file mode 100644
index 000000000000..a9fa26f82ddd
--- /dev/null
+++ b/drivers/scsi/fnic/cq_enet_desc.h
@@ -0,0 +1,167 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _CQ_ENET_DESC_H_
19#define _CQ_ENET_DESC_H_
20
21#include "cq_desc.h"
22
23/* Ethernet completion queue descriptor: 16B */
24struct cq_enet_wq_desc {
25 __le16 completed_index;
26 __le16 q_number;
27 u8 reserved[11];
28 u8 type_color;
29};
30
31static inline void cq_enet_wq_desc_dec(struct cq_enet_wq_desc *desc,
32 u8 *type, u8 *color, u16 *q_number, u16 *completed_index)
33{
34 cq_desc_dec((struct cq_desc *)desc, type,
35 color, q_number, completed_index);
36}
37
38/* Completion queue descriptor: Ethernet receive queue, 16B */
39struct cq_enet_rq_desc {
40 __le16 completed_index_flags;
41 __le16 q_number_rss_type_flags;
42 __le32 rss_hash;
43 __le16 bytes_written_flags;
44 __le16 vlan;
45 __le16 checksum_fcoe;
46 u8 flags;
47 u8 type_color;
48};
49
50#define CQ_ENET_RQ_DESC_FLAGS_INGRESS_PORT (0x1 << 12)
51#define CQ_ENET_RQ_DESC_FLAGS_FCOE (0x1 << 13)
52#define CQ_ENET_RQ_DESC_FLAGS_EOP (0x1 << 14)
53#define CQ_ENET_RQ_DESC_FLAGS_SOP (0x1 << 15)
54
55#define CQ_ENET_RQ_DESC_RSS_TYPE_BITS 4
56#define CQ_ENET_RQ_DESC_RSS_TYPE_MASK \
57 ((1 << CQ_ENET_RQ_DESC_RSS_TYPE_BITS) - 1)
58#define CQ_ENET_RQ_DESC_RSS_TYPE_NONE 0
59#define CQ_ENET_RQ_DESC_RSS_TYPE_IPv4 1
60#define CQ_ENET_RQ_DESC_RSS_TYPE_TCP_IPv4 2
61#define CQ_ENET_RQ_DESC_RSS_TYPE_IPv6 3
62#define CQ_ENET_RQ_DESC_RSS_TYPE_TCP_IPv6 4
63#define CQ_ENET_RQ_DESC_RSS_TYPE_IPv6_EX 5
64#define CQ_ENET_RQ_DESC_RSS_TYPE_TCP_IPv6_EX 6
65
66#define CQ_ENET_RQ_DESC_FLAGS_CSUM_NOT_CALC (0x1 << 14)
67
68#define CQ_ENET_RQ_DESC_BYTES_WRITTEN_BITS 14
69#define CQ_ENET_RQ_DESC_BYTES_WRITTEN_MASK \
70 ((1 << CQ_ENET_RQ_DESC_BYTES_WRITTEN_BITS) - 1)
71#define CQ_ENET_RQ_DESC_FLAGS_TRUNCATED (0x1 << 14)
72#define CQ_ENET_RQ_DESC_FLAGS_VLAN_STRIPPED (0x1 << 15)
73
74#define CQ_ENET_RQ_DESC_FCOE_SOF_BITS 4
75#define CQ_ENET_RQ_DESC_FCOE_SOF_MASK \
76 ((1 << CQ_ENET_RQ_DESC_FCOE_SOF_BITS) - 1)
77#define CQ_ENET_RQ_DESC_FCOE_EOF_BITS 8
78#define CQ_ENET_RQ_DESC_FCOE_EOF_MASK \
79 ((1 << CQ_ENET_RQ_DESC_FCOE_EOF_BITS) - 1)
80#define CQ_ENET_RQ_DESC_FCOE_EOF_SHIFT 8
81
82#define CQ_ENET_RQ_DESC_FLAGS_TCP_UDP_CSUM_OK (0x1 << 0)
83#define CQ_ENET_RQ_DESC_FCOE_FC_CRC_OK (0x1 << 0)
84#define CQ_ENET_RQ_DESC_FLAGS_UDP (0x1 << 1)
85#define CQ_ENET_RQ_DESC_FCOE_ENC_ERROR (0x1 << 1)
86#define CQ_ENET_RQ_DESC_FLAGS_TCP (0x1 << 2)
87#define CQ_ENET_RQ_DESC_FLAGS_IPV4_CSUM_OK (0x1 << 3)
88#define CQ_ENET_RQ_DESC_FLAGS_IPV6 (0x1 << 4)
89#define CQ_ENET_RQ_DESC_FLAGS_IPV4 (0x1 << 5)
90#define CQ_ENET_RQ_DESC_FLAGS_IPV4_FRAGMENT (0x1 << 6)
91#define CQ_ENET_RQ_DESC_FLAGS_FCS_OK (0x1 << 7)
92
93static inline void cq_enet_rq_desc_dec(struct cq_enet_rq_desc *desc,
94 u8 *type, u8 *color, u16 *q_number, u16 *completed_index,
95 u8 *ingress_port, u8 *fcoe, u8 *eop, u8 *sop, u8 *rss_type,
96 u8 *csum_not_calc, u32 *rss_hash, u16 *bytes_written, u8 *packet_error,
97 u8 *vlan_stripped, u16 *vlan, u16 *checksum, u8 *fcoe_sof,
98 u8 *fcoe_fc_crc_ok, u8 *fcoe_enc_error, u8 *fcoe_eof,
99 u8 *tcp_udp_csum_ok, u8 *udp, u8 *tcp, u8 *ipv4_csum_ok,
100 u8 *ipv6, u8 *ipv4, u8 *ipv4_fragment, u8 *fcs_ok)
101{
102 u16 completed_index_flags = le16_to_cpu(desc->completed_index_flags);
103 u16 q_number_rss_type_flags =
104 le16_to_cpu(desc->q_number_rss_type_flags);
105 u16 bytes_written_flags = le16_to_cpu(desc->bytes_written_flags);
106
107 cq_desc_dec((struct cq_desc *)desc, type,
108 color, q_number, completed_index);
109
110 *ingress_port = (completed_index_flags &
111 CQ_ENET_RQ_DESC_FLAGS_INGRESS_PORT) ? 1 : 0;
112 *fcoe = (completed_index_flags & CQ_ENET_RQ_DESC_FLAGS_FCOE) ?
113 1 : 0;
114 *eop = (completed_index_flags & CQ_ENET_RQ_DESC_FLAGS_EOP) ?
115 1 : 0;
116 *sop = (completed_index_flags & CQ_ENET_RQ_DESC_FLAGS_SOP) ?
117 1 : 0;
118
119 *rss_type = (u8)((q_number_rss_type_flags >> CQ_DESC_Q_NUM_BITS) &
120 CQ_ENET_RQ_DESC_RSS_TYPE_MASK);
121 *csum_not_calc = (q_number_rss_type_flags &
122 CQ_ENET_RQ_DESC_FLAGS_CSUM_NOT_CALC) ? 1 : 0;
123
124 *rss_hash = le32_to_cpu(desc->rss_hash);
125
126 *bytes_written = bytes_written_flags &
127 CQ_ENET_RQ_DESC_BYTES_WRITTEN_MASK;
128 *packet_error = (bytes_written_flags &
129 CQ_ENET_RQ_DESC_FLAGS_TRUNCATED) ? 1 : 0;
130 *vlan_stripped = (bytes_written_flags &
131 CQ_ENET_RQ_DESC_FLAGS_VLAN_STRIPPED) ? 1 : 0;
132
133 *vlan = le16_to_cpu(desc->vlan);
134
135 if (*fcoe) {
136 *fcoe_sof = (u8)(le16_to_cpu(desc->checksum_fcoe) &
137 CQ_ENET_RQ_DESC_FCOE_SOF_MASK);
138 *fcoe_fc_crc_ok = (desc->flags &
139 CQ_ENET_RQ_DESC_FCOE_FC_CRC_OK) ? 1 : 0;
140 *fcoe_enc_error = (desc->flags &
141 CQ_ENET_RQ_DESC_FCOE_ENC_ERROR) ? 1 : 0;
142 *fcoe_eof = (u8)((desc->checksum_fcoe >>
143 CQ_ENET_RQ_DESC_FCOE_EOF_SHIFT) &
144 CQ_ENET_RQ_DESC_FCOE_EOF_MASK);
145 *checksum = 0;
146 } else {
147 *fcoe_sof = 0;
148 *fcoe_fc_crc_ok = 0;
149 *fcoe_enc_error = 0;
150 *fcoe_eof = 0;
151 *checksum = le16_to_cpu(desc->checksum_fcoe);
152 }
153
154 *tcp_udp_csum_ok =
155 (desc->flags & CQ_ENET_RQ_DESC_FLAGS_TCP_UDP_CSUM_OK) ? 1 : 0;
156 *udp = (desc->flags & CQ_ENET_RQ_DESC_FLAGS_UDP) ? 1 : 0;
157 *tcp = (desc->flags & CQ_ENET_RQ_DESC_FLAGS_TCP) ? 1 : 0;
158 *ipv4_csum_ok =
159 (desc->flags & CQ_ENET_RQ_DESC_FLAGS_IPV4_CSUM_OK) ? 1 : 0;
160 *ipv6 = (desc->flags & CQ_ENET_RQ_DESC_FLAGS_IPV6) ? 1 : 0;
161 *ipv4 = (desc->flags & CQ_ENET_RQ_DESC_FLAGS_IPV4) ? 1 : 0;
162 *ipv4_fragment =
163 (desc->flags & CQ_ENET_RQ_DESC_FLAGS_IPV4_FRAGMENT) ? 1 : 0;
164 *fcs_ok = (desc->flags & CQ_ENET_RQ_DESC_FLAGS_FCS_OK) ? 1 : 0;
165}
166
167#endif /* _CQ_ENET_DESC_H_ */
diff --git a/drivers/scsi/fnic/cq_exch_desc.h b/drivers/scsi/fnic/cq_exch_desc.h
new file mode 100644
index 000000000000..501660cfe228
--- /dev/null
+++ b/drivers/scsi/fnic/cq_exch_desc.h
@@ -0,0 +1,182 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _CQ_EXCH_DESC_H_
19#define _CQ_EXCH_DESC_H_
20
21#include "cq_desc.h"
22
23/* Exchange completion queue descriptor: 16B */
24struct cq_exch_wq_desc {
25 u16 completed_index;
26 u16 q_number;
27 u16 exchange_id;
28 u8 tmpl;
29 u8 reserved0;
30 u32 reserved1;
31 u8 exch_status;
32 u8 reserved2[2];
33 u8 type_color;
34};
35
36#define CQ_EXCH_WQ_STATUS_BITS 2
37#define CQ_EXCH_WQ_STATUS_MASK ((1 << CQ_EXCH_WQ_STATUS_BITS) - 1)
38
39enum cq_exch_status_types {
40 CQ_EXCH_WQ_STATUS_TYPE_COMPLETE = 0,
41 CQ_EXCH_WQ_STATUS_TYPE_ABORT = 1,
42 CQ_EXCH_WQ_STATUS_TYPE_SGL_EOF = 2,
43 CQ_EXCH_WQ_STATUS_TYPE_TMPL_ERR = 3,
44};
45
46static inline void cq_exch_wq_desc_dec(struct cq_exch_wq_desc *desc_ptr,
47 u8 *type,
48 u8 *color,
49 u16 *q_number,
50 u16 *completed_index,
51 u8 *exch_status)
52{
53 cq_desc_dec((struct cq_desc *)desc_ptr, type,
54 color, q_number, completed_index);
55 *exch_status = desc_ptr->exch_status & CQ_EXCH_WQ_STATUS_MASK;
56}
57
58struct cq_fcp_rq_desc {
59 u16 completed_index_eop_sop_prt;
60 u16 q_number;
61 u16 exchange_id;
62 u16 tmpl;
63 u16 bytes_written;
64 u16 vlan;
65 u8 sof;
66 u8 eof;
67 u8 fcs_fer_fck;
68 u8 type_color;
69};
70
71#define CQ_FCP_RQ_DESC_FLAGS_SOP (1 << 15)
72#define CQ_FCP_RQ_DESC_FLAGS_EOP (1 << 14)
73#define CQ_FCP_RQ_DESC_FLAGS_PRT (1 << 12)
74#define CQ_FCP_RQ_DESC_TMPL_MASK 0x1f
75#define CQ_FCP_RQ_DESC_BYTES_WRITTEN_MASK 0x3fff
76#define CQ_FCP_RQ_DESC_PACKET_ERR_SHIFT 14
77#define CQ_FCP_RQ_DESC_PACKET_ERR_MASK (1 << CQ_FCP_RQ_DESC_PACKET_ERR_SHIFT)
78#define CQ_FCP_RQ_DESC_VS_STRIPPED_SHIFT 15
79#define CQ_FCP_RQ_DESC_VS_STRIPPED_MASK (1 << CQ_FCP_RQ_DESC_VS_STRIPPED_SHIFT)
80#define CQ_FCP_RQ_DESC_FC_CRC_OK_MASK 0x1
81#define CQ_FCP_RQ_DESC_FCOE_ERR_SHIFT 1
82#define CQ_FCP_RQ_DESC_FCOE_ERR_MASK (1 << CQ_FCP_RQ_DESC_FCOE_ERR_SHIFT)
83#define CQ_FCP_RQ_DESC_FCS_OK_SHIFT 7
84#define CQ_FCP_RQ_DESC_FCS_OK_MASK (1 << CQ_FCP_RQ_DESC_FCS_OK_SHIFT)
85
86static inline void cq_fcp_rq_desc_dec(struct cq_fcp_rq_desc *desc_ptr,
87 u8 *type,
88 u8 *color,
89 u16 *q_number,
90 u16 *completed_index,
91 u8 *eop,
92 u8 *sop,
93 u8 *fck,
94 u16 *exchange_id,
95 u16 *tmpl,
96 u32 *bytes_written,
97 u8 *sof,
98 u8 *eof,
99 u8 *ingress_port,
100 u8 *packet_err,
101 u8 *fcoe_err,
102 u8 *fcs_ok,
103 u8 *vlan_stripped,
104 u16 *vlan)
105{
106 cq_desc_dec((struct cq_desc *)desc_ptr, type,
107 color, q_number, completed_index);
108 *eop = (desc_ptr->completed_index_eop_sop_prt &
109 CQ_FCP_RQ_DESC_FLAGS_EOP) ? 1 : 0;
110 *sop = (desc_ptr->completed_index_eop_sop_prt &
111 CQ_FCP_RQ_DESC_FLAGS_SOP) ? 1 : 0;
112 *ingress_port =
113 (desc_ptr->completed_index_eop_sop_prt &
114 CQ_FCP_RQ_DESC_FLAGS_PRT) ? 1 : 0;
115 *exchange_id = desc_ptr->exchange_id;
116 *tmpl = desc_ptr->tmpl & CQ_FCP_RQ_DESC_TMPL_MASK;
117 *bytes_written =
118 desc_ptr->bytes_written & CQ_FCP_RQ_DESC_BYTES_WRITTEN_MASK;
119 *packet_err =
120 (desc_ptr->bytes_written & CQ_FCP_RQ_DESC_PACKET_ERR_MASK) >>
121 CQ_FCP_RQ_DESC_PACKET_ERR_SHIFT;
122 *vlan_stripped =
123 (desc_ptr->bytes_written & CQ_FCP_RQ_DESC_VS_STRIPPED_MASK) >>
124 CQ_FCP_RQ_DESC_VS_STRIPPED_SHIFT;
125 *vlan = desc_ptr->vlan;
126 *sof = desc_ptr->sof;
127 *fck = desc_ptr->fcs_fer_fck & CQ_FCP_RQ_DESC_FC_CRC_OK_MASK;
128 *fcoe_err = (desc_ptr->fcs_fer_fck & CQ_FCP_RQ_DESC_FCOE_ERR_MASK) >>
129 CQ_FCP_RQ_DESC_FCOE_ERR_SHIFT;
130 *eof = desc_ptr->eof;
131 *fcs_ok =
132 (desc_ptr->fcs_fer_fck & CQ_FCP_RQ_DESC_FCS_OK_MASK) >>
133 CQ_FCP_RQ_DESC_FCS_OK_SHIFT;
134}
135
136struct cq_sgl_desc {
137 u16 exchange_id;
138 u16 q_number;
139 u32 active_burst_offset;
140 u32 tot_data_bytes;
141 u16 tmpl;
142 u8 sgl_err;
143 u8 type_color;
144};
145
146enum cq_sgl_err_types {
147 CQ_SGL_ERR_NO_ERROR = 0,
148 CQ_SGL_ERR_OVERFLOW, /* data ran beyond end of SGL */
149 CQ_SGL_ERR_SGL_LCL_ADDR_ERR, /* sgl access to local vnic addr illegal*/
150 CQ_SGL_ERR_ADDR_RSP_ERR, /* sgl address error */
151 CQ_SGL_ERR_DATA_RSP_ERR, /* sgl data rsp error */
152 CQ_SGL_ERR_CNT_ZERO_ERR, /* SGL count is 0 */
153 CQ_SGL_ERR_CNT_MAX_ERR, /* SGL count is larger than supported */
154 CQ_SGL_ERR_ORDER_ERR, /* frames recv on both ports, order err */
155 CQ_SGL_ERR_DATA_LCL_ADDR_ERR,/* sgl data buf to local vnic addr ill */
156 CQ_SGL_ERR_HOST_CQ_ERR, /* host cq entry to local vnic addr ill */
157};
158
159#define CQ_SGL_SGL_ERR_MASK 0x1f
160#define CQ_SGL_TMPL_MASK 0x1f
161
162static inline void cq_sgl_desc_dec(struct cq_sgl_desc *desc_ptr,
163 u8 *type,
164 u8 *color,
165 u16 *q_number,
166 u16 *exchange_id,
167 u32 *active_burst_offset,
168 u32 *tot_data_bytes,
169 u16 *tmpl,
170 u8 *sgl_err)
171{
172 /* Cheat a little by assuming exchange_id is the same as completed
173 index */
174 cq_desc_dec((struct cq_desc *)desc_ptr, type, color, q_number,
175 exchange_id);
176 *active_burst_offset = desc_ptr->active_burst_offset;
177 *tot_data_bytes = desc_ptr->tot_data_bytes;
178 *tmpl = desc_ptr->tmpl & CQ_SGL_TMPL_MASK;
179 *sgl_err = desc_ptr->sgl_err & CQ_SGL_SGL_ERR_MASK;
180}
181
182#endif /* _CQ_EXCH_DESC_H_ */
diff --git a/drivers/scsi/fnic/fcpio.h b/drivers/scsi/fnic/fcpio.h
new file mode 100644
index 000000000000..12d770d885c5
--- /dev/null
+++ b/drivers/scsi/fnic/fcpio.h
@@ -0,0 +1,780 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _FCPIO_H_
19#define _FCPIO_H_
20
21#include <linux/if_ether.h>
22
23/*
24 * This header file includes all of the data structures used for
25 * communication by the host driver to the fcp firmware.
26 */
27
28/*
29 * Exchange and sequence id space allocated to the host driver
30 */
31#define FCPIO_HOST_EXCH_RANGE_START 0x1000
32#define FCPIO_HOST_EXCH_RANGE_END 0x1fff
33#define FCPIO_HOST_SEQ_ID_RANGE_START 0x80
34#define FCPIO_HOST_SEQ_ID_RANGE_END 0xff
35
36/*
37 * Command entry type
38 */
39enum fcpio_type {
40 /*
41 * Initiator request types
42 */
43 FCPIO_ICMND_16 = 0x1,
44 FCPIO_ICMND_32,
45 FCPIO_ICMND_CMPL,
46 FCPIO_ITMF,
47 FCPIO_ITMF_CMPL,
48
49 /*
50 * Target request types
51 */
52 FCPIO_TCMND_16 = 0x11,
53 FCPIO_TCMND_32,
54 FCPIO_TDATA,
55 FCPIO_TXRDY,
56 FCPIO_TRSP,
57 FCPIO_TDRSP_CMPL,
58 FCPIO_TTMF,
59 FCPIO_TTMF_ACK,
60 FCPIO_TABORT,
61 FCPIO_TABORT_CMPL,
62
63 /*
64 * Misc request types
65 */
66 FCPIO_ACK = 0x20,
67 FCPIO_RESET,
68 FCPIO_RESET_CMPL,
69 FCPIO_FLOGI_REG,
70 FCPIO_FLOGI_REG_CMPL,
71 FCPIO_ECHO,
72 FCPIO_ECHO_CMPL,
73 FCPIO_LUNMAP_CHNG,
74 FCPIO_LUNMAP_REQ,
75 FCPIO_LUNMAP_REQ_CMPL,
76 FCPIO_FLOGI_FIP_REG,
77 FCPIO_FLOGI_FIP_REG_CMPL,
78};
79
80/*
81 * Header status codes from the firmware
82 */
83enum fcpio_status {
84 FCPIO_SUCCESS = 0, /* request was successful */
85
86 /*
87 * If a request to the firmware is rejected, the original request
88 * header will be returned with the status set to one of the following:
89 */
90 FCPIO_INVALID_HEADER, /* header contains invalid data */
91 FCPIO_OUT_OF_RESOURCE, /* out of resources to complete request */
92 FCPIO_INVALID_PARAM, /* some parameter in request is invalid */
93 FCPIO_REQ_NOT_SUPPORTED, /* request type is not supported */
94 FCPIO_IO_NOT_FOUND, /* requested I/O was not found */
95
96 /*
97 * Once a request is processed, the firmware will usually return
98 * a cmpl message type. In cases where errors occurred,
99 * the header status field would be filled in with one of the following:
100 */
101 FCPIO_ABORTED = 0x41, /* request was aborted */
102 FCPIO_TIMEOUT, /* request was timed out */
103 FCPIO_SGL_INVALID, /* request was aborted due to sgl error */
104 FCPIO_MSS_INVALID, /* request was aborted due to mss error */
105 FCPIO_DATA_CNT_MISMATCH, /* recv/sent more/less data than exp. */
106 FCPIO_FW_ERR, /* request was terminated due to fw error */
107 FCPIO_ITMF_REJECTED, /* itmf req was rejected by remote node */
108 FCPIO_ITMF_FAILED, /* itmf req was failed by remote node */
109 FCPIO_ITMF_INCORRECT_LUN, /* itmf req targeted incorrect LUN */
110 FCPIO_CMND_REJECTED, /* request was invalid and rejected */
111 FCPIO_NO_PATH_AVAIL, /* no paths to the lun was available */
112 FCPIO_PATH_FAILED, /* i/o sent to current path failed */
113 FCPIO_LUNMAP_CHNG_PEND, /* i/o rejected due to lunmap change */
114};
115
116/*
117 * The header command tag. All host requests will use the "tag" field
118 * to mark commands with a unique tag. When the firmware responds to
119 * a host request, it will copy the tag field into the response.
120 *
121 * The only firmware requests that will use the rx_id/ox_id fields instead
122 * of the tag field will be the target command and target task management
123 * requests. These two requests do not have corresponding host requests
124 * since they come directly from the FC initiator on the network.
125 */
126struct fcpio_tag {
127 union {
128 u32 req_id;
129 struct {
130 u16 rx_id;
131 u16 ox_id;
132 } ex_id;
133 } u;
134};
135
136static inline void
137fcpio_tag_id_enc(struct fcpio_tag *tag, u32 id)
138{
139 tag->u.req_id = id;
140}
141
142static inline void
143fcpio_tag_id_dec(struct fcpio_tag *tag, u32 *id)
144{
145 *id = tag->u.req_id;
146}
147
148static inline void
149fcpio_tag_exid_enc(struct fcpio_tag *tag, u16 ox_id, u16 rx_id)
150{
151 tag->u.ex_id.rx_id = rx_id;
152 tag->u.ex_id.ox_id = ox_id;
153}
154
155static inline void
156fcpio_tag_exid_dec(struct fcpio_tag *tag, u16 *ox_id, u16 *rx_id)
157{
158 *rx_id = tag->u.ex_id.rx_id;
159 *ox_id = tag->u.ex_id.ox_id;
160}
161
162/*
163 * The header for an fcpio request, whether from the firmware or from the
164 * host driver
165 */
166struct fcpio_header {
167 u8 type; /* enum fcpio_type */
168 u8 status; /* header status entry */
169 u16 _resvd; /* reserved */
170 struct fcpio_tag tag; /* header tag */
171};
172
173static inline void
174fcpio_header_enc(struct fcpio_header *hdr,
175 u8 type, u8 status,
176 struct fcpio_tag tag)
177{
178 hdr->type = type;
179 hdr->status = status;
180 hdr->_resvd = 0;
181 hdr->tag = tag;
182}
183
184static inline void
185fcpio_header_dec(struct fcpio_header *hdr,
186 u8 *type, u8 *status,
187 struct fcpio_tag *tag)
188{
189 *type = hdr->type;
190 *status = hdr->status;
191 *tag = hdr->tag;
192}
193
194#define CDB_16 16
195#define CDB_32 32
196#define LUN_ADDRESS 8
197
198/*
199 * fcpio_icmnd_16: host -> firmware request
200 *
201 * used for sending out an initiator SCSI 16-byte command
202 */
203struct fcpio_icmnd_16 {
204 u32 lunmap_id; /* index into lunmap table */
205 u8 special_req_flags; /* special exchange request flags */
206 u8 _resvd0[3]; /* reserved */
207 u32 sgl_cnt; /* scatter-gather list count */
208 u32 sense_len; /* sense buffer length */
209 u64 sgl_addr; /* scatter-gather list addr */
210 u64 sense_addr; /* sense buffer address */
211 u8 crn; /* SCSI Command Reference No. */
212 u8 pri_ta; /* SCSI Priority and Task attribute */
213 u8 _resvd1; /* reserved: should be 0 */
214 u8 flags; /* command flags */
215 u8 scsi_cdb[CDB_16]; /* SCSI Cmnd Descriptor Block */
216 u32 data_len; /* length of data expected */
217 u8 lun[LUN_ADDRESS]; /* FC vNIC only: LUN address */
218 u8 _resvd2; /* reserved */
219 u8 d_id[3]; /* FC vNIC only: Target D_ID */
220 u16 mss; /* FC vNIC only: max burst */
221 u16 _resvd3; /* reserved */
222 u32 r_a_tov; /* FC vNIC only: Res. Alloc Timeout */
223 u32 e_d_tov; /* FC vNIC only: Err Detect Timeout */
224};
225
226/*
227 * Special request flags
228 */
229#define FCPIO_ICMND_SRFLAG_RETRY 0x01 /* Enable Retry handling on exchange */
230
231/*
232 * Priority/Task Attribute settings
233 */
234#define FCPIO_ICMND_PTA_SIMPLE 0 /* simple task attribute */
235#define FCPIO_ICMND_PTA_HEADQ 1 /* head of queue task attribute */
236#define FCPIO_ICMND_PTA_ORDERED 2 /* ordered task attribute */
237#define FCPIO_ICMND_PTA_ACA 4 /* auto contingent allegiance */
238#define FCPIO_ICMND_PRI_SHIFT 3 /* priority field starts in bit 3 */
239
240/*
241 * Command flags
242 */
243#define FCPIO_ICMND_RDDATA 0x02 /* read data */
244#define FCPIO_ICMND_WRDATA 0x01 /* write data */
245
246/*
247 * fcpio_icmnd_32: host -> firmware request
248 *
249 * used for sending out an initiator SCSI 32-byte command
250 */
251struct fcpio_icmnd_32 {
252 u32 lunmap_id; /* index into lunmap table */
253 u8 special_req_flags; /* special exchange request flags */
254 u8 _resvd0[3]; /* reserved */
255 u32 sgl_cnt; /* scatter-gather list count */
256 u32 sense_len; /* sense buffer length */
257 u64 sgl_addr; /* scatter-gather list addr */
258 u64 sense_addr; /* sense buffer address */
259 u8 crn; /* SCSI Command Reference No. */
260 u8 pri_ta; /* SCSI Priority and Task attribute */
261 u8 _resvd1; /* reserved: should be 0 */
262 u8 flags; /* command flags */
263 u8 scsi_cdb[CDB_32]; /* SCSI Cmnd Descriptor Block */
264 u32 data_len; /* length of data expected */
265 u8 lun[LUN_ADDRESS]; /* FC vNIC only: LUN address */
266 u8 _resvd2; /* reserved */
267 u8 d_id[3]; /* FC vNIC only: Target D_ID */
268 u16 mss; /* FC vNIC only: max burst */
269 u16 _resvd3; /* reserved */
270 u32 r_a_tov; /* FC vNIC only: Res. Alloc Timeout */
271 u32 e_d_tov; /* FC vNIC only: Error Detect Timeout */
272};
273
274/*
275 * fcpio_itmf: host -> firmware request
276 *
277 * used for requesting the firmware to abort a request and/or send out
278 * a task management function
279 *
280 * The t_tag field is only needed when the request type is ABT_TASK.
281 */
282struct fcpio_itmf {
283 u32 lunmap_id; /* index into lunmap table */
284 u32 tm_req; /* SCSI Task Management request */
285 u32 t_tag; /* header tag of fcpio to be aborted */
286 u32 _resvd; /* _reserved */
287 u8 lun[LUN_ADDRESS]; /* FC vNIC only: LUN address */
288 u8 _resvd1; /* reserved */
289 u8 d_id[3]; /* FC vNIC only: Target D_ID */
290 u32 r_a_tov; /* FC vNIC only: R_A_TOV in msec */
291 u32 e_d_tov; /* FC vNIC only: E_D_TOV in msec */
292};
293
294/*
295 * Task Management request
296 */
297enum fcpio_itmf_tm_req_type {
298 FCPIO_ITMF_ABT_TASK_TERM = 0x01, /* abort task and terminate */
299 FCPIO_ITMF_ABT_TASK, /* abort task and issue abts */
300 FCPIO_ITMF_ABT_TASK_SET, /* abort task set */
301 FCPIO_ITMF_CLR_TASK_SET, /* clear task set */
302 FCPIO_ITMF_LUN_RESET, /* logical unit reset task mgmt */
303 FCPIO_ITMF_CLR_ACA, /* Clear ACA condition */
304};
305
306/*
307 * fcpio_tdata: host -> firmware request
308 *
309 * used for requesting the firmware to send out a read data transfer for a
310 * target command
311 */
312struct fcpio_tdata {
313 u16 rx_id; /* FC rx_id of target command */
314 u16 flags; /* command flags */
315 u32 rel_offset; /* data sequence relative offset */
316 u32 sgl_cnt; /* scatter-gather list count */
317 u32 data_len; /* length of data expected to send */
318 u64 sgl_addr; /* scatter-gather list address */
319};
320
321/*
322 * Command flags
323 */
324#define FCPIO_TDATA_SCSI_RSP 0x01 /* send a scsi resp. after last frame */
325
326/*
327 * fcpio_txrdy: host -> firmware request
328 *
329 * used for requesting the firmware to send out a write data transfer for a
330 * target command
331 */
332struct fcpio_txrdy {
333 u16 rx_id; /* FC rx_id of target command */
334 u16 _resvd0; /* reserved */
335 u32 rel_offset; /* data sequence relative offset */
336 u32 sgl_cnt; /* scatter-gather list count */
337 u32 data_len; /* length of data expected to send */
338 u64 sgl_addr; /* scatter-gather list address */
339};
340
341/*
342 * fcpio_trsp: host -> firmware request
343 *
344 * used for requesting the firmware to send out a response for a target
345 * command
346 */
347struct fcpio_trsp {
348 u16 rx_id; /* FC rx_id of target command */
349 u16 _resvd0; /* reserved */
350 u32 sense_len; /* sense data buffer length */
351 u64 sense_addr; /* sense data buffer address */
352 u16 _resvd1; /* reserved */
353 u8 flags; /* response request flags */
354 u8 scsi_status; /* SCSI status */
355 u32 residual; /* SCSI data residual value of I/O */
356};
357
358/*
359 * resposnse request flags
360 */
361#define FCPIO_TRSP_RESID_UNDER 0x08 /* residual is valid and is underflow */
362#define FCPIO_TRSP_RESID_OVER 0x04 /* residual is valid and is overflow */
363
364/*
365 * fcpio_ttmf_ack: host -> firmware response
366 *
367 * used by the host to indicate to the firmware it has received and processed
368 * the target tmf request
369 */
370struct fcpio_ttmf_ack {
371 u16 rx_id; /* FC rx_id of target command */
372 u16 _resvd0; /* reserved */
373 u32 tmf_status; /* SCSI task management status */
374};
375
376/*
377 * fcpio_tabort: host -> firmware request
378 *
379 * used by the host to request the firmware to abort a target request that was
380 * received by the firmware
381 */
382struct fcpio_tabort {
383 u16 rx_id; /* rx_id of the target request */
384};
385
386/*
387 * fcpio_reset: host -> firmware request
388 *
389 * used by the host to signal a reset of the driver to the firmware
390 * and to request firmware to clean up all outstanding I/O
391 */
392struct fcpio_reset {
393 u32 _resvd;
394};
395
396enum fcpio_flogi_reg_format_type {
397 FCPIO_FLOGI_REG_DEF_DEST = 0, /* Use the oui | s_id mac format */
398 FCPIO_FLOGI_REG_GW_DEST, /* Use the fixed gateway mac */
399};
400
401/*
402 * fcpio_flogi_reg: host -> firmware request
403 *
404 * fc vnic only
405 * used by the host to notify the firmware of the lif's s_id
406 * and destination mac address format
407 */
408struct fcpio_flogi_reg {
409 u8 format;
410 u8 s_id[3]; /* FC vNIC only: Source S_ID */
411 u8 gateway_mac[ETH_ALEN]; /* Destination gateway mac */
412 u16 _resvd;
413 u32 r_a_tov; /* R_A_TOV in msec */
414 u32 e_d_tov; /* E_D_TOV in msec */
415};
416
417/*
418 * fcpio_echo: host -> firmware request
419 *
420 * sends a heartbeat echo request to the firmware
421 */
422struct fcpio_echo {
423 u32 _resvd;
424};
425
426/*
427 * fcpio_lunmap_req: host -> firmware request
428 *
429 * scsi vnic only
430 * sends a request to retrieve the lunmap table for scsi vnics
431 */
432struct fcpio_lunmap_req {
433 u64 addr; /* address of the buffer */
434 u32 len; /* len of the buffer */
435};
436
437/*
438 * fcpio_flogi_fip_reg: host -> firmware request
439 *
440 * fc vnic only
441 * used by the host to notify the firmware of the lif's s_id
442 * and destination mac address format
443 */
444struct fcpio_flogi_fip_reg {
445 u8 _resvd0;
446 u8 s_id[3]; /* FC vNIC only: Source S_ID */
447 u8 fcf_mac[ETH_ALEN]; /* FCF Target destination mac */
448 u16 _resvd1;
449 u32 r_a_tov; /* R_A_TOV in msec */
450 u32 e_d_tov; /* E_D_TOV in msec */
451 u8 ha_mac[ETH_ALEN]; /* Host adapter source mac */
452 u16 _resvd2;
453};
454
455/*
456 * Basic structure for all fcpio structures that are sent from the host to the
457 * firmware. They are 128 bytes per structure.
458 */
459#define FCPIO_HOST_REQ_LEN 128 /* expected length of host requests */
460
461struct fcpio_host_req {
462 struct fcpio_header hdr;
463
464 union {
465 /*
466 * Defines space needed for request
467 */
468 u8 buf[FCPIO_HOST_REQ_LEN - sizeof(struct fcpio_header)];
469
470 /*
471 * Initiator host requests
472 */
473 struct fcpio_icmnd_16 icmnd_16;
474 struct fcpio_icmnd_32 icmnd_32;
475 struct fcpio_itmf itmf;
476
477 /*
478 * Target host requests
479 */
480 struct fcpio_tdata tdata;
481 struct fcpio_txrdy txrdy;
482 struct fcpio_trsp trsp;
483 struct fcpio_ttmf_ack ttmf_ack;
484 struct fcpio_tabort tabort;
485
486 /*
487 * Misc requests
488 */
489 struct fcpio_reset reset;
490 struct fcpio_flogi_reg flogi_reg;
491 struct fcpio_echo echo;
492 struct fcpio_lunmap_req lunmap_req;
493 struct fcpio_flogi_fip_reg flogi_fip_reg;
494 } u;
495};
496
497/*
498 * fcpio_icmnd_cmpl: firmware -> host response
499 *
500 * used for sending the host a response to an initiator command
501 */
502struct fcpio_icmnd_cmpl {
503 u8 _resvd0[6]; /* reserved */
504 u8 flags; /* response flags */
505 u8 scsi_status; /* SCSI status */
506 u32 residual; /* SCSI data residual length */
507 u32 sense_len; /* SCSI sense length */
508};
509
510/*
511 * response flags
512 */
513#define FCPIO_ICMND_CMPL_RESID_UNDER 0x08 /* resid under and valid */
514#define FCPIO_ICMND_CMPL_RESID_OVER 0x04 /* resid over and valid */
515
516/*
517 * fcpio_itmf_cmpl: firmware -> host response
518 *
519 * used for sending the host a response for a itmf request
520 */
521struct fcpio_itmf_cmpl {
522 u32 _resvd; /* reserved */
523};
524
525/*
526 * fcpio_tcmnd_16: firmware -> host request
527 *
528 * used by the firmware to notify the host of an incoming target SCSI 16-Byte
529 * request
530 */
531struct fcpio_tcmnd_16 {
532 u8 lun[LUN_ADDRESS]; /* FC vNIC only: LUN address */
533 u8 crn; /* SCSI Command Reference No. */
534 u8 pri_ta; /* SCSI Priority and Task attribute */
535 u8 _resvd2; /* reserved: should be 0 */
536 u8 flags; /* command flags */
537 u8 scsi_cdb[CDB_16]; /* SCSI Cmnd Descriptor Block */
538 u32 data_len; /* length of data expected */
539 u8 _resvd1; /* reserved */
540 u8 s_id[3]; /* FC vNIC only: Source S_ID */
541};
542
543/*
544 * Priority/Task Attribute settings
545 */
546#define FCPIO_TCMND_PTA_SIMPLE 0 /* simple task attribute */
547#define FCPIO_TCMND_PTA_HEADQ 1 /* head of queue task attribute */
548#define FCPIO_TCMND_PTA_ORDERED 2 /* ordered task attribute */
549#define FCPIO_TCMND_PTA_ACA 4 /* auto contingent allegiance */
550#define FCPIO_TCMND_PRI_SHIFT 3 /* priority field starts in bit 3 */
551
552/*
553 * Command flags
554 */
555#define FCPIO_TCMND_RDDATA 0x02 /* read data */
556#define FCPIO_TCMND_WRDATA 0x01 /* write data */
557
558/*
559 * fcpio_tcmnd_32: firmware -> host request
560 *
561 * used by the firmware to notify the host of an incoming target SCSI 32-Byte
562 * request
563 */
564struct fcpio_tcmnd_32 {
565 u8 lun[LUN_ADDRESS]; /* FC vNIC only: LUN address */
566 u8 crn; /* SCSI Command Reference No. */
567 u8 pri_ta; /* SCSI Priority and Task attribute */
568 u8 _resvd2; /* reserved: should be 0 */
569 u8 flags; /* command flags */
570 u8 scsi_cdb[CDB_32]; /* SCSI Cmnd Descriptor Block */
571 u32 data_len; /* length of data expected */
572 u8 _resvd0; /* reserved */
573 u8 s_id[3]; /* FC vNIC only: Source S_ID */
574};
575
576/*
577 * fcpio_tdrsp_cmpl: firmware -> host response
578 *
579 * used by the firmware to notify the host of a response to a host target
580 * command
581 */
582struct fcpio_tdrsp_cmpl {
583 u16 rx_id; /* rx_id of the target request */
584 u16 _resvd0; /* reserved */
585};
586
587/*
588 * fcpio_ttmf: firmware -> host request
589 *
590 * used by the firmware to notify the host of an incoming task management
591 * function request
592 */
593struct fcpio_ttmf {
594 u8 _resvd0; /* reserved */
595 u8 s_id[3]; /* FC vNIC only: Source S_ID */
596 u8 lun[LUN_ADDRESS]; /* FC vNIC only: LUN address */
597 u8 crn; /* SCSI Command Reference No. */
598 u8 _resvd2[3]; /* reserved */
599 u32 tmf_type; /* task management request type */
600};
601
602/*
603 * Task Management request
604 */
605#define FCPIO_TTMF_CLR_ACA 0x40 /* Clear ACA condition */
606#define FCPIO_TTMF_LUN_RESET 0x10 /* logical unit reset task mgmt */
607#define FCPIO_TTMF_CLR_TASK_SET 0x04 /* clear task set */
608#define FCPIO_TTMF_ABT_TASK_SET 0x02 /* abort task set */
609#define FCPIO_TTMF_ABT_TASK 0x01 /* abort task */
610
611/*
612 * fcpio_tabort_cmpl: firmware -> host response
613 *
614 * used by the firmware to respond to a host's tabort request
615 */
616struct fcpio_tabort_cmpl {
617 u16 rx_id; /* rx_id of the target request */
618 u16 _resvd0; /* reserved */
619};
620
621/*
622 * fcpio_ack: firmware -> host response
623 *
624 * used by firmware to notify the host of the last work request received
625 */
626struct fcpio_ack {
627 u16 request_out; /* last host entry received */
628 u16 _resvd;
629};
630
631/*
632 * fcpio_reset_cmpl: firmware -> host response
633 *
634 * use by firmware to respond to the host's reset request
635 */
636struct fcpio_reset_cmpl {
637 u16 vnic_id;
638};
639
640/*
641 * fcpio_flogi_reg_cmpl: firmware -> host response
642 *
643 * fc vnic only
644 * response to the fcpio_flogi_reg request
645 */
646struct fcpio_flogi_reg_cmpl {
647 u32 _resvd;
648};
649
650/*
651 * fcpio_echo_cmpl: firmware -> host response
652 *
653 * response to the fcpio_echo request
654 */
655struct fcpio_echo_cmpl {
656 u32 _resvd;
657};
658
659/*
660 * fcpio_lunmap_chng: firmware -> host notification
661 *
662 * scsi vnic only
663 * notifies the host that the lunmap tables have changed
664 */
665struct fcpio_lunmap_chng {
666 u32 _resvd;
667};
668
669/*
670 * fcpio_lunmap_req_cmpl: firmware -> host response
671 *
672 * scsi vnic only
673 * response for lunmap table request from the host
674 */
675struct fcpio_lunmap_req_cmpl {
676 u32 _resvd;
677};
678
679/*
680 * Basic structure for all fcpio structures that are sent from the firmware to
681 * the host. They are 64 bytes per structure.
682 */
683#define FCPIO_FW_REQ_LEN 64 /* expected length of fw requests */
684struct fcpio_fw_req {
685 struct fcpio_header hdr;
686
687 union {
688 /*
689 * Defines space needed for request
690 */
691 u8 buf[FCPIO_FW_REQ_LEN - sizeof(struct fcpio_header)];
692
693 /*
694 * Initiator firmware responses
695 */
696 struct fcpio_icmnd_cmpl icmnd_cmpl;
697 struct fcpio_itmf_cmpl itmf_cmpl;
698
699 /*
700 * Target firmware new requests
701 */
702 struct fcpio_tcmnd_16 tcmnd_16;
703 struct fcpio_tcmnd_32 tcmnd_32;
704
705 /*
706 * Target firmware responses
707 */
708 struct fcpio_tdrsp_cmpl tdrsp_cmpl;
709 struct fcpio_ttmf ttmf;
710 struct fcpio_tabort_cmpl tabort_cmpl;
711
712 /*
713 * Firmware response to work received
714 */
715 struct fcpio_ack ack;
716
717 /*
718 * Misc requests
719 */
720 struct fcpio_reset_cmpl reset_cmpl;
721 struct fcpio_flogi_reg_cmpl flogi_reg_cmpl;
722 struct fcpio_echo_cmpl echo_cmpl;
723 struct fcpio_lunmap_chng lunmap_chng;
724 struct fcpio_lunmap_req_cmpl lunmap_req_cmpl;
725 } u;
726};
727
728/*
729 * Access routines to encode and decode the color bit, which is the most
730 * significant bit of the MSB of the structure
731 */
732static inline void fcpio_color_enc(struct fcpio_fw_req *fw_req, u8 color)
733{
734 u8 *c = ((u8 *) fw_req) + sizeof(struct fcpio_fw_req) - 1;
735
736 if (color)
737 *c |= 0x80;
738 else
739 *c &= ~0x80;
740}
741
742static inline void fcpio_color_dec(struct fcpio_fw_req *fw_req, u8 *color)
743{
744 u8 *c = ((u8 *) fw_req) + sizeof(struct fcpio_fw_req) - 1;
745
746 *color = *c >> 7;
747
748 /*
749 * Make sure color bit is read from desc *before* other fields
750 * are read from desc. Hardware guarantees color bit is last
751 * bit (byte) written. Adding the rmb() prevents the compiler
752 * and/or CPU from reordering the reads which would potentially
753 * result in reading stale values.
754 */
755
756 rmb();
757
758}
759
760/*
761 * Lunmap table entry for scsi vnics
762 */
763#define FCPIO_LUNMAP_TABLE_SIZE 256
764#define FCPIO_FLAGS_LUNMAP_VALID 0x80
765#define FCPIO_FLAGS_BOOT 0x01
766struct fcpio_lunmap_entry {
767 u8 bus;
768 u8 target;
769 u8 lun;
770 u8 path_cnt;
771 u16 flags;
772 u16 update_cnt;
773};
774
775struct fcpio_lunmap_tbl {
776 u32 update_cnt;
777 struct fcpio_lunmap_entry lunmaps[FCPIO_LUNMAP_TABLE_SIZE];
778};
779
780#endif /* _FCPIO_H_ */
diff --git a/drivers/scsi/fnic/fnic.h b/drivers/scsi/fnic/fnic.h
new file mode 100644
index 000000000000..e4c0a3d7d87b
--- /dev/null
+++ b/drivers/scsi/fnic/fnic.h
@@ -0,0 +1,265 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _FNIC_H_
19#define _FNIC_H_
20
21#include <linux/interrupt.h>
22#include <linux/netdevice.h>
23#include <linux/workqueue.h>
24#include <scsi/libfc.h>
25#include "fnic_io.h"
26#include "fnic_res.h"
27#include "vnic_dev.h"
28#include "vnic_wq.h"
29#include "vnic_rq.h"
30#include "vnic_cq.h"
31#include "vnic_wq_copy.h"
32#include "vnic_intr.h"
33#include "vnic_stats.h"
34#include "vnic_scsi.h"
35
36#define DRV_NAME "fnic"
37#define DRV_DESCRIPTION "Cisco FCoE HBA Driver"
38#define DRV_VERSION "1.0.0.1121"
39#define PFX DRV_NAME ": "
40#define DFX DRV_NAME "%d: "
41
42#define DESC_CLEAN_LOW_WATERMARK 8
43#define FNIC_MAX_IO_REQ 2048 /* scsi_cmnd tag map entries */
44#define FNIC_IO_LOCKS 64 /* IO locks: power of 2 */
45#define FNIC_DFLT_QUEUE_DEPTH 32
46#define FNIC_STATS_RATE_LIMIT 4 /* limit rate at which stats are pulled up */
47
48/*
49 * Tag bits used for special requests.
50 */
51#define BIT(nr) (1UL << (nr))
52#define FNIC_TAG_ABORT BIT(30) /* tag bit indicating abort */
53#define FNIC_TAG_DEV_RST BIT(29) /* indicates device reset */
54#define FNIC_TAG_MASK (BIT(24) - 1) /* mask for lookup */
55#define FNIC_NO_TAG -1
56
57/*
58 * Usage of the scsi_cmnd scratchpad.
59 * These fields are locked by the hashed io_req_lock.
60 */
61#define CMD_SP(Cmnd) ((Cmnd)->SCp.ptr)
62#define CMD_STATE(Cmnd) ((Cmnd)->SCp.phase)
63#define CMD_ABTS_STATUS(Cmnd) ((Cmnd)->SCp.Message)
64#define CMD_LR_STATUS(Cmnd) ((Cmnd)->SCp.have_data_in)
65#define CMD_TAG(Cmnd) ((Cmnd)->SCp.sent_command)
66
67#define FCPIO_INVALID_CODE 0x100 /* hdr_status value unused by firmware */
68
69#define FNIC_LUN_RESET_TIMEOUT 10000 /* mSec */
70#define FNIC_HOST_RESET_TIMEOUT 10000 /* mSec */
71#define FNIC_RMDEVICE_TIMEOUT 1000 /* mSec */
72#define FNIC_HOST_RESET_SETTLE_TIME 30 /* Sec */
73
74#define FNIC_MAX_FCP_TARGET 256
75
76extern unsigned int fnic_log_level;
77
78#define FNIC_MAIN_LOGGING 0x01
79#define FNIC_FCS_LOGGING 0x02
80#define FNIC_SCSI_LOGGING 0x04
81#define FNIC_ISR_LOGGING 0x08
82
83#define FNIC_CHECK_LOGGING(LEVEL, CMD) \
84do { \
85 if (unlikely(fnic_log_level & LEVEL)) \
86 do { \
87 CMD; \
88 } while (0); \
89} while (0)
90
91#define FNIC_MAIN_DBG(kern_level, host, fmt, args...) \
92 FNIC_CHECK_LOGGING(FNIC_MAIN_LOGGING, \
93 shost_printk(kern_level, host, fmt, ##args);)
94
95#define FNIC_FCS_DBG(kern_level, host, fmt, args...) \
96 FNIC_CHECK_LOGGING(FNIC_FCS_LOGGING, \
97 shost_printk(kern_level, host, fmt, ##args);)
98
99#define FNIC_SCSI_DBG(kern_level, host, fmt, args...) \
100 FNIC_CHECK_LOGGING(FNIC_SCSI_LOGGING, \
101 shost_printk(kern_level, host, fmt, ##args);)
102
103#define FNIC_ISR_DBG(kern_level, host, fmt, args...) \
104 FNIC_CHECK_LOGGING(FNIC_ISR_LOGGING, \
105 shost_printk(kern_level, host, fmt, ##args);)
106
107extern const char *fnic_state_str[];
108
109enum fnic_intx_intr_index {
110 FNIC_INTX_WQ_RQ_COPYWQ,
111 FNIC_INTX_ERR,
112 FNIC_INTX_NOTIFY,
113 FNIC_INTX_INTR_MAX,
114};
115
116enum fnic_msix_intr_index {
117 FNIC_MSIX_RQ,
118 FNIC_MSIX_WQ,
119 FNIC_MSIX_WQ_COPY,
120 FNIC_MSIX_ERR_NOTIFY,
121 FNIC_MSIX_INTR_MAX,
122};
123
124struct fnic_msix_entry {
125 int requested;
126 char devname[IFNAMSIZ];
127 irqreturn_t (*isr)(int, void *);
128 void *devid;
129};
130
131enum fnic_state {
132 FNIC_IN_FC_MODE = 0,
133 FNIC_IN_FC_TRANS_ETH_MODE,
134 FNIC_IN_ETH_MODE,
135 FNIC_IN_ETH_TRANS_FC_MODE,
136};
137
138#define FNIC_WQ_COPY_MAX 1
139#define FNIC_WQ_MAX 1
140#define FNIC_RQ_MAX 1
141#define FNIC_CQ_MAX (FNIC_WQ_COPY_MAX + FNIC_WQ_MAX + FNIC_RQ_MAX)
142
143struct mempool;
144
145/* Per-instance private data structure */
146struct fnic {
147 struct fc_lport *lport;
148 struct vnic_dev_bar bar0;
149
150 struct msix_entry msix_entry[FNIC_MSIX_INTR_MAX];
151 struct fnic_msix_entry msix[FNIC_MSIX_INTR_MAX];
152
153 struct vnic_stats *stats;
154 unsigned long stats_time; /* time of stats update */
155 struct vnic_nic_cfg *nic_cfg;
156 char name[IFNAMSIZ];
157 struct timer_list notify_timer; /* used for MSI interrupts */
158
159 unsigned int err_intr_offset;
160 unsigned int link_intr_offset;
161
162 unsigned int wq_count;
163 unsigned int cq_count;
164
165 u32 fcoui_mode:1; /* use fcoui address*/
166 u32 vlan_hw_insert:1; /* let hw insert the tag */
167 u32 in_remove:1; /* fnic device in removal */
168 u32 stop_rx_link_events:1; /* stop proc. rx frames, link events */
169
170 struct completion *remove_wait; /* device remove thread blocks */
171
172 struct fc_frame *flogi;
173 struct fc_frame *flogi_resp;
174 u16 flogi_oxid;
175 unsigned long s_id;
176 enum fnic_state state;
177 spinlock_t fnic_lock;
178
179 u16 vlan_id; /* VLAN tag including priority */
180 u8 mac_addr[ETH_ALEN];
181 u8 dest_addr[ETH_ALEN];
182 u8 data_src_addr[ETH_ALEN];
183 u64 fcp_input_bytes; /* internal statistic */
184 u64 fcp_output_bytes; /* internal statistic */
185 u32 link_down_cnt;
186 int link_status;
187
188 struct list_head list;
189 struct pci_dev *pdev;
190 struct vnic_fc_config config;
191 struct vnic_dev *vdev;
192 unsigned int raw_wq_count;
193 unsigned int wq_copy_count;
194 unsigned int rq_count;
195 int fw_ack_index[FNIC_WQ_COPY_MAX];
196 unsigned short fw_ack_recd[FNIC_WQ_COPY_MAX];
197 unsigned short wq_copy_desc_low[FNIC_WQ_COPY_MAX];
198 unsigned int intr_count;
199 u32 __iomem *legacy_pba;
200 struct fnic_host_tag *tags;
201 mempool_t *io_req_pool;
202 mempool_t *io_sgl_pool[FNIC_SGL_NUM_CACHES];
203 spinlock_t io_req_lock[FNIC_IO_LOCKS]; /* locks for scsi cmnds */
204
205 struct work_struct link_work;
206 struct work_struct frame_work;
207 struct sk_buff_head frame_queue;
208
209 /* copy work queue cache line section */
210 ____cacheline_aligned struct vnic_wq_copy wq_copy[FNIC_WQ_COPY_MAX];
211 /* completion queue cache line section */
212 ____cacheline_aligned struct vnic_cq cq[FNIC_CQ_MAX];
213
214 spinlock_t wq_copy_lock[FNIC_WQ_COPY_MAX];
215
216 /* work queue cache line section */
217 ____cacheline_aligned struct vnic_wq wq[FNIC_WQ_MAX];
218 spinlock_t wq_lock[FNIC_WQ_MAX];
219
220 /* receive queue cache line section */
221 ____cacheline_aligned struct vnic_rq rq[FNIC_RQ_MAX];
222
223 /* interrupt resource cache line section */
224 ____cacheline_aligned struct vnic_intr intr[FNIC_MSIX_INTR_MAX];
225};
226
227extern struct workqueue_struct *fnic_event_queue;
228extern struct device_attribute *fnic_attrs[];
229
230void fnic_clear_intr_mode(struct fnic *fnic);
231int fnic_set_intr_mode(struct fnic *fnic);
232void fnic_free_intr(struct fnic *fnic);
233int fnic_request_intr(struct fnic *fnic);
234
235int fnic_send(struct fc_lport *, struct fc_frame *);
236void fnic_free_wq_buf(struct vnic_wq *wq, struct vnic_wq_buf *buf);
237void fnic_handle_frame(struct work_struct *work);
238void fnic_handle_link(struct work_struct *work);
239int fnic_rq_cmpl_handler(struct fnic *fnic, int);
240int fnic_alloc_rq_frame(struct vnic_rq *rq);
241void fnic_free_rq_buf(struct vnic_rq *rq, struct vnic_rq_buf *buf);
242int fnic_send_frame(struct fnic *fnic, struct fc_frame *fp);
243
244int fnic_queuecommand(struct scsi_cmnd *, void (*done)(struct scsi_cmnd *));
245int fnic_abort_cmd(struct scsi_cmnd *);
246int fnic_device_reset(struct scsi_cmnd *);
247int fnic_host_reset(struct scsi_cmnd *);
248int fnic_reset(struct Scsi_Host *);
249void fnic_scsi_cleanup(struct fc_lport *);
250void fnic_scsi_abort_io(struct fc_lport *);
251void fnic_empty_scsi_cleanup(struct fc_lport *);
252void fnic_exch_mgr_reset(struct fc_lport *, u32, u32);
253int fnic_wq_copy_cmpl_handler(struct fnic *fnic, int);
254int fnic_wq_cmpl_handler(struct fnic *fnic, int);
255int fnic_flogi_reg_handler(struct fnic *fnic);
256void fnic_wq_copy_cleanup_handler(struct vnic_wq_copy *wq,
257 struct fcpio_host_req *desc);
258int fnic_fw_reset_handler(struct fnic *fnic);
259void fnic_terminate_rport_io(struct fc_rport *);
260const char *fnic_state_to_str(unsigned int state);
261
262void fnic_log_q_error(struct fnic *fnic);
263void fnic_handle_link_event(struct fnic *fnic);
264
265#endif /* _FNIC_H_ */
diff --git a/drivers/scsi/fnic/fnic_attrs.c b/drivers/scsi/fnic/fnic_attrs.c
new file mode 100644
index 000000000000..aea0c3becfd4
--- /dev/null
+++ b/drivers/scsi/fnic/fnic_attrs.c
@@ -0,0 +1,56 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#include <linux/string.h>
19#include <linux/device.h>
20#include <scsi/scsi_host.h>
21#include "fnic.h"
22
23static ssize_t fnic_show_state(struct device *dev,
24 struct device_attribute *attr, char *buf)
25{
26 struct fc_lport *lp = shost_priv(class_to_shost(dev));
27 struct fnic *fnic = lport_priv(lp);
28
29 return snprintf(buf, PAGE_SIZE, "%s\n", fnic_state_str[fnic->state]);
30}
31
32static ssize_t fnic_show_drv_version(struct device *dev,
33 struct device_attribute *attr, char *buf)
34{
35 return snprintf(buf, PAGE_SIZE, "%s\n", DRV_VERSION);
36}
37
38static ssize_t fnic_show_link_state(struct device *dev,
39 struct device_attribute *attr, char *buf)
40{
41 struct fc_lport *lp = shost_priv(class_to_shost(dev));
42
43 return snprintf(buf, PAGE_SIZE, "%s\n", (lp->link_up)
44 ? "Link Up" : "Link Down");
45}
46
47static DEVICE_ATTR(fnic_state, S_IRUGO, fnic_show_state, NULL);
48static DEVICE_ATTR(drv_version, S_IRUGO, fnic_show_drv_version, NULL);
49static DEVICE_ATTR(link_state, S_IRUGO, fnic_show_link_state, NULL);
50
51struct device_attribute *fnic_attrs[] = {
52 &dev_attr_fnic_state,
53 &dev_attr_drv_version,
54 &dev_attr_link_state,
55 NULL,
56};
diff --git a/drivers/scsi/fnic/fnic_fcs.c b/drivers/scsi/fnic/fnic_fcs.c
new file mode 100644
index 000000000000..07e6eedb83ce
--- /dev/null
+++ b/drivers/scsi/fnic/fnic_fcs.c
@@ -0,0 +1,742 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#include <linux/errno.h>
19#include <linux/pci.h>
20#include <linux/skbuff.h>
21#include <linux/interrupt.h>
22#include <linux/spinlock.h>
23#include <linux/if_ether.h>
24#include <linux/if_vlan.h>
25#include <linux/workqueue.h>
26#include <scsi/fc/fc_els.h>
27#include <scsi/fc/fc_fcoe.h>
28#include <scsi/fc_frame.h>
29#include <scsi/libfc.h>
30#include "fnic_io.h"
31#include "fnic.h"
32#include "cq_enet_desc.h"
33#include "cq_exch_desc.h"
34
35struct workqueue_struct *fnic_event_queue;
36
37void fnic_handle_link(struct work_struct *work)
38{
39 struct fnic *fnic = container_of(work, struct fnic, link_work);
40 unsigned long flags;
41 int old_link_status;
42 u32 old_link_down_cnt;
43
44 spin_lock_irqsave(&fnic->fnic_lock, flags);
45
46 if (fnic->stop_rx_link_events) {
47 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
48 return;
49 }
50
51 old_link_down_cnt = fnic->link_down_cnt;
52 old_link_status = fnic->link_status;
53 fnic->link_status = vnic_dev_link_status(fnic->vdev);
54 fnic->link_down_cnt = vnic_dev_link_down_cnt(fnic->vdev);
55
56 if (old_link_status == fnic->link_status) {
57 if (!fnic->link_status)
58 /* DOWN -> DOWN */
59 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
60 else {
61 if (old_link_down_cnt != fnic->link_down_cnt) {
62 /* UP -> DOWN -> UP */
63 fnic->lport->host_stats.link_failure_count++;
64 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
65 FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
66 "link down\n");
67 fc_linkdown(fnic->lport);
68 FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
69 "link up\n");
70 fc_linkup(fnic->lport);
71 } else
72 /* UP -> UP */
73 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
74 }
75 } else if (fnic->link_status) {
76 /* DOWN -> UP */
77 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
78 FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, "link up\n");
79 fc_linkup(fnic->lport);
80 } else {
81 /* UP -> DOWN */
82 fnic->lport->host_stats.link_failure_count++;
83 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
84 FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, "link down\n");
85 fc_linkdown(fnic->lport);
86 }
87
88}
89
90/*
91 * This function passes incoming fabric frames to libFC
92 */
93void fnic_handle_frame(struct work_struct *work)
94{
95 struct fnic *fnic = container_of(work, struct fnic, frame_work);
96 struct fc_lport *lp = fnic->lport;
97 unsigned long flags;
98 struct sk_buff *skb;
99 struct fc_frame *fp;
100
101 while ((skb = skb_dequeue(&fnic->frame_queue))) {
102
103 spin_lock_irqsave(&fnic->fnic_lock, flags);
104 if (fnic->stop_rx_link_events) {
105 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
106 dev_kfree_skb(skb);
107 return;
108 }
109 fp = (struct fc_frame *)skb;
110 /* if Flogi resp frame, register the address */
111 if (fr_flags(fp)) {
112 vnic_dev_add_addr(fnic->vdev,
113 fnic->data_src_addr);
114 fr_flags(fp) = 0;
115 }
116 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
117
118 fc_exch_recv(lp, lp->emp, fp);
119 }
120
121}
122
123static inline void fnic_import_rq_fc_frame(struct sk_buff *skb,
124 u32 len, u8 sof, u8 eof)
125{
126 struct fc_frame *fp = (struct fc_frame *)skb;
127
128 skb_trim(skb, len);
129 fr_eof(fp) = eof;
130 fr_sof(fp) = sof;
131}
132
133
134static inline int fnic_import_rq_eth_pkt(struct sk_buff *skb, u32 len)
135{
136 struct fc_frame *fp;
137 struct ethhdr *eh;
138 struct vlan_ethhdr *vh;
139 struct fcoe_hdr *fcoe_hdr;
140 struct fcoe_crc_eof *ft;
141 u32 transport_len = 0;
142
143 eh = (struct ethhdr *)skb->data;
144 vh = (struct vlan_ethhdr *)skb->data;
145 if (vh->h_vlan_proto == htons(ETH_P_8021Q) &&
146 vh->h_vlan_encapsulated_proto == htons(ETH_P_FCOE)) {
147 skb_pull(skb, sizeof(struct vlan_ethhdr));
148 transport_len += sizeof(struct vlan_ethhdr);
149 } else if (eh->h_proto == htons(ETH_P_FCOE)) {
150 transport_len += sizeof(struct ethhdr);
151 skb_pull(skb, sizeof(struct ethhdr));
152 } else
153 return -1;
154
155 fcoe_hdr = (struct fcoe_hdr *)skb->data;
156 if (FC_FCOE_DECAPS_VER(fcoe_hdr) != FC_FCOE_VER)
157 return -1;
158
159 fp = (struct fc_frame *)skb;
160 fc_frame_init(fp);
161 fr_sof(fp) = fcoe_hdr->fcoe_sof;
162 skb_pull(skb, sizeof(struct fcoe_hdr));
163 transport_len += sizeof(struct fcoe_hdr);
164
165 ft = (struct fcoe_crc_eof *)(skb->data + len -
166 transport_len - sizeof(*ft));
167 fr_eof(fp) = ft->fcoe_eof;
168 skb_trim(skb, len - transport_len - sizeof(*ft));
169 return 0;
170}
171
172static inline int fnic_handle_flogi_resp(struct fnic *fnic,
173 struct fc_frame *fp)
174{
175 u8 mac[ETH_ALEN] = FC_FCOE_FLOGI_MAC;
176 struct ethhdr *eth_hdr;
177 struct fc_frame_header *fh;
178 int ret = 0;
179 unsigned long flags;
180 struct fc_frame *old_flogi_resp = NULL;
181
182 fh = (struct fc_frame_header *)fr_hdr(fp);
183
184 spin_lock_irqsave(&fnic->fnic_lock, flags);
185
186 if (fnic->state == FNIC_IN_ETH_MODE) {
187
188 /*
189 * Check if oxid matches on taking the lock. A new Flogi
190 * issued by libFC might have changed the fnic cached oxid
191 */
192 if (fnic->flogi_oxid != ntohs(fh->fh_ox_id)) {
193 FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
194 "Flogi response oxid not"
195 " matching cached oxid, dropping frame"
196 "\n");
197 ret = -1;
198 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
199 dev_kfree_skb_irq(fp_skb(fp));
200 goto handle_flogi_resp_end;
201 }
202
203 /* Drop older cached flogi response frame, cache this frame */
204 old_flogi_resp = fnic->flogi_resp;
205 fnic->flogi_resp = fp;
206 fnic->flogi_oxid = FC_XID_UNKNOWN;
207
208 /*
209 * this frame is part of flogi get the src mac addr from this
210 * frame if the src mac is fcoui based then we mark the
211 * address mode flag to use fcoui base for dst mac addr
212 * otherwise we have to store the fcoe gateway addr
213 */
214 eth_hdr = (struct ethhdr *)skb_mac_header(fp_skb(fp));
215 memcpy(mac, eth_hdr->h_source, ETH_ALEN);
216
217 if (ntoh24(mac) == FC_FCOE_OUI)
218 fnic->fcoui_mode = 1;
219 else {
220 fnic->fcoui_mode = 0;
221 memcpy(fnic->dest_addr, mac, ETH_ALEN);
222 }
223
224 /*
225 * Except for Flogi frame, all outbound frames from us have the
226 * Eth Src address as FC_FCOE_OUI"our_sid". Flogi frame uses
227 * the vnic MAC address as the Eth Src address
228 */
229 fc_fcoe_set_mac(fnic->data_src_addr, fh->fh_d_id);
230
231 /* We get our s_id from the d_id of the flogi resp frame */
232 fnic->s_id = ntoh24(fh->fh_d_id);
233
234 /* Change state to reflect transition from Eth to FC mode */
235 fnic->state = FNIC_IN_ETH_TRANS_FC_MODE;
236
237 } else {
238 FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
239 "Unexpected fnic state %s while"
240 " processing flogi resp\n",
241 fnic_state_to_str(fnic->state));
242 ret = -1;
243 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
244 dev_kfree_skb_irq(fp_skb(fp));
245 goto handle_flogi_resp_end;
246 }
247
248 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
249
250 /* Drop older cached frame */
251 if (old_flogi_resp)
252 dev_kfree_skb_irq(fp_skb(old_flogi_resp));
253
254 /*
255 * send flogi reg request to firmware, this will put the fnic in
256 * in FC mode
257 */
258 ret = fnic_flogi_reg_handler(fnic);
259
260 if (ret < 0) {
261 int free_fp = 1;
262 spin_lock_irqsave(&fnic->fnic_lock, flags);
263 /*
264 * free the frame is some other thread is not
265 * pointing to it
266 */
267 if (fnic->flogi_resp != fp)
268 free_fp = 0;
269 else
270 fnic->flogi_resp = NULL;
271
272 if (fnic->state == FNIC_IN_ETH_TRANS_FC_MODE)
273 fnic->state = FNIC_IN_ETH_MODE;
274 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
275 if (free_fp)
276 dev_kfree_skb_irq(fp_skb(fp));
277 }
278
279 handle_flogi_resp_end:
280 return ret;
281}
282
283/* Returns 1 for a response that matches cached flogi oxid */
284static inline int is_matching_flogi_resp_frame(struct fnic *fnic,
285 struct fc_frame *fp)
286{
287 struct fc_frame_header *fh;
288 int ret = 0;
289 u32 f_ctl;
290
291 fh = fc_frame_header_get(fp);
292 f_ctl = ntoh24(fh->fh_f_ctl);
293
294 if (fnic->flogi_oxid == ntohs(fh->fh_ox_id) &&
295 fh->fh_r_ctl == FC_RCTL_ELS_REP &&
296 (f_ctl & (FC_FC_EX_CTX | FC_FC_SEQ_CTX)) == FC_FC_EX_CTX &&
297 fh->fh_type == FC_TYPE_ELS)
298 ret = 1;
299
300 return ret;
301}
302
303static void fnic_rq_cmpl_frame_recv(struct vnic_rq *rq, struct cq_desc
304 *cq_desc, struct vnic_rq_buf *buf,
305 int skipped __attribute__((unused)),
306 void *opaque)
307{
308 struct fnic *fnic = vnic_dev_priv(rq->vdev);
309 struct sk_buff *skb;
310 struct fc_frame *fp;
311 unsigned int eth_hdrs_stripped;
312 u8 type, color, eop, sop, ingress_port, vlan_stripped;
313 u8 fcoe = 0, fcoe_sof, fcoe_eof;
314 u8 fcoe_fc_crc_ok = 1, fcoe_enc_error = 0;
315 u8 tcp_udp_csum_ok, udp, tcp, ipv4_csum_ok;
316 u8 ipv6, ipv4, ipv4_fragment, rss_type, csum_not_calc;
317 u8 fcs_ok = 1, packet_error = 0;
318 u16 q_number, completed_index, bytes_written = 0, vlan, checksum;
319 u32 rss_hash;
320 u16 exchange_id, tmpl;
321 u8 sof = 0;
322 u8 eof = 0;
323 u32 fcp_bytes_written = 0;
324 unsigned long flags;
325
326 pci_unmap_single(fnic->pdev, buf->dma_addr, buf->len,
327 PCI_DMA_FROMDEVICE);
328 skb = buf->os_buf;
329 buf->os_buf = NULL;
330
331 cq_desc_dec(cq_desc, &type, &color, &q_number, &completed_index);
332 if (type == CQ_DESC_TYPE_RQ_FCP) {
333 cq_fcp_rq_desc_dec((struct cq_fcp_rq_desc *)cq_desc,
334 &type, &color, &q_number, &completed_index,
335 &eop, &sop, &fcoe_fc_crc_ok, &exchange_id,
336 &tmpl, &fcp_bytes_written, &sof, &eof,
337 &ingress_port, &packet_error,
338 &fcoe_enc_error, &fcs_ok, &vlan_stripped,
339 &vlan);
340 eth_hdrs_stripped = 1;
341
342 } else if (type == CQ_DESC_TYPE_RQ_ENET) {
343 cq_enet_rq_desc_dec((struct cq_enet_rq_desc *)cq_desc,
344 &type, &color, &q_number, &completed_index,
345 &ingress_port, &fcoe, &eop, &sop,
346 &rss_type, &csum_not_calc, &rss_hash,
347 &bytes_written, &packet_error,
348 &vlan_stripped, &vlan, &checksum,
349 &fcoe_sof, &fcoe_fc_crc_ok,
350 &fcoe_enc_error, &fcoe_eof,
351 &tcp_udp_csum_ok, &udp, &tcp,
352 &ipv4_csum_ok, &ipv6, &ipv4,
353 &ipv4_fragment, &fcs_ok);
354 eth_hdrs_stripped = 0;
355
356 } else {
357 /* wrong CQ type*/
358 shost_printk(KERN_ERR, fnic->lport->host,
359 "fnic rq_cmpl wrong cq type x%x\n", type);
360 goto drop;
361 }
362
363 if (!fcs_ok || packet_error || !fcoe_fc_crc_ok || fcoe_enc_error) {
364 FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
365 "fnic rq_cmpl fcoe x%x fcsok x%x"
366 " pkterr x%x fcoe_fc_crc_ok x%x, fcoe_enc_err"
367 " x%x\n",
368 fcoe, fcs_ok, packet_error,
369 fcoe_fc_crc_ok, fcoe_enc_error);
370 goto drop;
371 }
372
373 if (eth_hdrs_stripped)
374 fnic_import_rq_fc_frame(skb, fcp_bytes_written, sof, eof);
375 else if (fnic_import_rq_eth_pkt(skb, bytes_written))
376 goto drop;
377
378 fp = (struct fc_frame *)skb;
379
380 /*
381 * If frame is an ELS response that matches the cached FLOGI OX_ID,
382 * and is accept, issue flogi_reg_request copy wq request to firmware
383 * to register the S_ID and determine whether FC_OUI mode or GW mode.
384 */
385 if (is_matching_flogi_resp_frame(fnic, fp)) {
386 if (!eth_hdrs_stripped) {
387 if (fc_frame_payload_op(fp) == ELS_LS_ACC) {
388 fnic_handle_flogi_resp(fnic, fp);
389 return;
390 }
391 /*
392 * Recd. Flogi reject. No point registering
393 * with fw, but forward to libFC
394 */
395 goto forward;
396 }
397 goto drop;
398 }
399 if (!eth_hdrs_stripped)
400 goto drop;
401
402forward:
403 spin_lock_irqsave(&fnic->fnic_lock, flags);
404 if (fnic->stop_rx_link_events) {
405 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
406 goto drop;
407 }
408 /* Use fr_flags to indicate whether succ. flogi resp or not */
409 fr_flags(fp) = 0;
410 fr_dev(fp) = fnic->lport;
411 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
412
413 skb_queue_tail(&fnic->frame_queue, skb);
414 queue_work(fnic_event_queue, &fnic->frame_work);
415
416 return;
417drop:
418 dev_kfree_skb_irq(skb);
419}
420
421static int fnic_rq_cmpl_handler_cont(struct vnic_dev *vdev,
422 struct cq_desc *cq_desc, u8 type,
423 u16 q_number, u16 completed_index,
424 void *opaque)
425{
426 struct fnic *fnic = vnic_dev_priv(vdev);
427
428 vnic_rq_service(&fnic->rq[q_number], cq_desc, completed_index,
429 VNIC_RQ_RETURN_DESC, fnic_rq_cmpl_frame_recv,
430 NULL);
431 return 0;
432}
433
434int fnic_rq_cmpl_handler(struct fnic *fnic, int rq_work_to_do)
435{
436 unsigned int tot_rq_work_done = 0, cur_work_done;
437 unsigned int i;
438 int err;
439
440 for (i = 0; i < fnic->rq_count; i++) {
441 cur_work_done = vnic_cq_service(&fnic->cq[i], rq_work_to_do,
442 fnic_rq_cmpl_handler_cont,
443 NULL);
444 if (cur_work_done) {
445 err = vnic_rq_fill(&fnic->rq[i], fnic_alloc_rq_frame);
446 if (err)
447 shost_printk(KERN_ERR, fnic->lport->host,
448 "fnic_alloc_rq_frame cant alloc"
449 " frame\n");
450 }
451 tot_rq_work_done += cur_work_done;
452 }
453
454 return tot_rq_work_done;
455}
456
457/*
458 * This function is called once at init time to allocate and fill RQ
459 * buffers. Subsequently, it is called in the interrupt context after RQ
460 * buffer processing to replenish the buffers in the RQ
461 */
462int fnic_alloc_rq_frame(struct vnic_rq *rq)
463{
464 struct fnic *fnic = vnic_dev_priv(rq->vdev);
465 struct sk_buff *skb;
466 u16 len;
467 dma_addr_t pa;
468
469 len = FC_FRAME_HEADROOM + FC_MAX_FRAME + FC_FRAME_TAILROOM;
470 skb = dev_alloc_skb(len);
471 if (!skb) {
472 FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
473 "Unable to allocate RQ sk_buff\n");
474 return -ENOMEM;
475 }
476 skb_reset_mac_header(skb);
477 skb_reset_transport_header(skb);
478 skb_reset_network_header(skb);
479 skb_put(skb, len);
480 pa = pci_map_single(fnic->pdev, skb->data, len, PCI_DMA_FROMDEVICE);
481 fnic_queue_rq_desc(rq, skb, pa, len);
482 return 0;
483}
484
485void fnic_free_rq_buf(struct vnic_rq *rq, struct vnic_rq_buf *buf)
486{
487 struct fc_frame *fp = buf->os_buf;
488 struct fnic *fnic = vnic_dev_priv(rq->vdev);
489
490 pci_unmap_single(fnic->pdev, buf->dma_addr, buf->len,
491 PCI_DMA_FROMDEVICE);
492
493 dev_kfree_skb(fp_skb(fp));
494 buf->os_buf = NULL;
495}
496
497static inline int is_flogi_frame(struct fc_frame_header *fh)
498{
499 return fh->fh_r_ctl == FC_RCTL_ELS_REQ && *(u8 *)(fh + 1) == ELS_FLOGI;
500}
501
502int fnic_send_frame(struct fnic *fnic, struct fc_frame *fp)
503{
504 struct vnic_wq *wq = &fnic->wq[0];
505 struct sk_buff *skb;
506 dma_addr_t pa;
507 struct ethhdr *eth_hdr;
508 struct vlan_ethhdr *vlan_hdr;
509 struct fcoe_hdr *fcoe_hdr;
510 struct fc_frame_header *fh;
511 u32 tot_len, eth_hdr_len;
512 int ret = 0;
513 unsigned long flags;
514
515 fh = fc_frame_header_get(fp);
516 skb = fp_skb(fp);
517
518 if (!fnic->vlan_hw_insert) {
519 eth_hdr_len = sizeof(*vlan_hdr) + sizeof(*fcoe_hdr);
520 vlan_hdr = (struct vlan_ethhdr *)skb_push(skb, eth_hdr_len);
521 eth_hdr = (struct ethhdr *)vlan_hdr;
522 vlan_hdr->h_vlan_proto = htons(ETH_P_8021Q);
523 vlan_hdr->h_vlan_encapsulated_proto = htons(ETH_P_FCOE);
524 vlan_hdr->h_vlan_TCI = htons(fnic->vlan_id);
525 fcoe_hdr = (struct fcoe_hdr *)(vlan_hdr + 1);
526 } else {
527 eth_hdr_len = sizeof(*eth_hdr) + sizeof(*fcoe_hdr);
528 eth_hdr = (struct ethhdr *)skb_push(skb, eth_hdr_len);
529 eth_hdr->h_proto = htons(ETH_P_FCOE);
530 fcoe_hdr = (struct fcoe_hdr *)(eth_hdr + 1);
531 }
532
533 if (is_flogi_frame(fh)) {
534 fc_fcoe_set_mac(eth_hdr->h_dest, fh->fh_d_id);
535 memcpy(eth_hdr->h_source, fnic->mac_addr, ETH_ALEN);
536 } else {
537 if (fnic->fcoui_mode)
538 fc_fcoe_set_mac(eth_hdr->h_dest, fh->fh_d_id);
539 else
540 memcpy(eth_hdr->h_dest, fnic->dest_addr, ETH_ALEN);
541 memcpy(eth_hdr->h_source, fnic->data_src_addr, ETH_ALEN);
542 }
543
544 tot_len = skb->len;
545 BUG_ON(tot_len % 4);
546
547 memset(fcoe_hdr, 0, sizeof(*fcoe_hdr));
548 fcoe_hdr->fcoe_sof = fr_sof(fp);
549 if (FC_FCOE_VER)
550 FC_FCOE_ENCAPS_VER(fcoe_hdr, FC_FCOE_VER);
551
552 pa = pci_map_single(fnic->pdev, eth_hdr, tot_len, PCI_DMA_TODEVICE);
553
554 spin_lock_irqsave(&fnic->wq_lock[0], flags);
555
556 if (!vnic_wq_desc_avail(wq)) {
557 pci_unmap_single(fnic->pdev, pa,
558 tot_len, PCI_DMA_TODEVICE);
559 ret = -1;
560 goto fnic_send_frame_end;
561 }
562
563 fnic_queue_wq_desc(wq, skb, pa, tot_len, fr_eof(fp),
564 fnic->vlan_hw_insert, fnic->vlan_id, 1, 1, 1);
565fnic_send_frame_end:
566 spin_unlock_irqrestore(&fnic->wq_lock[0], flags);
567
568 if (ret)
569 dev_kfree_skb_any(fp_skb(fp));
570
571 return ret;
572}
573
574/*
575 * fnic_send
576 * Routine to send a raw frame
577 */
578int fnic_send(struct fc_lport *lp, struct fc_frame *fp)
579{
580 struct fnic *fnic = lport_priv(lp);
581 struct fc_frame_header *fh;
582 int ret = 0;
583 enum fnic_state old_state;
584 unsigned long flags;
585 struct fc_frame *old_flogi = NULL;
586 struct fc_frame *old_flogi_resp = NULL;
587
588 if (fnic->in_remove) {
589 dev_kfree_skb(fp_skb(fp));
590 ret = -1;
591 goto fnic_send_end;
592 }
593
594 fh = fc_frame_header_get(fp);
595 /* if not an Flogi frame, send it out, this is the common case */
596 if (!is_flogi_frame(fh))
597 return fnic_send_frame(fnic, fp);
598
599 /* Flogi frame, now enter the state machine */
600
601 spin_lock_irqsave(&fnic->fnic_lock, flags);
602again:
603 /* Get any old cached frames, free them after dropping lock */
604 old_flogi = fnic->flogi;
605 fnic->flogi = NULL;
606 old_flogi_resp = fnic->flogi_resp;
607 fnic->flogi_resp = NULL;
608
609 fnic->flogi_oxid = FC_XID_UNKNOWN;
610
611 old_state = fnic->state;
612 switch (old_state) {
613 case FNIC_IN_FC_MODE:
614 case FNIC_IN_ETH_TRANS_FC_MODE:
615 default:
616 fnic->state = FNIC_IN_FC_TRANS_ETH_MODE;
617 vnic_dev_del_addr(fnic->vdev, fnic->data_src_addr);
618 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
619
620 if (old_flogi) {
621 dev_kfree_skb(fp_skb(old_flogi));
622 old_flogi = NULL;
623 }
624 if (old_flogi_resp) {
625 dev_kfree_skb(fp_skb(old_flogi_resp));
626 old_flogi_resp = NULL;
627 }
628
629 ret = fnic_fw_reset_handler(fnic);
630
631 spin_lock_irqsave(&fnic->fnic_lock, flags);
632 if (fnic->state != FNIC_IN_FC_TRANS_ETH_MODE)
633 goto again;
634 if (ret) {
635 fnic->state = old_state;
636 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
637 dev_kfree_skb(fp_skb(fp));
638 goto fnic_send_end;
639 }
640 old_flogi = fnic->flogi;
641 fnic->flogi = fp;
642 fnic->flogi_oxid = ntohs(fh->fh_ox_id);
643 old_flogi_resp = fnic->flogi_resp;
644 fnic->flogi_resp = NULL;
645 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
646 break;
647
648 case FNIC_IN_FC_TRANS_ETH_MODE:
649 /*
650 * A reset is pending with the firmware. Store the flogi
651 * and its oxid. The transition out of this state happens
652 * only when Firmware completes the reset, either with
653 * success or failed. If success, transition to
654 * FNIC_IN_ETH_MODE, if fail, then transition to
655 * FNIC_IN_FC_MODE
656 */
657 fnic->flogi = fp;
658 fnic->flogi_oxid = ntohs(fh->fh_ox_id);
659 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
660 break;
661
662 case FNIC_IN_ETH_MODE:
663 /*
664 * The fw/hw is already in eth mode. Store the oxid,
665 * and send the flogi frame out. The transition out of this
666 * state happens only we receive flogi response from the
667 * network, and the oxid matches the cached oxid when the
668 * flogi frame was sent out. If they match, then we issue
669 * a flogi_reg request and transition to state
670 * FNIC_IN_ETH_TRANS_FC_MODE
671 */
672 fnic->flogi_oxid = ntohs(fh->fh_ox_id);
673 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
674 ret = fnic_send_frame(fnic, fp);
675 break;
676 }
677
678fnic_send_end:
679 if (old_flogi)
680 dev_kfree_skb(fp_skb(old_flogi));
681 if (old_flogi_resp)
682 dev_kfree_skb(fp_skb(old_flogi_resp));
683 return ret;
684}
685
686static void fnic_wq_complete_frame_send(struct vnic_wq *wq,
687 struct cq_desc *cq_desc,
688 struct vnic_wq_buf *buf, void *opaque)
689{
690 struct sk_buff *skb = buf->os_buf;
691 struct fc_frame *fp = (struct fc_frame *)skb;
692 struct fnic *fnic = vnic_dev_priv(wq->vdev);
693
694 pci_unmap_single(fnic->pdev, buf->dma_addr,
695 buf->len, PCI_DMA_TODEVICE);
696 dev_kfree_skb_irq(fp_skb(fp));
697 buf->os_buf = NULL;
698}
699
700static int fnic_wq_cmpl_handler_cont(struct vnic_dev *vdev,
701 struct cq_desc *cq_desc, u8 type,
702 u16 q_number, u16 completed_index,
703 void *opaque)
704{
705 struct fnic *fnic = vnic_dev_priv(vdev);
706 unsigned long flags;
707
708 spin_lock_irqsave(&fnic->wq_lock[q_number], flags);
709 vnic_wq_service(&fnic->wq[q_number], cq_desc, completed_index,
710 fnic_wq_complete_frame_send, NULL);
711 spin_unlock_irqrestore(&fnic->wq_lock[q_number], flags);
712
713 return 0;
714}
715
716int fnic_wq_cmpl_handler(struct fnic *fnic, int work_to_do)
717{
718 unsigned int wq_work_done = 0;
719 unsigned int i;
720
721 for (i = 0; i < fnic->raw_wq_count; i++) {
722 wq_work_done += vnic_cq_service(&fnic->cq[fnic->rq_count+i],
723 work_to_do,
724 fnic_wq_cmpl_handler_cont,
725 NULL);
726 }
727
728 return wq_work_done;
729}
730
731
732void fnic_free_wq_buf(struct vnic_wq *wq, struct vnic_wq_buf *buf)
733{
734 struct fc_frame *fp = buf->os_buf;
735 struct fnic *fnic = vnic_dev_priv(wq->vdev);
736
737 pci_unmap_single(fnic->pdev, buf->dma_addr,
738 buf->len, PCI_DMA_TODEVICE);
739
740 dev_kfree_skb(fp_skb(fp));
741 buf->os_buf = NULL;
742}
diff --git a/drivers/scsi/fnic/fnic_io.h b/drivers/scsi/fnic/fnic_io.h
new file mode 100644
index 000000000000..f0b896988cd5
--- /dev/null
+++ b/drivers/scsi/fnic/fnic_io.h
@@ -0,0 +1,67 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _FNIC_IO_H_
19#define _FNIC_IO_H_
20
21#include <scsi/fc/fc_fcp.h>
22
23#define FNIC_DFLT_SG_DESC_CNT 32
24#define FNIC_MAX_SG_DESC_CNT 1024 /* Maximum descriptors per sgl */
25#define FNIC_SG_DESC_ALIGN 16 /* Descriptor address alignment */
26
27struct host_sg_desc {
28 __le64 addr;
29 __le32 len;
30 u32 _resvd;
31};
32
33struct fnic_dflt_sgl_list {
34 struct host_sg_desc sg_desc[FNIC_DFLT_SG_DESC_CNT];
35};
36
37struct fnic_sgl_list {
38 struct host_sg_desc sg_desc[FNIC_MAX_SG_DESC_CNT];
39};
40
41enum fnic_sgl_list_type {
42 FNIC_SGL_CACHE_DFLT = 0, /* cache with default size sgl */
43 FNIC_SGL_CACHE_MAX, /* cache with max size sgl */
44 FNIC_SGL_NUM_CACHES /* number of sgl caches */
45};
46
47enum fnic_ioreq_state {
48 FNIC_IOREQ_CMD_PENDING = 0,
49 FNIC_IOREQ_ABTS_PENDING,
50 FNIC_IOREQ_ABTS_COMPLETE,
51 FNIC_IOREQ_CMD_COMPLETE,
52};
53
54struct fnic_io_req {
55 struct host_sg_desc *sgl_list; /* sgl list */
56 void *sgl_list_alloc; /* sgl list address used for free */
57 dma_addr_t sense_buf_pa; /* dma address for sense buffer*/
58 dma_addr_t sgl_list_pa; /* dma address for sgl list */
59 u16 sgl_cnt;
60 u8 sgl_type; /* device DMA descriptor list type */
61 u8 io_completed:1; /* set to 1 when fw completes IO */
62 u32 port_id; /* remote port DID */
63 struct completion *abts_done; /* completion for abts */
64 struct completion *dr_done; /* completion for device reset */
65};
66
67#endif /* _FNIC_IO_H_ */
diff --git a/drivers/scsi/fnic/fnic_isr.c b/drivers/scsi/fnic/fnic_isr.c
new file mode 100644
index 000000000000..2b3064828aea
--- /dev/null
+++ b/drivers/scsi/fnic/fnic_isr.c
@@ -0,0 +1,332 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#include <linux/string.h>
19#include <linux/errno.h>
20#include <linux/pci.h>
21#include <linux/interrupt.h>
22#include <scsi/libfc.h>
23#include <scsi/fc_frame.h>
24#include "vnic_dev.h"
25#include "vnic_intr.h"
26#include "vnic_stats.h"
27#include "fnic_io.h"
28#include "fnic.h"
29
30static irqreturn_t fnic_isr_legacy(int irq, void *data)
31{
32 struct fnic *fnic = data;
33 u32 pba;
34 unsigned long work_done = 0;
35
36 pba = vnic_intr_legacy_pba(fnic->legacy_pba);
37 if (!pba)
38 return IRQ_NONE;
39
40 if (pba & (1 << FNIC_INTX_NOTIFY)) {
41 vnic_intr_return_all_credits(&fnic->intr[FNIC_INTX_NOTIFY]);
42 fnic_handle_link_event(fnic);
43 }
44
45 if (pba & (1 << FNIC_INTX_ERR)) {
46 vnic_intr_return_all_credits(&fnic->intr[FNIC_INTX_ERR]);
47 fnic_log_q_error(fnic);
48 }
49
50 if (pba & (1 << FNIC_INTX_WQ_RQ_COPYWQ)) {
51 work_done += fnic_wq_copy_cmpl_handler(fnic, 8);
52 work_done += fnic_wq_cmpl_handler(fnic, 4);
53 work_done += fnic_rq_cmpl_handler(fnic, 4);
54
55 vnic_intr_return_credits(&fnic->intr[FNIC_INTX_WQ_RQ_COPYWQ],
56 work_done,
57 1 /* unmask intr */,
58 1 /* reset intr timer */);
59 }
60
61 return IRQ_HANDLED;
62}
63
64static irqreturn_t fnic_isr_msi(int irq, void *data)
65{
66 struct fnic *fnic = data;
67 unsigned long work_done = 0;
68
69 work_done += fnic_wq_copy_cmpl_handler(fnic, 8);
70 work_done += fnic_wq_cmpl_handler(fnic, 4);
71 work_done += fnic_rq_cmpl_handler(fnic, 4);
72
73 vnic_intr_return_credits(&fnic->intr[0],
74 work_done,
75 1 /* unmask intr */,
76 1 /* reset intr timer */);
77
78 return IRQ_HANDLED;
79}
80
81static irqreturn_t fnic_isr_msix_rq(int irq, void *data)
82{
83 struct fnic *fnic = data;
84 unsigned long rq_work_done = 0;
85
86 rq_work_done = fnic_rq_cmpl_handler(fnic, 4);
87 vnic_intr_return_credits(&fnic->intr[FNIC_MSIX_RQ],
88 rq_work_done,
89 1 /* unmask intr */,
90 1 /* reset intr timer */);
91
92 return IRQ_HANDLED;
93}
94
95static irqreturn_t fnic_isr_msix_wq(int irq, void *data)
96{
97 struct fnic *fnic = data;
98 unsigned long wq_work_done = 0;
99
100 wq_work_done = fnic_wq_cmpl_handler(fnic, 4);
101 vnic_intr_return_credits(&fnic->intr[FNIC_MSIX_WQ],
102 wq_work_done,
103 1 /* unmask intr */,
104 1 /* reset intr timer */);
105 return IRQ_HANDLED;
106}
107
108static irqreturn_t fnic_isr_msix_wq_copy(int irq, void *data)
109{
110 struct fnic *fnic = data;
111 unsigned long wq_copy_work_done = 0;
112
113 wq_copy_work_done = fnic_wq_copy_cmpl_handler(fnic, 8);
114 vnic_intr_return_credits(&fnic->intr[FNIC_MSIX_WQ_COPY],
115 wq_copy_work_done,
116 1 /* unmask intr */,
117 1 /* reset intr timer */);
118 return IRQ_HANDLED;
119}
120
121static irqreturn_t fnic_isr_msix_err_notify(int irq, void *data)
122{
123 struct fnic *fnic = data;
124
125 vnic_intr_return_all_credits(&fnic->intr[FNIC_MSIX_ERR_NOTIFY]);
126 fnic_log_q_error(fnic);
127 fnic_handle_link_event(fnic);
128
129 return IRQ_HANDLED;
130}
131
132void fnic_free_intr(struct fnic *fnic)
133{
134 int i;
135
136 switch (vnic_dev_get_intr_mode(fnic->vdev)) {
137 case VNIC_DEV_INTR_MODE_INTX:
138 case VNIC_DEV_INTR_MODE_MSI:
139 free_irq(fnic->pdev->irq, fnic);
140 break;
141
142 case VNIC_DEV_INTR_MODE_MSIX:
143 for (i = 0; i < ARRAY_SIZE(fnic->msix); i++)
144 if (fnic->msix[i].requested)
145 free_irq(fnic->msix_entry[i].vector,
146 fnic->msix[i].devid);
147 break;
148
149 default:
150 break;
151 }
152}
153
154int fnic_request_intr(struct fnic *fnic)
155{
156 int err = 0;
157 int i;
158
159 switch (vnic_dev_get_intr_mode(fnic->vdev)) {
160
161 case VNIC_DEV_INTR_MODE_INTX:
162 err = request_irq(fnic->pdev->irq, &fnic_isr_legacy,
163 IRQF_SHARED, DRV_NAME, fnic);
164 break;
165
166 case VNIC_DEV_INTR_MODE_MSI:
167 err = request_irq(fnic->pdev->irq, &fnic_isr_msi,
168 0, fnic->name, fnic);
169 break;
170
171 case VNIC_DEV_INTR_MODE_MSIX:
172
173 sprintf(fnic->msix[FNIC_MSIX_RQ].devname,
174 "%.11s-fcs-rq", fnic->name);
175 fnic->msix[FNIC_MSIX_RQ].isr = fnic_isr_msix_rq;
176 fnic->msix[FNIC_MSIX_RQ].devid = fnic;
177
178 sprintf(fnic->msix[FNIC_MSIX_WQ].devname,
179 "%.11s-fcs-wq", fnic->name);
180 fnic->msix[FNIC_MSIX_WQ].isr = fnic_isr_msix_wq;
181 fnic->msix[FNIC_MSIX_WQ].devid = fnic;
182
183 sprintf(fnic->msix[FNIC_MSIX_WQ_COPY].devname,
184 "%.11s-scsi-wq", fnic->name);
185 fnic->msix[FNIC_MSIX_WQ_COPY].isr = fnic_isr_msix_wq_copy;
186 fnic->msix[FNIC_MSIX_WQ_COPY].devid = fnic;
187
188 sprintf(fnic->msix[FNIC_MSIX_ERR_NOTIFY].devname,
189 "%.11s-err-notify", fnic->name);
190 fnic->msix[FNIC_MSIX_ERR_NOTIFY].isr =
191 fnic_isr_msix_err_notify;
192 fnic->msix[FNIC_MSIX_ERR_NOTIFY].devid = fnic;
193
194 for (i = 0; i < ARRAY_SIZE(fnic->msix); i++) {
195 err = request_irq(fnic->msix_entry[i].vector,
196 fnic->msix[i].isr, 0,
197 fnic->msix[i].devname,
198 fnic->msix[i].devid);
199 if (err) {
200 shost_printk(KERN_ERR, fnic->lport->host,
201 "MSIX: request_irq"
202 " failed %d\n", err);
203 fnic_free_intr(fnic);
204 break;
205 }
206 fnic->msix[i].requested = 1;
207 }
208 break;
209
210 default:
211 break;
212 }
213
214 return err;
215}
216
217int fnic_set_intr_mode(struct fnic *fnic)
218{
219 unsigned int n = ARRAY_SIZE(fnic->rq);
220 unsigned int m = ARRAY_SIZE(fnic->wq);
221 unsigned int o = ARRAY_SIZE(fnic->wq_copy);
222 unsigned int i;
223
224 /*
225 * Set interrupt mode (INTx, MSI, MSI-X) depending
226 * system capabilities.
227 *
228 * Try MSI-X first
229 *
230 * We need n RQs, m WQs, o Copy WQs, n+m+o CQs, and n+m+o+1 INTRs
231 * (last INTR is used for WQ/RQ errors and notification area)
232 */
233
234 BUG_ON(ARRAY_SIZE(fnic->msix_entry) < n + m + o + 1);
235 for (i = 0; i < n + m + o + 1; i++)
236 fnic->msix_entry[i].entry = i;
237
238 if (fnic->rq_count >= n &&
239 fnic->raw_wq_count >= m &&
240 fnic->wq_copy_count >= o &&
241 fnic->cq_count >= n + m + o) {
242 if (!pci_enable_msix(fnic->pdev, fnic->msix_entry,
243 n + m + o + 1)) {
244 fnic->rq_count = n;
245 fnic->raw_wq_count = m;
246 fnic->wq_copy_count = o;
247 fnic->wq_count = m + o;
248 fnic->cq_count = n + m + o;
249 fnic->intr_count = n + m + o + 1;
250 fnic->err_intr_offset = FNIC_MSIX_ERR_NOTIFY;
251
252 FNIC_ISR_DBG(KERN_DEBUG, fnic->lport->host,
253 "Using MSI-X Interrupts\n");
254 vnic_dev_set_intr_mode(fnic->vdev,
255 VNIC_DEV_INTR_MODE_MSIX);
256 return 0;
257 }
258 }
259
260 /*
261 * Next try MSI
262 * We need 1 RQ, 1 WQ, 1 WQ_COPY, 3 CQs, and 1 INTR
263 */
264 if (fnic->rq_count >= 1 &&
265 fnic->raw_wq_count >= 1 &&
266 fnic->wq_copy_count >= 1 &&
267 fnic->cq_count >= 3 &&
268 fnic->intr_count >= 1 &&
269 !pci_enable_msi(fnic->pdev)) {
270
271 fnic->rq_count = 1;
272 fnic->raw_wq_count = 1;
273 fnic->wq_copy_count = 1;
274 fnic->wq_count = 2;
275 fnic->cq_count = 3;
276 fnic->intr_count = 1;
277 fnic->err_intr_offset = 0;
278
279 FNIC_ISR_DBG(KERN_DEBUG, fnic->lport->host,
280 "Using MSI Interrupts\n");
281 vnic_dev_set_intr_mode(fnic->vdev, VNIC_DEV_INTR_MODE_MSI);
282
283 return 0;
284 }
285
286 /*
287 * Next try INTx
288 * We need 1 RQ, 1 WQ, 1 WQ_COPY, 3 CQs, and 3 INTRs
289 * 1 INTR is used for all 3 queues, 1 INTR for queue errors
290 * 1 INTR for notification area
291 */
292
293 if (fnic->rq_count >= 1 &&
294 fnic->raw_wq_count >= 1 &&
295 fnic->wq_copy_count >= 1 &&
296 fnic->cq_count >= 3 &&
297 fnic->intr_count >= 3) {
298
299 fnic->rq_count = 1;
300 fnic->raw_wq_count = 1;
301 fnic->wq_copy_count = 1;
302 fnic->cq_count = 3;
303 fnic->intr_count = 3;
304
305 FNIC_ISR_DBG(KERN_DEBUG, fnic->lport->host,
306 "Using Legacy Interrupts\n");
307 vnic_dev_set_intr_mode(fnic->vdev, VNIC_DEV_INTR_MODE_INTX);
308
309 return 0;
310 }
311
312 vnic_dev_set_intr_mode(fnic->vdev, VNIC_DEV_INTR_MODE_UNKNOWN);
313
314 return -EINVAL;
315}
316
317void fnic_clear_intr_mode(struct fnic *fnic)
318{
319 switch (vnic_dev_get_intr_mode(fnic->vdev)) {
320 case VNIC_DEV_INTR_MODE_MSIX:
321 pci_disable_msix(fnic->pdev);
322 break;
323 case VNIC_DEV_INTR_MODE_MSI:
324 pci_disable_msi(fnic->pdev);
325 break;
326 default:
327 break;
328 }
329
330 vnic_dev_set_intr_mode(fnic->vdev, VNIC_DEV_INTR_MODE_INTX);
331}
332
diff --git a/drivers/scsi/fnic/fnic_main.c b/drivers/scsi/fnic/fnic_main.c
new file mode 100644
index 000000000000..32ef6b87d895
--- /dev/null
+++ b/drivers/scsi/fnic/fnic_main.c
@@ -0,0 +1,942 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#include <linux/module.h>
19#include <linux/mempool.h>
20#include <linux/string.h>
21#include <linux/errno.h>
22#include <linux/init.h>
23#include <linux/pci.h>
24#include <linux/skbuff.h>
25#include <linux/interrupt.h>
26#include <linux/spinlock.h>
27#include <linux/workqueue.h>
28#include <scsi/scsi_host.h>
29#include <scsi/scsi_transport.h>
30#include <scsi/scsi_transport_fc.h>
31#include <scsi/scsi_tcq.h>
32#include <scsi/libfc.h>
33#include <scsi/fc_frame.h>
34
35#include "vnic_dev.h"
36#include "vnic_intr.h"
37#include "vnic_stats.h"
38#include "fnic_io.h"
39#include "fnic.h"
40
41#define PCI_DEVICE_ID_CISCO_FNIC 0x0045
42
43/* Timer to poll notification area for events. Used for MSI interrupts */
44#define FNIC_NOTIFY_TIMER_PERIOD (2 * HZ)
45
46static struct kmem_cache *fnic_sgl_cache[FNIC_SGL_NUM_CACHES];
47static struct kmem_cache *fnic_io_req_cache;
48LIST_HEAD(fnic_list);
49DEFINE_SPINLOCK(fnic_list_lock);
50
51/* Supported devices by fnic module */
52static struct pci_device_id fnic_id_table[] = {
53 { PCI_DEVICE(PCI_VENDOR_ID_CISCO, PCI_DEVICE_ID_CISCO_FNIC) },
54 { 0, }
55};
56
57MODULE_DESCRIPTION(DRV_DESCRIPTION);
58MODULE_AUTHOR("Abhijeet Joglekar <abjoglek@cisco.com>, "
59 "Joseph R. Eykholt <jeykholt@cisco.com>");
60MODULE_LICENSE("GPL v2");
61MODULE_VERSION(DRV_VERSION);
62MODULE_DEVICE_TABLE(pci, fnic_id_table);
63
64unsigned int fnic_log_level;
65module_param(fnic_log_level, int, S_IRUGO|S_IWUSR);
66MODULE_PARM_DESC(fnic_log_level, "bit mask of fnic logging levels");
67
68
69static struct libfc_function_template fnic_transport_template = {
70 .frame_send = fnic_send,
71 .fcp_abort_io = fnic_empty_scsi_cleanup,
72 .fcp_cleanup = fnic_empty_scsi_cleanup,
73 .exch_mgr_reset = fnic_exch_mgr_reset
74};
75
76static int fnic_slave_alloc(struct scsi_device *sdev)
77{
78 struct fc_rport *rport = starget_to_rport(scsi_target(sdev));
79 struct fc_lport *lp = shost_priv(sdev->host);
80 struct fnic *fnic = lport_priv(lp);
81
82 sdev->tagged_supported = 1;
83
84 if (!rport || fc_remote_port_chkready(rport))
85 return -ENXIO;
86
87 scsi_activate_tcq(sdev, FNIC_DFLT_QUEUE_DEPTH);
88 rport->dev_loss_tmo = fnic->config.port_down_timeout / 1000;
89
90 return 0;
91}
92
93static struct scsi_host_template fnic_host_template = {
94 .module = THIS_MODULE,
95 .name = DRV_NAME,
96 .queuecommand = fnic_queuecommand,
97 .eh_abort_handler = fnic_abort_cmd,
98 .eh_device_reset_handler = fnic_device_reset,
99 .eh_host_reset_handler = fnic_host_reset,
100 .slave_alloc = fnic_slave_alloc,
101 .change_queue_depth = fc_change_queue_depth,
102 .change_queue_type = fc_change_queue_type,
103 .this_id = -1,
104 .cmd_per_lun = 3,
105 .can_queue = FNIC_MAX_IO_REQ,
106 .use_clustering = ENABLE_CLUSTERING,
107 .sg_tablesize = FNIC_MAX_SG_DESC_CNT,
108 .max_sectors = 0xffff,
109 .shost_attrs = fnic_attrs,
110};
111
112static void fnic_get_host_speed(struct Scsi_Host *shost);
113static struct scsi_transport_template *fnic_fc_transport;
114static struct fc_host_statistics *fnic_get_stats(struct Scsi_Host *);
115
116static struct fc_function_template fnic_fc_functions = {
117
118 .show_host_node_name = 1,
119 .show_host_port_name = 1,
120 .show_host_supported_classes = 1,
121 .show_host_supported_fc4s = 1,
122 .show_host_active_fc4s = 1,
123 .show_host_maxframe_size = 1,
124 .show_host_port_id = 1,
125 .show_host_supported_speeds = 1,
126 .get_host_speed = fnic_get_host_speed,
127 .show_host_speed = 1,
128 .show_host_port_type = 1,
129 .get_host_port_state = fc_get_host_port_state,
130 .show_host_port_state = 1,
131 .show_host_symbolic_name = 1,
132 .show_rport_maxframe_size = 1,
133 .show_rport_supported_classes = 1,
134 .show_host_fabric_name = 1,
135 .show_starget_node_name = 1,
136 .show_starget_port_name = 1,
137 .show_starget_port_id = 1,
138 .show_rport_dev_loss_tmo = 1,
139 .issue_fc_host_lip = fnic_reset,
140 .get_fc_host_stats = fnic_get_stats,
141 .dd_fcrport_size = sizeof(struct fc_rport_libfc_priv),
142 .terminate_rport_io = fnic_terminate_rport_io,
143};
144
145static void fnic_get_host_speed(struct Scsi_Host *shost)
146{
147 struct fc_lport *lp = shost_priv(shost);
148 struct fnic *fnic = lport_priv(lp);
149 u32 port_speed = vnic_dev_port_speed(fnic->vdev);
150
151 /* Add in other values as they get defined in fw */
152 switch (port_speed) {
153 case 10000:
154 fc_host_speed(shost) = FC_PORTSPEED_10GBIT;
155 break;
156 default:
157 fc_host_speed(shost) = FC_PORTSPEED_10GBIT;
158 break;
159 }
160}
161
162static struct fc_host_statistics *fnic_get_stats(struct Scsi_Host *host)
163{
164 int ret;
165 struct fc_lport *lp = shost_priv(host);
166 struct fnic *fnic = lport_priv(lp);
167 struct fc_host_statistics *stats = &lp->host_stats;
168 struct vnic_stats *vs;
169 unsigned long flags;
170
171 if (time_before(jiffies, fnic->stats_time + HZ / FNIC_STATS_RATE_LIMIT))
172 return stats;
173 fnic->stats_time = jiffies;
174
175 spin_lock_irqsave(&fnic->fnic_lock, flags);
176 ret = vnic_dev_stats_dump(fnic->vdev, &fnic->stats);
177 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
178
179 if (ret) {
180 FNIC_MAIN_DBG(KERN_DEBUG, fnic->lport->host,
181 "fnic: Get vnic stats failed"
182 " 0x%x", ret);
183 return stats;
184 }
185 vs = fnic->stats;
186 stats->tx_frames = vs->tx.tx_unicast_frames_ok;
187 stats->tx_words = vs->tx.tx_unicast_bytes_ok / 4;
188 stats->rx_frames = vs->rx.rx_unicast_frames_ok;
189 stats->rx_words = vs->rx.rx_unicast_bytes_ok / 4;
190 stats->error_frames = vs->tx.tx_errors + vs->rx.rx_errors;
191 stats->dumped_frames = vs->tx.tx_drops + vs->rx.rx_drop;
192 stats->invalid_crc_count = vs->rx.rx_crc_errors;
193 stats->seconds_since_last_reset = (jiffies - lp->boot_time) / HZ;
194 stats->fcp_input_megabytes = div_u64(fnic->fcp_input_bytes, 1000000);
195 stats->fcp_output_megabytes = div_u64(fnic->fcp_output_bytes, 1000000);
196
197 return stats;
198}
199
200void fnic_log_q_error(struct fnic *fnic)
201{
202 unsigned int i;
203 u32 error_status;
204
205 for (i = 0; i < fnic->raw_wq_count; i++) {
206 error_status = ioread32(&fnic->wq[i].ctrl->error_status);
207 if (error_status)
208 shost_printk(KERN_ERR, fnic->lport->host,
209 "WQ[%d] error_status"
210 " %d\n", i, error_status);
211 }
212
213 for (i = 0; i < fnic->rq_count; i++) {
214 error_status = ioread32(&fnic->rq[i].ctrl->error_status);
215 if (error_status)
216 shost_printk(KERN_ERR, fnic->lport->host,
217 "RQ[%d] error_status"
218 " %d\n", i, error_status);
219 }
220
221 for (i = 0; i < fnic->wq_copy_count; i++) {
222 error_status = ioread32(&fnic->wq_copy[i].ctrl->error_status);
223 if (error_status)
224 shost_printk(KERN_ERR, fnic->lport->host,
225 "CWQ[%d] error_status"
226 " %d\n", i, error_status);
227 }
228}
229
230void fnic_handle_link_event(struct fnic *fnic)
231{
232 unsigned long flags;
233
234 spin_lock_irqsave(&fnic->fnic_lock, flags);
235 if (fnic->stop_rx_link_events) {
236 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
237 return;
238 }
239 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
240
241 queue_work(fnic_event_queue, &fnic->link_work);
242
243}
244
245static int fnic_notify_set(struct fnic *fnic)
246{
247 int err;
248
249 switch (vnic_dev_get_intr_mode(fnic->vdev)) {
250 case VNIC_DEV_INTR_MODE_INTX:
251 err = vnic_dev_notify_set(fnic->vdev, FNIC_INTX_NOTIFY);
252 break;
253 case VNIC_DEV_INTR_MODE_MSI:
254 err = vnic_dev_notify_set(fnic->vdev, -1);
255 break;
256 case VNIC_DEV_INTR_MODE_MSIX:
257 err = vnic_dev_notify_set(fnic->vdev, FNIC_MSIX_ERR_NOTIFY);
258 break;
259 default:
260 shost_printk(KERN_ERR, fnic->lport->host,
261 "Interrupt mode should be set up"
262 " before devcmd notify set %d\n",
263 vnic_dev_get_intr_mode(fnic->vdev));
264 err = -1;
265 break;
266 }
267
268 return err;
269}
270
271static void fnic_notify_timer(unsigned long data)
272{
273 struct fnic *fnic = (struct fnic *)data;
274
275 fnic_handle_link_event(fnic);
276 mod_timer(&fnic->notify_timer,
277 round_jiffies(jiffies + FNIC_NOTIFY_TIMER_PERIOD));
278}
279
280static void fnic_notify_timer_start(struct fnic *fnic)
281{
282 switch (vnic_dev_get_intr_mode(fnic->vdev)) {
283 case VNIC_DEV_INTR_MODE_MSI:
284 /*
285 * Schedule first timeout immediately. The driver is
286 * initiatialized and ready to look for link up notification
287 */
288 mod_timer(&fnic->notify_timer, jiffies);
289 break;
290 default:
291 /* Using intr for notification for INTx/MSI-X */
292 break;
293 };
294}
295
296static int fnic_dev_wait(struct vnic_dev *vdev,
297 int (*start)(struct vnic_dev *, int),
298 int (*finished)(struct vnic_dev *, int *),
299 int arg)
300{
301 unsigned long time;
302 int done;
303 int err;
304
305 err = start(vdev, arg);
306 if (err)
307 return err;
308
309 /* Wait for func to complete...2 seconds max */
310 time = jiffies + (HZ * 2);
311 do {
312 err = finished(vdev, &done);
313 if (err)
314 return err;
315 if (done)
316 return 0;
317 schedule_timeout_uninterruptible(HZ / 10);
318 } while (time_after(time, jiffies));
319
320 return -ETIMEDOUT;
321}
322
323static int fnic_cleanup(struct fnic *fnic)
324{
325 unsigned int i;
326 int err;
327 unsigned long flags;
328 struct fc_frame *flogi = NULL;
329 struct fc_frame *flogi_resp = NULL;
330
331 vnic_dev_disable(fnic->vdev);
332 for (i = 0; i < fnic->intr_count; i++)
333 vnic_intr_mask(&fnic->intr[i]);
334
335 for (i = 0; i < fnic->rq_count; i++) {
336 err = vnic_rq_disable(&fnic->rq[i]);
337 if (err)
338 return err;
339 }
340 for (i = 0; i < fnic->raw_wq_count; i++) {
341 err = vnic_wq_disable(&fnic->wq[i]);
342 if (err)
343 return err;
344 }
345 for (i = 0; i < fnic->wq_copy_count; i++) {
346 err = vnic_wq_copy_disable(&fnic->wq_copy[i]);
347 if (err)
348 return err;
349 }
350
351 /* Clean up completed IOs and FCS frames */
352 fnic_wq_copy_cmpl_handler(fnic, -1);
353 fnic_wq_cmpl_handler(fnic, -1);
354 fnic_rq_cmpl_handler(fnic, -1);
355
356 /* Clean up the IOs and FCS frames that have not completed */
357 for (i = 0; i < fnic->raw_wq_count; i++)
358 vnic_wq_clean(&fnic->wq[i], fnic_free_wq_buf);
359 for (i = 0; i < fnic->rq_count; i++)
360 vnic_rq_clean(&fnic->rq[i], fnic_free_rq_buf);
361 for (i = 0; i < fnic->wq_copy_count; i++)
362 vnic_wq_copy_clean(&fnic->wq_copy[i],
363 fnic_wq_copy_cleanup_handler);
364
365 for (i = 0; i < fnic->cq_count; i++)
366 vnic_cq_clean(&fnic->cq[i]);
367 for (i = 0; i < fnic->intr_count; i++)
368 vnic_intr_clean(&fnic->intr[i]);
369
370 /*
371 * Remove cached flogi and flogi resp frames if any
372 * These frames are not in any queue, and therefore queue
373 * cleanup does not clean them. So clean them explicitly
374 */
375 spin_lock_irqsave(&fnic->fnic_lock, flags);
376 flogi = fnic->flogi;
377 fnic->flogi = NULL;
378 flogi_resp = fnic->flogi_resp;
379 fnic->flogi_resp = NULL;
380 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
381
382 if (flogi)
383 dev_kfree_skb(fp_skb(flogi));
384
385 if (flogi_resp)
386 dev_kfree_skb(fp_skb(flogi_resp));
387
388 mempool_destroy(fnic->io_req_pool);
389 for (i = 0; i < FNIC_SGL_NUM_CACHES; i++)
390 mempool_destroy(fnic->io_sgl_pool[i]);
391
392 return 0;
393}
394
395static void fnic_iounmap(struct fnic *fnic)
396{
397 if (fnic->bar0.vaddr)
398 iounmap(fnic->bar0.vaddr);
399}
400
401/*
402 * Allocate element for mempools requiring GFP_DMA flag.
403 * Otherwise, checks in kmem_flagcheck() hit BUG_ON().
404 */
405static void *fnic_alloc_slab_dma(gfp_t gfp_mask, void *pool_data)
406{
407 struct kmem_cache *mem = pool_data;
408
409 return kmem_cache_alloc(mem, gfp_mask | GFP_ATOMIC | GFP_DMA);
410}
411
412static int __devinit fnic_probe(struct pci_dev *pdev,
413 const struct pci_device_id *ent)
414{
415 struct Scsi_Host *host;
416 struct fc_lport *lp;
417 struct fnic *fnic;
418 mempool_t *pool;
419 int err;
420 int i;
421 unsigned long flags;
422
423 /*
424 * Allocate SCSI Host and set up association between host,
425 * local port, and fnic
426 */
427 host = scsi_host_alloc(&fnic_host_template,
428 sizeof(struct fc_lport) + sizeof(struct fnic));
429 if (!host) {
430 printk(KERN_ERR PFX "Unable to alloc SCSI host\n");
431 err = -ENOMEM;
432 goto err_out;
433 }
434 lp = shost_priv(host);
435 lp->host = host;
436 fnic = lport_priv(lp);
437 fnic->lport = lp;
438
439 snprintf(fnic->name, sizeof(fnic->name) - 1, "%s%d", DRV_NAME,
440 host->host_no);
441
442 host->transportt = fnic_fc_transport;
443
444 err = scsi_init_shared_tag_map(host, FNIC_MAX_IO_REQ);
445 if (err) {
446 shost_printk(KERN_ERR, fnic->lport->host,
447 "Unable to alloc shared tag map\n");
448 goto err_out_free_hba;
449 }
450
451 /* Setup PCI resources */
452 pci_set_drvdata(pdev, fnic);
453
454 fnic->pdev = pdev;
455
456 err = pci_enable_device(pdev);
457 if (err) {
458 shost_printk(KERN_ERR, fnic->lport->host,
459 "Cannot enable PCI device, aborting.\n");
460 goto err_out_free_hba;
461 }
462
463 err = pci_request_regions(pdev, DRV_NAME);
464 if (err) {
465 shost_printk(KERN_ERR, fnic->lport->host,
466 "Cannot enable PCI resources, aborting\n");
467 goto err_out_disable_device;
468 }
469
470 pci_set_master(pdev);
471
472 /* Query PCI controller on system for DMA addressing
473 * limitation for the device. Try 40-bit first, and
474 * fail to 32-bit.
475 */
476 err = pci_set_dma_mask(pdev, DMA_40BIT_MASK);
477 if (err) {
478 err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
479 if (err) {
480 shost_printk(KERN_ERR, fnic->lport->host,
481 "No usable DMA configuration "
482 "aborting\n");
483 goto err_out_release_regions;
484 }
485 err = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK);
486 if (err) {
487 shost_printk(KERN_ERR, fnic->lport->host,
488 "Unable to obtain 32-bit DMA "
489 "for consistent allocations, aborting.\n");
490 goto err_out_release_regions;
491 }
492 } else {
493 err = pci_set_consistent_dma_mask(pdev, DMA_40BIT_MASK);
494 if (err) {
495 shost_printk(KERN_ERR, fnic->lport->host,
496 "Unable to obtain 40-bit DMA "
497 "for consistent allocations, aborting.\n");
498 goto err_out_release_regions;
499 }
500 }
501
502 /* Map vNIC resources from BAR0 */
503 if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) {
504 shost_printk(KERN_ERR, fnic->lport->host,
505 "BAR0 not memory-map'able, aborting.\n");
506 err = -ENODEV;
507 goto err_out_release_regions;
508 }
509
510 fnic->bar0.vaddr = pci_iomap(pdev, 0, 0);
511 fnic->bar0.bus_addr = pci_resource_start(pdev, 0);
512 fnic->bar0.len = pci_resource_len(pdev, 0);
513
514 if (!fnic->bar0.vaddr) {
515 shost_printk(KERN_ERR, fnic->lport->host,
516 "Cannot memory-map BAR0 res hdr, "
517 "aborting.\n");
518 err = -ENODEV;
519 goto err_out_release_regions;
520 }
521
522 fnic->vdev = vnic_dev_register(NULL, fnic, pdev, &fnic->bar0);
523 if (!fnic->vdev) {
524 shost_printk(KERN_ERR, fnic->lport->host,
525 "vNIC registration failed, "
526 "aborting.\n");
527 err = -ENODEV;
528 goto err_out_iounmap;
529 }
530
531 err = fnic_dev_wait(fnic->vdev, vnic_dev_open,
532 vnic_dev_open_done, 0);
533 if (err) {
534 shost_printk(KERN_ERR, fnic->lport->host,
535 "vNIC dev open failed, aborting.\n");
536 goto err_out_vnic_unregister;
537 }
538
539 err = vnic_dev_init(fnic->vdev, 0);
540 if (err) {
541 shost_printk(KERN_ERR, fnic->lport->host,
542 "vNIC dev init failed, aborting.\n");
543 goto err_out_dev_close;
544 }
545
546 err = vnic_dev_mac_addr(fnic->vdev, fnic->mac_addr);
547 if (err) {
548 shost_printk(KERN_ERR, fnic->lport->host,
549 "vNIC get MAC addr failed \n");
550 goto err_out_dev_close;
551 }
552
553 /* Get vNIC configuration */
554 err = fnic_get_vnic_config(fnic);
555 if (err) {
556 shost_printk(KERN_ERR, fnic->lport->host,
557 "Get vNIC configuration failed, "
558 "aborting.\n");
559 goto err_out_dev_close;
560 }
561 host->max_lun = fnic->config.luns_per_tgt;
562 host->max_id = FNIC_MAX_FCP_TARGET;
563
564 fnic_get_res_counts(fnic);
565
566 err = fnic_set_intr_mode(fnic);
567 if (err) {
568 shost_printk(KERN_ERR, fnic->lport->host,
569 "Failed to set intr mode, "
570 "aborting.\n");
571 goto err_out_dev_close;
572 }
573
574 err = fnic_request_intr(fnic);
575 if (err) {
576 shost_printk(KERN_ERR, fnic->lport->host,
577 "Unable to request irq.\n");
578 goto err_out_clear_intr;
579 }
580
581 err = fnic_alloc_vnic_resources(fnic);
582 if (err) {
583 shost_printk(KERN_ERR, fnic->lport->host,
584 "Failed to alloc vNIC resources, "
585 "aborting.\n");
586 goto err_out_free_intr;
587 }
588
589
590 /* initialize all fnic locks */
591 spin_lock_init(&fnic->fnic_lock);
592
593 for (i = 0; i < FNIC_WQ_MAX; i++)
594 spin_lock_init(&fnic->wq_lock[i]);
595
596 for (i = 0; i < FNIC_WQ_COPY_MAX; i++) {
597 spin_lock_init(&fnic->wq_copy_lock[i]);
598 fnic->wq_copy_desc_low[i] = DESC_CLEAN_LOW_WATERMARK;
599 fnic->fw_ack_recd[i] = 0;
600 fnic->fw_ack_index[i] = -1;
601 }
602
603 for (i = 0; i < FNIC_IO_LOCKS; i++)
604 spin_lock_init(&fnic->io_req_lock[i]);
605
606 fnic->io_req_pool = mempool_create_slab_pool(2, fnic_io_req_cache);
607 if (!fnic->io_req_pool)
608 goto err_out_free_resources;
609
610 pool = mempool_create(2, fnic_alloc_slab_dma, mempool_free_slab,
611 fnic_sgl_cache[FNIC_SGL_CACHE_DFLT]);
612 if (!pool)
613 goto err_out_free_ioreq_pool;
614 fnic->io_sgl_pool[FNIC_SGL_CACHE_DFLT] = pool;
615
616 pool = mempool_create(2, fnic_alloc_slab_dma, mempool_free_slab,
617 fnic_sgl_cache[FNIC_SGL_CACHE_MAX]);
618 if (!pool)
619 goto err_out_free_dflt_pool;
620 fnic->io_sgl_pool[FNIC_SGL_CACHE_MAX] = pool;
621
622 /* setup vlan config, hw inserts vlan header */
623 fnic->vlan_hw_insert = 1;
624 fnic->vlan_id = 0;
625
626 fnic->flogi_oxid = FC_XID_UNKNOWN;
627 fnic->flogi = NULL;
628 fnic->flogi_resp = NULL;
629 fnic->state = FNIC_IN_FC_MODE;
630
631 /* Enable hardware stripping of vlan header on ingress */
632 fnic_set_nic_config(fnic, 0, 0, 0, 0, 0, 0, 1);
633
634 /* Setup notification buffer area */
635 err = fnic_notify_set(fnic);
636 if (err) {
637 shost_printk(KERN_ERR, fnic->lport->host,
638 "Failed to alloc notify buffer, aborting.\n");
639 goto err_out_free_max_pool;
640 }
641
642 /* Setup notify timer when using MSI interrupts */
643 if (vnic_dev_get_intr_mode(fnic->vdev) == VNIC_DEV_INTR_MODE_MSI)
644 setup_timer(&fnic->notify_timer,
645 fnic_notify_timer, (unsigned long)fnic);
646
647 /* allocate RQ buffers and post them to RQ*/
648 for (i = 0; i < fnic->rq_count; i++) {
649 err = vnic_rq_fill(&fnic->rq[i], fnic_alloc_rq_frame);
650 if (err) {
651 shost_printk(KERN_ERR, fnic->lport->host,
652 "fnic_alloc_rq_frame can't alloc "
653 "frame\n");
654 goto err_out_free_rq_buf;
655 }
656 }
657
658 /*
659 * Initialization done with PCI system, hardware, firmware.
660 * Add host to SCSI
661 */
662 err = scsi_add_host(lp->host, &pdev->dev);
663 if (err) {
664 shost_printk(KERN_ERR, fnic->lport->host,
665 "fnic: scsi_add_host failed...exiting\n");
666 goto err_out_free_rq_buf;
667 }
668
669 /* Start local port initiatialization */
670
671 lp->link_up = 0;
672 lp->tt = fnic_transport_template;
673
674 lp->emp = fc_exch_mgr_alloc(lp, FC_CLASS_3,
675 FCPIO_HOST_EXCH_RANGE_START,
676 FCPIO_HOST_EXCH_RANGE_END);
677 if (!lp->emp) {
678 err = -ENOMEM;
679 goto err_out_remove_scsi_host;
680 }
681
682 lp->max_retry_count = fnic->config.flogi_retries;
683 lp->service_params = (FCP_SPPF_INIT_FCN | FCP_SPPF_RD_XRDY_DIS |
684 FCP_SPPF_CONF_COMPL);
685 if (fnic->config.flags & VFCF_FCP_SEQ_LVL_ERR)
686 lp->service_params |= FCP_SPPF_RETRY;
687
688 lp->boot_time = jiffies;
689 lp->e_d_tov = fnic->config.ed_tov;
690 lp->r_a_tov = fnic->config.ra_tov;
691 lp->link_supported_speeds = FC_PORTSPEED_10GBIT;
692 fc_set_wwnn(lp, fnic->config.node_wwn);
693 fc_set_wwpn(lp, fnic->config.port_wwn);
694
695 fc_exch_init(lp);
696 fc_lport_init(lp);
697 fc_elsct_init(lp);
698 fc_rport_init(lp);
699 fc_disc_init(lp);
700
701 fc_lport_config(lp);
702
703 if (fc_set_mfs(lp, fnic->config.maxdatafieldsize +
704 sizeof(struct fc_frame_header))) {
705 err = -EINVAL;
706 goto err_out_free_exch_mgr;
707 }
708 fc_host_maxframe_size(lp->host) = lp->mfs;
709
710 sprintf(fc_host_symbolic_name(lp->host),
711 DRV_NAME " v" DRV_VERSION " over %s", fnic->name);
712
713 spin_lock_irqsave(&fnic_list_lock, flags);
714 list_add_tail(&fnic->list, &fnic_list);
715 spin_unlock_irqrestore(&fnic_list_lock, flags);
716
717 INIT_WORK(&fnic->link_work, fnic_handle_link);
718 INIT_WORK(&fnic->frame_work, fnic_handle_frame);
719 skb_queue_head_init(&fnic->frame_queue);
720
721 /* Enable all queues */
722 for (i = 0; i < fnic->raw_wq_count; i++)
723 vnic_wq_enable(&fnic->wq[i]);
724 for (i = 0; i < fnic->rq_count; i++)
725 vnic_rq_enable(&fnic->rq[i]);
726 for (i = 0; i < fnic->wq_copy_count; i++)
727 vnic_wq_copy_enable(&fnic->wq_copy[i]);
728
729 fc_fabric_login(lp);
730
731 vnic_dev_enable(fnic->vdev);
732 for (i = 0; i < fnic->intr_count; i++)
733 vnic_intr_unmask(&fnic->intr[i]);
734
735 fnic_notify_timer_start(fnic);
736
737 return 0;
738
739err_out_free_exch_mgr:
740 fc_exch_mgr_free(lp->emp);
741err_out_remove_scsi_host:
742 fc_remove_host(fnic->lport->host);
743 scsi_remove_host(fnic->lport->host);
744err_out_free_rq_buf:
745 for (i = 0; i < fnic->rq_count; i++)
746 vnic_rq_clean(&fnic->rq[i], fnic_free_rq_buf);
747 vnic_dev_notify_unset(fnic->vdev);
748err_out_free_max_pool:
749 mempool_destroy(fnic->io_sgl_pool[FNIC_SGL_CACHE_MAX]);
750err_out_free_dflt_pool:
751 mempool_destroy(fnic->io_sgl_pool[FNIC_SGL_CACHE_DFLT]);
752err_out_free_ioreq_pool:
753 mempool_destroy(fnic->io_req_pool);
754err_out_free_resources:
755 fnic_free_vnic_resources(fnic);
756err_out_free_intr:
757 fnic_free_intr(fnic);
758err_out_clear_intr:
759 fnic_clear_intr_mode(fnic);
760err_out_dev_close:
761 vnic_dev_close(fnic->vdev);
762err_out_vnic_unregister:
763 vnic_dev_unregister(fnic->vdev);
764err_out_iounmap:
765 fnic_iounmap(fnic);
766err_out_release_regions:
767 pci_release_regions(pdev);
768err_out_disable_device:
769 pci_disable_device(pdev);
770err_out_free_hba:
771 scsi_host_put(lp->host);
772err_out:
773 return err;
774}
775
776static void __devexit fnic_remove(struct pci_dev *pdev)
777{
778 struct fnic *fnic = pci_get_drvdata(pdev);
779 unsigned long flags;
780
781 /*
782 * Mark state so that the workqueue thread stops forwarding
783 * received frames and link events to the local port. ISR and
784 * other threads that can queue work items will also stop
785 * creating work items on the fnic workqueue
786 */
787 spin_lock_irqsave(&fnic->fnic_lock, flags);
788 fnic->stop_rx_link_events = 1;
789 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
790
791 if (vnic_dev_get_intr_mode(fnic->vdev) == VNIC_DEV_INTR_MODE_MSI)
792 del_timer_sync(&fnic->notify_timer);
793
794 /*
795 * Flush the fnic event queue. After this call, there should
796 * be no event queued for this fnic device in the workqueue
797 */
798 flush_workqueue(fnic_event_queue);
799 skb_queue_purge(&fnic->frame_queue);
800
801 /*
802 * Log off the fabric. This stops all remote ports, dns port,
803 * logs off the fabric. This flushes all rport, disc, lport work
804 * before returning
805 */
806 fc_fabric_logoff(fnic->lport);
807
808 spin_lock_irqsave(&fnic->fnic_lock, flags);
809 fnic->in_remove = 1;
810 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
811
812 fc_lport_destroy(fnic->lport);
813
814 /*
815 * This stops the fnic device, masks all interrupts. Completed
816 * CQ entries are drained. Posted WQ/RQ/Copy-WQ entries are
817 * cleaned up
818 */
819 fnic_cleanup(fnic);
820
821 BUG_ON(!skb_queue_empty(&fnic->frame_queue));
822
823 spin_lock_irqsave(&fnic_list_lock, flags);
824 list_del(&fnic->list);
825 spin_unlock_irqrestore(&fnic_list_lock, flags);
826
827 fc_remove_host(fnic->lport->host);
828 scsi_remove_host(fnic->lport->host);
829 fc_exch_mgr_free(fnic->lport->emp);
830 vnic_dev_notify_unset(fnic->vdev);
831 fnic_free_vnic_resources(fnic);
832 fnic_free_intr(fnic);
833 fnic_clear_intr_mode(fnic);
834 vnic_dev_close(fnic->vdev);
835 vnic_dev_unregister(fnic->vdev);
836 fnic_iounmap(fnic);
837 pci_release_regions(pdev);
838 pci_disable_device(pdev);
839 pci_set_drvdata(pdev, NULL);
840 scsi_host_put(fnic->lport->host);
841}
842
843static struct pci_driver fnic_driver = {
844 .name = DRV_NAME,
845 .id_table = fnic_id_table,
846 .probe = fnic_probe,
847 .remove = __devexit_p(fnic_remove),
848};
849
850static int __init fnic_init_module(void)
851{
852 size_t len;
853 int err = 0;
854
855 printk(KERN_INFO PFX "%s, ver %s\n", DRV_DESCRIPTION, DRV_VERSION);
856
857 /* Create a cache for allocation of default size sgls */
858 len = sizeof(struct fnic_dflt_sgl_list);
859 fnic_sgl_cache[FNIC_SGL_CACHE_DFLT] = kmem_cache_create
860 ("fnic_sgl_dflt", len + FNIC_SG_DESC_ALIGN, FNIC_SG_DESC_ALIGN,
861 SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA,
862 NULL);
863 if (!fnic_sgl_cache[FNIC_SGL_CACHE_DFLT]) {
864 printk(KERN_ERR PFX "failed to create fnic dflt sgl slab\n");
865 err = -ENOMEM;
866 goto err_create_fnic_sgl_slab_dflt;
867 }
868
869 /* Create a cache for allocation of max size sgls*/
870 len = sizeof(struct fnic_sgl_list);
871 fnic_sgl_cache[FNIC_SGL_CACHE_MAX] = kmem_cache_create
872 ("fnic_sgl_max", len + FNIC_SG_DESC_ALIGN, FNIC_SG_DESC_ALIGN,
873 SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA,
874 NULL);
875 if (!fnic_sgl_cache[FNIC_SGL_CACHE_MAX]) {
876 printk(KERN_ERR PFX "failed to create fnic max sgl slab\n");
877 err = -ENOMEM;
878 goto err_create_fnic_sgl_slab_max;
879 }
880
881 /* Create a cache of io_req structs for use via mempool */
882 fnic_io_req_cache = kmem_cache_create("fnic_io_req",
883 sizeof(struct fnic_io_req),
884 0, SLAB_HWCACHE_ALIGN, NULL);
885 if (!fnic_io_req_cache) {
886 printk(KERN_ERR PFX "failed to create fnic io_req slab\n");
887 err = -ENOMEM;
888 goto err_create_fnic_ioreq_slab;
889 }
890
891 fnic_event_queue = create_singlethread_workqueue("fnic_event_wq");
892 if (!fnic_event_queue) {
893 printk(KERN_ERR PFX "fnic work queue create failed\n");
894 err = -ENOMEM;
895 goto err_create_fnic_workq;
896 }
897
898 spin_lock_init(&fnic_list_lock);
899 INIT_LIST_HEAD(&fnic_list);
900
901 fnic_fc_transport = fc_attach_transport(&fnic_fc_functions);
902 if (!fnic_fc_transport) {
903 printk(KERN_ERR PFX "fc_attach_transport error\n");
904 err = -ENOMEM;
905 goto err_fc_transport;
906 }
907
908 /* register the driver with PCI system */
909 err = pci_register_driver(&fnic_driver);
910 if (err < 0) {
911 printk(KERN_ERR PFX "pci register error\n");
912 goto err_pci_register;
913 }
914 return err;
915
916err_pci_register:
917 fc_release_transport(fnic_fc_transport);
918err_fc_transport:
919 destroy_workqueue(fnic_event_queue);
920err_create_fnic_workq:
921 kmem_cache_destroy(fnic_io_req_cache);
922err_create_fnic_ioreq_slab:
923 kmem_cache_destroy(fnic_sgl_cache[FNIC_SGL_CACHE_MAX]);
924err_create_fnic_sgl_slab_max:
925 kmem_cache_destroy(fnic_sgl_cache[FNIC_SGL_CACHE_DFLT]);
926err_create_fnic_sgl_slab_dflt:
927 return err;
928}
929
930static void __exit fnic_cleanup_module(void)
931{
932 pci_unregister_driver(&fnic_driver);
933 destroy_workqueue(fnic_event_queue);
934 kmem_cache_destroy(fnic_sgl_cache[FNIC_SGL_CACHE_MAX]);
935 kmem_cache_destroy(fnic_sgl_cache[FNIC_SGL_CACHE_DFLT]);
936 kmem_cache_destroy(fnic_io_req_cache);
937 fc_release_transport(fnic_fc_transport);
938}
939
940module_init(fnic_init_module);
941module_exit(fnic_cleanup_module);
942
diff --git a/drivers/scsi/fnic/fnic_res.c b/drivers/scsi/fnic/fnic_res.c
new file mode 100644
index 000000000000..7ba61ec715d2
--- /dev/null
+++ b/drivers/scsi/fnic/fnic_res.c
@@ -0,0 +1,444 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#include <linux/errno.h>
19#include <linux/types.h>
20#include <linux/pci.h>
21#include "wq_enet_desc.h"
22#include "rq_enet_desc.h"
23#include "cq_enet_desc.h"
24#include "vnic_resource.h"
25#include "vnic_dev.h"
26#include "vnic_wq.h"
27#include "vnic_rq.h"
28#include "vnic_cq.h"
29#include "vnic_intr.h"
30#include "vnic_stats.h"
31#include "vnic_nic.h"
32#include "fnic.h"
33
34int fnic_get_vnic_config(struct fnic *fnic)
35{
36 struct vnic_fc_config *c = &fnic->config;
37 int err;
38
39#define GET_CONFIG(m) \
40 do { \
41 err = vnic_dev_spec(fnic->vdev, \
42 offsetof(struct vnic_fc_config, m), \
43 sizeof(c->m), &c->m); \
44 if (err) { \
45 shost_printk(KERN_ERR, fnic->lport->host, \
46 "Error getting %s, %d\n", #m, \
47 err); \
48 return err; \
49 } \
50 } while (0);
51
52 GET_CONFIG(node_wwn);
53 GET_CONFIG(port_wwn);
54 GET_CONFIG(wq_enet_desc_count);
55 GET_CONFIG(wq_copy_desc_count);
56 GET_CONFIG(rq_desc_count);
57 GET_CONFIG(maxdatafieldsize);
58 GET_CONFIG(ed_tov);
59 GET_CONFIG(ra_tov);
60 GET_CONFIG(intr_timer);
61 GET_CONFIG(intr_timer_type);
62 GET_CONFIG(flags);
63 GET_CONFIG(flogi_retries);
64 GET_CONFIG(flogi_timeout);
65 GET_CONFIG(plogi_retries);
66 GET_CONFIG(plogi_timeout);
67 GET_CONFIG(io_throttle_count);
68 GET_CONFIG(link_down_timeout);
69 GET_CONFIG(port_down_timeout);
70 GET_CONFIG(port_down_io_retries);
71 GET_CONFIG(luns_per_tgt);
72
73 c->wq_enet_desc_count =
74 min_t(u32, VNIC_FNIC_WQ_DESCS_MAX,
75 max_t(u32, VNIC_FNIC_WQ_DESCS_MIN,
76 c->wq_enet_desc_count));
77 c->wq_enet_desc_count = ALIGN(c->wq_enet_desc_count, 16);
78
79 c->wq_copy_desc_count =
80 min_t(u32, VNIC_FNIC_WQ_COPY_DESCS_MAX,
81 max_t(u32, VNIC_FNIC_WQ_COPY_DESCS_MIN,
82 c->wq_copy_desc_count));
83 c->wq_copy_desc_count = ALIGN(c->wq_copy_desc_count, 16);
84
85 c->rq_desc_count =
86 min_t(u32, VNIC_FNIC_RQ_DESCS_MAX,
87 max_t(u32, VNIC_FNIC_RQ_DESCS_MIN,
88 c->rq_desc_count));
89 c->rq_desc_count = ALIGN(c->rq_desc_count, 16);
90
91 c->maxdatafieldsize =
92 min_t(u16, VNIC_FNIC_MAXDATAFIELDSIZE_MAX,
93 max_t(u16, VNIC_FNIC_MAXDATAFIELDSIZE_MIN,
94 c->maxdatafieldsize));
95 c->ed_tov =
96 min_t(u32, VNIC_FNIC_EDTOV_MAX,
97 max_t(u32, VNIC_FNIC_EDTOV_MIN,
98 c->ed_tov));
99
100 c->ra_tov =
101 min_t(u32, VNIC_FNIC_RATOV_MAX,
102 max_t(u32, VNIC_FNIC_RATOV_MIN,
103 c->ra_tov));
104
105 c->flogi_retries =
106 min_t(u32, VNIC_FNIC_FLOGI_RETRIES_MAX, c->flogi_retries);
107
108 c->flogi_timeout =
109 min_t(u32, VNIC_FNIC_FLOGI_TIMEOUT_MAX,
110 max_t(u32, VNIC_FNIC_FLOGI_TIMEOUT_MIN,
111 c->flogi_timeout));
112
113 c->plogi_retries =
114 min_t(u32, VNIC_FNIC_PLOGI_RETRIES_MAX, c->plogi_retries);
115
116 c->plogi_timeout =
117 min_t(u32, VNIC_FNIC_PLOGI_TIMEOUT_MAX,
118 max_t(u32, VNIC_FNIC_PLOGI_TIMEOUT_MIN,
119 c->plogi_timeout));
120
121 c->io_throttle_count =
122 min_t(u32, VNIC_FNIC_IO_THROTTLE_COUNT_MAX,
123 max_t(u32, VNIC_FNIC_IO_THROTTLE_COUNT_MIN,
124 c->io_throttle_count));
125
126 c->link_down_timeout =
127 min_t(u32, VNIC_FNIC_LINK_DOWN_TIMEOUT_MAX,
128 c->link_down_timeout);
129
130 c->port_down_timeout =
131 min_t(u32, VNIC_FNIC_PORT_DOWN_TIMEOUT_MAX,
132 c->port_down_timeout);
133
134 c->port_down_io_retries =
135 min_t(u32, VNIC_FNIC_PORT_DOWN_IO_RETRIES_MAX,
136 c->port_down_io_retries);
137
138 c->luns_per_tgt =
139 min_t(u32, VNIC_FNIC_LUNS_PER_TARGET_MAX,
140 max_t(u32, VNIC_FNIC_LUNS_PER_TARGET_MIN,
141 c->luns_per_tgt));
142
143 c->intr_timer = min_t(u16, VNIC_INTR_TIMER_MAX, c->intr_timer);
144 c->intr_timer_type = c->intr_timer_type;
145
146 shost_printk(KERN_INFO, fnic->lport->host,
147 "vNIC MAC addr %02x:%02x:%02x:%02x:%02x:%02x "
148 "wq/wq_copy/rq %d/%d/%d\n",
149 fnic->mac_addr[0], fnic->mac_addr[1], fnic->mac_addr[2],
150 fnic->mac_addr[3], fnic->mac_addr[4], fnic->mac_addr[5],
151 c->wq_enet_desc_count, c->wq_copy_desc_count,
152 c->rq_desc_count);
153 shost_printk(KERN_INFO, fnic->lport->host,
154 "vNIC node wwn %llx port wwn %llx\n",
155 c->node_wwn, c->port_wwn);
156 shost_printk(KERN_INFO, fnic->lport->host,
157 "vNIC ed_tov %d ra_tov %d\n",
158 c->ed_tov, c->ra_tov);
159 shost_printk(KERN_INFO, fnic->lport->host,
160 "vNIC mtu %d intr timer %d\n",
161 c->maxdatafieldsize, c->intr_timer);
162 shost_printk(KERN_INFO, fnic->lport->host,
163 "vNIC flags 0x%x luns per tgt %d\n",
164 c->flags, c->luns_per_tgt);
165 shost_printk(KERN_INFO, fnic->lport->host,
166 "vNIC flogi_retries %d flogi timeout %d\n",
167 c->flogi_retries, c->flogi_timeout);
168 shost_printk(KERN_INFO, fnic->lport->host,
169 "vNIC plogi retries %d plogi timeout %d\n",
170 c->plogi_retries, c->plogi_timeout);
171 shost_printk(KERN_INFO, fnic->lport->host,
172 "vNIC io throttle count %d link dn timeout %d\n",
173 c->io_throttle_count, c->link_down_timeout);
174 shost_printk(KERN_INFO, fnic->lport->host,
175 "vNIC port dn io retries %d port dn timeout %d\n",
176 c->port_down_io_retries, c->port_down_timeout);
177
178 return 0;
179}
180
181int fnic_set_nic_config(struct fnic *fnic, u8 rss_default_cpu,
182 u8 rss_hash_type,
183 u8 rss_hash_bits, u8 rss_base_cpu, u8 rss_enable,
184 u8 tso_ipid_split_en, u8 ig_vlan_strip_en)
185{
186 u64 a0, a1;
187 u32 nic_cfg;
188 int wait = 1000;
189
190 vnic_set_nic_cfg(&nic_cfg, rss_default_cpu,
191 rss_hash_type, rss_hash_bits, rss_base_cpu,
192 rss_enable, tso_ipid_split_en, ig_vlan_strip_en);
193
194 a0 = nic_cfg;
195 a1 = 0;
196
197 return vnic_dev_cmd(fnic->vdev, CMD_NIC_CFG, &a0, &a1, wait);
198}
199
200void fnic_get_res_counts(struct fnic *fnic)
201{
202 fnic->wq_count = vnic_dev_get_res_count(fnic->vdev, RES_TYPE_WQ);
203 fnic->raw_wq_count = fnic->wq_count - 1;
204 fnic->wq_copy_count = fnic->wq_count - fnic->raw_wq_count;
205 fnic->rq_count = vnic_dev_get_res_count(fnic->vdev, RES_TYPE_RQ);
206 fnic->cq_count = vnic_dev_get_res_count(fnic->vdev, RES_TYPE_CQ);
207 fnic->intr_count = vnic_dev_get_res_count(fnic->vdev,
208 RES_TYPE_INTR_CTRL);
209}
210
211void fnic_free_vnic_resources(struct fnic *fnic)
212{
213 unsigned int i;
214
215 for (i = 0; i < fnic->raw_wq_count; i++)
216 vnic_wq_free(&fnic->wq[i]);
217
218 for (i = 0; i < fnic->wq_copy_count; i++)
219 vnic_wq_copy_free(&fnic->wq_copy[i]);
220
221 for (i = 0; i < fnic->rq_count; i++)
222 vnic_rq_free(&fnic->rq[i]);
223
224 for (i = 0; i < fnic->cq_count; i++)
225 vnic_cq_free(&fnic->cq[i]);
226
227 for (i = 0; i < fnic->intr_count; i++)
228 vnic_intr_free(&fnic->intr[i]);
229}
230
231int fnic_alloc_vnic_resources(struct fnic *fnic)
232{
233 enum vnic_dev_intr_mode intr_mode;
234 unsigned int mask_on_assertion;
235 unsigned int interrupt_offset;
236 unsigned int error_interrupt_enable;
237 unsigned int error_interrupt_offset;
238 unsigned int i, cq_index;
239 unsigned int wq_copy_cq_desc_count;
240 int err;
241
242 intr_mode = vnic_dev_get_intr_mode(fnic->vdev);
243
244 shost_printk(KERN_INFO, fnic->lport->host, "vNIC interrupt mode: %s\n",
245 intr_mode == VNIC_DEV_INTR_MODE_INTX ? "legacy PCI INTx" :
246 intr_mode == VNIC_DEV_INTR_MODE_MSI ? "MSI" :
247 intr_mode == VNIC_DEV_INTR_MODE_MSIX ?
248 "MSI-X" : "unknown");
249
250 shost_printk(KERN_INFO, fnic->lport->host, "vNIC resources avail: "
251 "wq %d cp_wq %d raw_wq %d rq %d cq %d intr %d\n",
252 fnic->wq_count, fnic->wq_copy_count, fnic->raw_wq_count,
253 fnic->rq_count, fnic->cq_count, fnic->intr_count);
254
255 /* Allocate Raw WQ used for FCS frames */
256 for (i = 0; i < fnic->raw_wq_count; i++) {
257 err = vnic_wq_alloc(fnic->vdev, &fnic->wq[i], i,
258 fnic->config.wq_enet_desc_count,
259 sizeof(struct wq_enet_desc));
260 if (err)
261 goto err_out_cleanup;
262 }
263
264 /* Allocate Copy WQs used for SCSI IOs */
265 for (i = 0; i < fnic->wq_copy_count; i++) {
266 err = vnic_wq_copy_alloc(fnic->vdev, &fnic->wq_copy[i],
267 (fnic->raw_wq_count + i),
268 fnic->config.wq_copy_desc_count,
269 sizeof(struct fcpio_host_req));
270 if (err)
271 goto err_out_cleanup;
272 }
273
274 /* RQ for receiving FCS frames */
275 for (i = 0; i < fnic->rq_count; i++) {
276 err = vnic_rq_alloc(fnic->vdev, &fnic->rq[i], i,
277 fnic->config.rq_desc_count,
278 sizeof(struct rq_enet_desc));
279 if (err)
280 goto err_out_cleanup;
281 }
282
283 /* CQ for each RQ */
284 for (i = 0; i < fnic->rq_count; i++) {
285 cq_index = i;
286 err = vnic_cq_alloc(fnic->vdev,
287 &fnic->cq[cq_index], cq_index,
288 fnic->config.rq_desc_count,
289 sizeof(struct cq_enet_rq_desc));
290 if (err)
291 goto err_out_cleanup;
292 }
293
294 /* CQ for each WQ */
295 for (i = 0; i < fnic->raw_wq_count; i++) {
296 cq_index = fnic->rq_count + i;
297 err = vnic_cq_alloc(fnic->vdev, &fnic->cq[cq_index], cq_index,
298 fnic->config.wq_enet_desc_count,
299 sizeof(struct cq_enet_wq_desc));
300 if (err)
301 goto err_out_cleanup;
302 }
303
304 /* CQ for each COPY WQ */
305 wq_copy_cq_desc_count = (fnic->config.wq_copy_desc_count * 3);
306 for (i = 0; i < fnic->wq_copy_count; i++) {
307 cq_index = fnic->raw_wq_count + fnic->rq_count + i;
308 err = vnic_cq_alloc(fnic->vdev, &fnic->cq[cq_index],
309 cq_index,
310 wq_copy_cq_desc_count,
311 sizeof(struct fcpio_fw_req));
312 if (err)
313 goto err_out_cleanup;
314 }
315
316 for (i = 0; i < fnic->intr_count; i++) {
317 err = vnic_intr_alloc(fnic->vdev, &fnic->intr[i], i);
318 if (err)
319 goto err_out_cleanup;
320 }
321
322 fnic->legacy_pba = vnic_dev_get_res(fnic->vdev,
323 RES_TYPE_INTR_PBA_LEGACY, 0);
324
325 if (!fnic->legacy_pba && intr_mode == VNIC_DEV_INTR_MODE_INTX) {
326 shost_printk(KERN_ERR, fnic->lport->host,
327 "Failed to hook legacy pba resource\n");
328 err = -ENODEV;
329 goto err_out_cleanup;
330 }
331
332 /*
333 * Init RQ/WQ resources.
334 *
335 * RQ[0 to n-1] point to CQ[0 to n-1]
336 * WQ[0 to m-1] point to CQ[n to n+m-1]
337 * WQ_COPY[0 to k-1] points to CQ[n+m to n+m+k-1]
338 *
339 * Note for copy wq we always initialize with cq_index = 0
340 *
341 * Error interrupt is not enabled for MSI.
342 */
343
344 switch (intr_mode) {
345 case VNIC_DEV_INTR_MODE_INTX:
346 case VNIC_DEV_INTR_MODE_MSIX:
347 error_interrupt_enable = 1;
348 error_interrupt_offset = fnic->err_intr_offset;
349 break;
350 default:
351 error_interrupt_enable = 0;
352 error_interrupt_offset = 0;
353 break;
354 }
355
356 for (i = 0; i < fnic->rq_count; i++) {
357 cq_index = i;
358 vnic_rq_init(&fnic->rq[i],
359 cq_index,
360 error_interrupt_enable,
361 error_interrupt_offset);
362 }
363
364 for (i = 0; i < fnic->raw_wq_count; i++) {
365 cq_index = i + fnic->rq_count;
366 vnic_wq_init(&fnic->wq[i],
367 cq_index,
368 error_interrupt_enable,
369 error_interrupt_offset);
370 }
371
372 for (i = 0; i < fnic->wq_copy_count; i++) {
373 vnic_wq_copy_init(&fnic->wq_copy[i],
374 0 /* cq_index 0 - always */,
375 error_interrupt_enable,
376 error_interrupt_offset);
377 }
378
379 for (i = 0; i < fnic->cq_count; i++) {
380
381 switch (intr_mode) {
382 case VNIC_DEV_INTR_MODE_MSIX:
383 interrupt_offset = i;
384 break;
385 default:
386 interrupt_offset = 0;
387 break;
388 }
389
390 vnic_cq_init(&fnic->cq[i],
391 0 /* flow_control_enable */,
392 1 /* color_enable */,
393 0 /* cq_head */,
394 0 /* cq_tail */,
395 1 /* cq_tail_color */,
396 1 /* interrupt_enable */,
397 1 /* cq_entry_enable */,
398 0 /* cq_message_enable */,
399 interrupt_offset,
400 0 /* cq_message_addr */);
401 }
402
403 /*
404 * Init INTR resources
405 *
406 * mask_on_assertion is not used for INTx due to the level-
407 * triggered nature of INTx
408 */
409
410 switch (intr_mode) {
411 case VNIC_DEV_INTR_MODE_MSI:
412 case VNIC_DEV_INTR_MODE_MSIX:
413 mask_on_assertion = 1;
414 break;
415 default:
416 mask_on_assertion = 0;
417 break;
418 }
419
420 for (i = 0; i < fnic->intr_count; i++) {
421 vnic_intr_init(&fnic->intr[i],
422 fnic->config.intr_timer,
423 fnic->config.intr_timer_type,
424 mask_on_assertion);
425 }
426
427 /* init the stats memory by making the first call here */
428 err = vnic_dev_stats_dump(fnic->vdev, &fnic->stats);
429 if (err) {
430 shost_printk(KERN_ERR, fnic->lport->host,
431 "vnic_dev_stats_dump failed - x%x\n", err);
432 goto err_out_cleanup;
433 }
434
435 /* Clear LIF stats */
436 vnic_dev_stats_clear(fnic->vdev);
437
438 return 0;
439
440err_out_cleanup:
441 fnic_free_vnic_resources(fnic);
442
443 return err;
444}
diff --git a/drivers/scsi/fnic/fnic_res.h b/drivers/scsi/fnic/fnic_res.h
new file mode 100644
index 000000000000..b6f310262534
--- /dev/null
+++ b/drivers/scsi/fnic/fnic_res.h
@@ -0,0 +1,197 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _FNIC_RES_H_
19#define _FNIC_RES_H_
20
21#include "wq_enet_desc.h"
22#include "rq_enet_desc.h"
23#include "vnic_wq.h"
24#include "vnic_rq.h"
25#include "fnic_io.h"
26#include "fcpio.h"
27#include "vnic_wq_copy.h"
28#include "vnic_cq_copy.h"
29
30static inline void fnic_queue_wq_desc(struct vnic_wq *wq,
31 void *os_buf, dma_addr_t dma_addr,
32 unsigned int len, unsigned int fc_eof,
33 int vlan_tag_insert,
34 unsigned int vlan_tag,
35 int cq_entry, int sop, int eop)
36{
37 struct wq_enet_desc *desc = vnic_wq_next_desc(wq);
38
39 wq_enet_desc_enc(desc,
40 (u64)dma_addr | VNIC_PADDR_TARGET,
41 (u16)len,
42 0, /* mss_or_csum_offset */
43 (u16)fc_eof,
44 0, /* offload_mode */
45 (u8)eop, (u8)cq_entry,
46 1, /* fcoe_encap */
47 (u8)vlan_tag_insert,
48 (u16)vlan_tag,
49 0 /* loopback */);
50
51 vnic_wq_post(wq, os_buf, dma_addr, len, sop, eop);
52}
53
54static inline void fnic_queue_wq_copy_desc_icmnd_16(struct vnic_wq_copy *wq,
55 u32 req_id,
56 u32 lunmap_id, u8 spl_flags,
57 u32 sgl_cnt, u32 sense_len,
58 u64 sgl_addr, u64 sns_addr,
59 u8 crn, u8 pri_ta,
60 u8 flags, u8 *scsi_cdb,
61 u32 data_len, u8 *lun,
62 u32 d_id, u16 mss,
63 u32 ratov, u32 edtov)
64{
65 struct fcpio_host_req *desc = vnic_wq_copy_next_desc(wq);
66
67 desc->hdr.type = FCPIO_ICMND_16; /* enum fcpio_type */
68 desc->hdr.status = 0; /* header status entry */
69 desc->hdr._resvd = 0; /* reserved */
70 desc->hdr.tag.u.req_id = req_id; /* id for this request */
71
72 desc->u.icmnd_16.lunmap_id = lunmap_id; /* index into lunmap table */
73 desc->u.icmnd_16.special_req_flags = spl_flags; /* exch req flags */
74 desc->u.icmnd_16._resvd0[0] = 0; /* reserved */
75 desc->u.icmnd_16._resvd0[1] = 0; /* reserved */
76 desc->u.icmnd_16._resvd0[2] = 0; /* reserved */
77 desc->u.icmnd_16.sgl_cnt = sgl_cnt; /* scatter-gather list count */
78 desc->u.icmnd_16.sense_len = sense_len; /* sense buffer length */
79 desc->u.icmnd_16.sgl_addr = sgl_addr; /* scatter-gather list addr */
80 desc->u.icmnd_16.sense_addr = sns_addr; /* sense buffer address */
81 desc->u.icmnd_16.crn = crn; /* SCSI Command Reference No.*/
82 desc->u.icmnd_16.pri_ta = pri_ta; /* SCSI Pri & Task attribute */
83 desc->u.icmnd_16._resvd1 = 0; /* reserved: should be 0 */
84 desc->u.icmnd_16.flags = flags; /* command flags */
85 memcpy(desc->u.icmnd_16.scsi_cdb, scsi_cdb, CDB_16); /* SCSI CDB */
86 desc->u.icmnd_16.data_len = data_len; /* length of data expected */
87 memcpy(desc->u.icmnd_16.lun, lun, LUN_ADDRESS); /* LUN address */
88 desc->u.icmnd_16._resvd2 = 0; /* reserved */
89 hton24(desc->u.icmnd_16.d_id, d_id); /* FC vNIC only: Target D_ID */
90 desc->u.icmnd_16.mss = mss; /* FC vNIC only: max burst */
91 desc->u.icmnd_16.r_a_tov = ratov; /*FC vNIC only: Res. Alloc Timeout */
92 desc->u.icmnd_16.e_d_tov = edtov; /*FC vNIC only: Err Detect Timeout */
93
94 vnic_wq_copy_post(wq);
95}
96
97static inline void fnic_queue_wq_copy_desc_itmf(struct vnic_wq_copy *wq,
98 u32 req_id, u32 lunmap_id,
99 u32 tm_req, u32 tm_id, u8 *lun,
100 u32 d_id, u32 r_a_tov,
101 u32 e_d_tov)
102{
103 struct fcpio_host_req *desc = vnic_wq_copy_next_desc(wq);
104
105 desc->hdr.type = FCPIO_ITMF; /* enum fcpio_type */
106 desc->hdr.status = 0; /* header status entry */
107 desc->hdr._resvd = 0; /* reserved */
108 desc->hdr.tag.u.req_id = req_id; /* id for this request */
109
110 desc->u.itmf.lunmap_id = lunmap_id; /* index into lunmap table */
111 desc->u.itmf.tm_req = tm_req; /* SCSI Task Management request */
112 desc->u.itmf.t_tag = tm_id; /* tag of fcpio to be aborted */
113 desc->u.itmf._resvd = 0;
114 memcpy(desc->u.itmf.lun, lun, LUN_ADDRESS); /* LUN address */
115 desc->u.itmf._resvd1 = 0;
116 hton24(desc->u.itmf.d_id, d_id); /* FC vNIC only: Target D_ID */
117 desc->u.itmf.r_a_tov = r_a_tov; /* FC vNIC only: R_A_TOV in msec */
118 desc->u.itmf.e_d_tov = e_d_tov; /* FC vNIC only: E_D_TOV in msec */
119
120 vnic_wq_copy_post(wq);
121}
122
123static inline void fnic_queue_wq_copy_desc_flogi_reg(struct vnic_wq_copy *wq,
124 u32 req_id, u8 format,
125 u32 s_id, u8 *gw_mac)
126{
127 struct fcpio_host_req *desc = vnic_wq_copy_next_desc(wq);
128
129 desc->hdr.type = FCPIO_FLOGI_REG; /* enum fcpio_type */
130 desc->hdr.status = 0; /* header status entry */
131 desc->hdr._resvd = 0; /* reserved */
132 desc->hdr.tag.u.req_id = req_id; /* id for this request */
133
134 desc->u.flogi_reg.format = format;
135 hton24(desc->u.flogi_reg.s_id, s_id);
136 memcpy(desc->u.flogi_reg.gateway_mac, gw_mac, ETH_ALEN);
137
138 vnic_wq_copy_post(wq);
139}
140
141static inline void fnic_queue_wq_copy_desc_fw_reset(struct vnic_wq_copy *wq,
142 u32 req_id)
143{
144 struct fcpio_host_req *desc = vnic_wq_copy_next_desc(wq);
145
146 desc->hdr.type = FCPIO_RESET; /* enum fcpio_type */
147 desc->hdr.status = 0; /* header status entry */
148 desc->hdr._resvd = 0; /* reserved */
149 desc->hdr.tag.u.req_id = req_id; /* id for this request */
150
151 vnic_wq_copy_post(wq);
152}
153
154static inline void fnic_queue_wq_copy_desc_lunmap(struct vnic_wq_copy *wq,
155 u32 req_id, u64 lunmap_addr,
156 u32 lunmap_len)
157{
158 struct fcpio_host_req *desc = vnic_wq_copy_next_desc(wq);
159
160 desc->hdr.type = FCPIO_LUNMAP_REQ; /* enum fcpio_type */
161 desc->hdr.status = 0; /* header status entry */
162 desc->hdr._resvd = 0; /* reserved */
163 desc->hdr.tag.u.req_id = req_id; /* id for this request */
164
165 desc->u.lunmap_req.addr = lunmap_addr; /* address of the buffer */
166 desc->u.lunmap_req.len = lunmap_len; /* len of the buffer */
167
168 vnic_wq_copy_post(wq);
169}
170
171static inline void fnic_queue_rq_desc(struct vnic_rq *rq,
172 void *os_buf, dma_addr_t dma_addr,
173 u16 len)
174{
175 struct rq_enet_desc *desc = vnic_rq_next_desc(rq);
176
177 rq_enet_desc_enc(desc,
178 (u64)dma_addr | VNIC_PADDR_TARGET,
179 RQ_ENET_TYPE_ONLY_SOP,
180 (u16)len);
181
182 vnic_rq_post(rq, os_buf, 0, dma_addr, len);
183}
184
185
186struct fnic;
187
188int fnic_get_vnic_config(struct fnic *);
189int fnic_alloc_vnic_resources(struct fnic *);
190void fnic_free_vnic_resources(struct fnic *);
191void fnic_get_res_counts(struct fnic *);
192int fnic_set_nic_config(struct fnic *fnic, u8 rss_default_cpu,
193 u8 rss_hash_type, u8 rss_hash_bits, u8 rss_base_cpu,
194 u8 rss_enable, u8 tso_ipid_split_en,
195 u8 ig_vlan_strip_en);
196
197#endif /* _FNIC_RES_H_ */
diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c
new file mode 100644
index 000000000000..eabf36502856
--- /dev/null
+++ b/drivers/scsi/fnic/fnic_scsi.c
@@ -0,0 +1,1850 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#include <linux/mempool.h>
19#include <linux/errno.h>
20#include <linux/init.h>
21#include <linux/workqueue.h>
22#include <linux/pci.h>
23#include <linux/scatterlist.h>
24#include <linux/skbuff.h>
25#include <linux/spinlock.h>
26#include <linux/if_ether.h>
27#include <linux/if_vlan.h>
28#include <linux/delay.h>
29#include <scsi/scsi.h>
30#include <scsi/scsi_host.h>
31#include <scsi/scsi_device.h>
32#include <scsi/scsi_cmnd.h>
33#include <scsi/scsi_tcq.h>
34#include <scsi/fc/fc_els.h>
35#include <scsi/fc/fc_fcoe.h>
36#include <scsi/libfc.h>
37#include <scsi/fc_frame.h>
38#include "fnic_io.h"
39#include "fnic.h"
40
41const char *fnic_state_str[] = {
42 [FNIC_IN_FC_MODE] = "FNIC_IN_FC_MODE",
43 [FNIC_IN_FC_TRANS_ETH_MODE] = "FNIC_IN_FC_TRANS_ETH_MODE",
44 [FNIC_IN_ETH_MODE] = "FNIC_IN_ETH_MODE",
45 [FNIC_IN_ETH_TRANS_FC_MODE] = "FNIC_IN_ETH_TRANS_FC_MODE",
46};
47
48static const char *fnic_ioreq_state_str[] = {
49 [FNIC_IOREQ_CMD_PENDING] = "FNIC_IOREQ_CMD_PENDING",
50 [FNIC_IOREQ_ABTS_PENDING] = "FNIC_IOREQ_ABTS_PENDING",
51 [FNIC_IOREQ_ABTS_COMPLETE] = "FNIC_IOREQ_ABTS_COMPLETE",
52 [FNIC_IOREQ_CMD_COMPLETE] = "FNIC_IOREQ_CMD_COMPLETE",
53};
54
55static const char *fcpio_status_str[] = {
56 [FCPIO_SUCCESS] = "FCPIO_SUCCESS", /*0x0*/
57 [FCPIO_INVALID_HEADER] = "FCPIO_INVALID_HEADER",
58 [FCPIO_OUT_OF_RESOURCE] = "FCPIO_OUT_OF_RESOURCE",
59 [FCPIO_INVALID_PARAM] = "FCPIO_INVALID_PARAM]",
60 [FCPIO_REQ_NOT_SUPPORTED] = "FCPIO_REQ_NOT_SUPPORTED",
61 [FCPIO_IO_NOT_FOUND] = "FCPIO_IO_NOT_FOUND",
62 [FCPIO_ABORTED] = "FCPIO_ABORTED", /*0x41*/
63 [FCPIO_TIMEOUT] = "FCPIO_TIMEOUT",
64 [FCPIO_SGL_INVALID] = "FCPIO_SGL_INVALID",
65 [FCPIO_MSS_INVALID] = "FCPIO_MSS_INVALID",
66 [FCPIO_DATA_CNT_MISMATCH] = "FCPIO_DATA_CNT_MISMATCH",
67 [FCPIO_FW_ERR] = "FCPIO_FW_ERR",
68 [FCPIO_ITMF_REJECTED] = "FCPIO_ITMF_REJECTED",
69 [FCPIO_ITMF_FAILED] = "FCPIO_ITMF_FAILED",
70 [FCPIO_ITMF_INCORRECT_LUN] = "FCPIO_ITMF_INCORRECT_LUN",
71 [FCPIO_CMND_REJECTED] = "FCPIO_CMND_REJECTED",
72 [FCPIO_NO_PATH_AVAIL] = "FCPIO_NO_PATH_AVAIL",
73 [FCPIO_PATH_FAILED] = "FCPIO_PATH_FAILED",
74 [FCPIO_LUNMAP_CHNG_PEND] = "FCPIO_LUNHMAP_CHNG_PEND",
75};
76
77const char *fnic_state_to_str(unsigned int state)
78{
79 if (state >= ARRAY_SIZE(fnic_state_str) || !fnic_state_str[state])
80 return "unknown";
81
82 return fnic_state_str[state];
83}
84
85static const char *fnic_ioreq_state_to_str(unsigned int state)
86{
87 if (state >= ARRAY_SIZE(fnic_ioreq_state_str) ||
88 !fnic_ioreq_state_str[state])
89 return "unknown";
90
91 return fnic_ioreq_state_str[state];
92}
93
94static const char *fnic_fcpio_status_to_str(unsigned int status)
95{
96 if (status >= ARRAY_SIZE(fcpio_status_str) || !fcpio_status_str[status])
97 return "unknown";
98
99 return fcpio_status_str[status];
100}
101
102static void fnic_cleanup_io(struct fnic *fnic, int exclude_id);
103
104static inline spinlock_t *fnic_io_lock_hash(struct fnic *fnic,
105 struct scsi_cmnd *sc)
106{
107 u32 hash = sc->request->tag & (FNIC_IO_LOCKS - 1);
108
109 return &fnic->io_req_lock[hash];
110}
111
112/*
113 * Unmap the data buffer and sense buffer for an io_req,
114 * also unmap and free the device-private scatter/gather list.
115 */
116static void fnic_release_ioreq_buf(struct fnic *fnic,
117 struct fnic_io_req *io_req,
118 struct scsi_cmnd *sc)
119{
120 if (io_req->sgl_list_pa)
121 pci_unmap_single(fnic->pdev, io_req->sgl_list_pa,
122 sizeof(io_req->sgl_list[0]) * io_req->sgl_cnt,
123 PCI_DMA_TODEVICE);
124 scsi_dma_unmap(sc);
125
126 if (io_req->sgl_cnt)
127 mempool_free(io_req->sgl_list_alloc,
128 fnic->io_sgl_pool[io_req->sgl_type]);
129 if (io_req->sense_buf_pa)
130 pci_unmap_single(fnic->pdev, io_req->sense_buf_pa,
131 SCSI_SENSE_BUFFERSIZE, PCI_DMA_FROMDEVICE);
132}
133
134/* Free up Copy Wq descriptors. Called with copy_wq lock held */
135static int free_wq_copy_descs(struct fnic *fnic, struct vnic_wq_copy *wq)
136{
137 /* if no Ack received from firmware, then nothing to clean */
138 if (!fnic->fw_ack_recd[0])
139 return 1;
140
141 /*
142 * Update desc_available count based on number of freed descriptors
143 * Account for wraparound
144 */
145 if (wq->to_clean_index <= fnic->fw_ack_index[0])
146 wq->ring.desc_avail += (fnic->fw_ack_index[0]
147 - wq->to_clean_index + 1);
148 else
149 wq->ring.desc_avail += (wq->ring.desc_count
150 - wq->to_clean_index
151 + fnic->fw_ack_index[0] + 1);
152
153 /*
154 * just bump clean index to ack_index+1 accounting for wraparound
155 * this will essentially free up all descriptors between
156 * to_clean_index and fw_ack_index, both inclusive
157 */
158 wq->to_clean_index =
159 (fnic->fw_ack_index[0] + 1) % wq->ring.desc_count;
160
161 /* we have processed the acks received so far */
162 fnic->fw_ack_recd[0] = 0;
163 return 0;
164}
165
166
167/*
168 * fnic_fw_reset_handler
169 * Routine to send reset msg to fw
170 */
171int fnic_fw_reset_handler(struct fnic *fnic)
172{
173 struct vnic_wq_copy *wq = &fnic->wq_copy[0];
174 int ret = 0;
175 unsigned long flags;
176
177 spin_lock_irqsave(&fnic->wq_copy_lock[0], flags);
178
179 if (vnic_wq_copy_desc_avail(wq) <= fnic->wq_copy_desc_low[0])
180 free_wq_copy_descs(fnic, wq);
181
182 if (!vnic_wq_copy_desc_avail(wq))
183 ret = -EAGAIN;
184 else
185 fnic_queue_wq_copy_desc_fw_reset(wq, SCSI_NO_TAG);
186
187 spin_unlock_irqrestore(&fnic->wq_copy_lock[0], flags);
188
189 if (!ret)
190 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
191 "Issued fw reset\n");
192 else
193 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
194 "Failed to issue fw reset\n");
195 return ret;
196}
197
198
199/*
200 * fnic_flogi_reg_handler
201 * Routine to send flogi register msg to fw
202 */
203int fnic_flogi_reg_handler(struct fnic *fnic)
204{
205 struct vnic_wq_copy *wq = &fnic->wq_copy[0];
206 u8 gw_mac[ETH_ALEN];
207 int ret = 0;
208 unsigned long flags;
209
210 spin_lock_irqsave(&fnic->wq_copy_lock[0], flags);
211
212 if (vnic_wq_copy_desc_avail(wq) <= fnic->wq_copy_desc_low[0])
213 free_wq_copy_descs(fnic, wq);
214
215 if (!vnic_wq_copy_desc_avail(wq)) {
216 ret = -EAGAIN;
217 goto flogi_reg_ioreq_end;
218 }
219
220 if (fnic->fcoui_mode)
221 memset(gw_mac, 0xff, ETH_ALEN);
222 else
223 memcpy(gw_mac, fnic->dest_addr, ETH_ALEN);
224
225 fnic_queue_wq_copy_desc_flogi_reg(wq, SCSI_NO_TAG,
226 FCPIO_FLOGI_REG_GW_DEST,
227 fnic->s_id,
228 gw_mac);
229
230flogi_reg_ioreq_end:
231 spin_unlock_irqrestore(&fnic->wq_copy_lock[0], flags);
232
233 if (!ret)
234 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
235 "flog reg issued\n");
236
237 return ret;
238}
239
240/*
241 * fnic_queue_wq_copy_desc
242 * Routine to enqueue a wq copy desc
243 */
244static inline int fnic_queue_wq_copy_desc(struct fnic *fnic,
245 struct vnic_wq_copy *wq,
246 struct fnic_io_req *io_req,
247 struct scsi_cmnd *sc,
248 u32 sg_count)
249{
250 struct scatterlist *sg;
251 struct fc_rport *rport = starget_to_rport(scsi_target(sc->device));
252 struct fc_rport_libfc_priv *rp = rport->dd_data;
253 struct host_sg_desc *desc;
254 u8 pri_tag = 0;
255 unsigned int i;
256 unsigned long intr_flags;
257 int flags;
258 u8 exch_flags;
259 struct scsi_lun fc_lun;
260 char msg[2];
261
262 if (sg_count) {
263 BUG_ON(sg_count < 0);
264 BUG_ON(sg_count > FNIC_MAX_SG_DESC_CNT);
265
266 /* For each SGE, create a device desc entry */
267 desc = io_req->sgl_list;
268 for_each_sg(scsi_sglist(sc), sg, sg_count, i) {
269 desc->addr = cpu_to_le64(sg_dma_address(sg));
270 desc->len = cpu_to_le32(sg_dma_len(sg));
271 desc->_resvd = 0;
272 desc++;
273 }
274
275 io_req->sgl_list_pa = pci_map_single
276 (fnic->pdev,
277 io_req->sgl_list,
278 sizeof(io_req->sgl_list[0]) * sg_count,
279 PCI_DMA_TODEVICE);
280 }
281
282 io_req->sense_buf_pa = pci_map_single(fnic->pdev,
283 sc->sense_buffer,
284 SCSI_SENSE_BUFFERSIZE,
285 PCI_DMA_FROMDEVICE);
286
287 int_to_scsilun(sc->device->lun, &fc_lun);
288
289 pri_tag = FCPIO_ICMND_PTA_SIMPLE;
290 msg[0] = MSG_SIMPLE_TAG;
291 scsi_populate_tag_msg(sc, msg);
292 if (msg[0] == MSG_ORDERED_TAG)
293 pri_tag = FCPIO_ICMND_PTA_ORDERED;
294
295 /* Enqueue the descriptor in the Copy WQ */
296 spin_lock_irqsave(&fnic->wq_copy_lock[0], intr_flags);
297
298 if (vnic_wq_copy_desc_avail(wq) <= fnic->wq_copy_desc_low[0])
299 free_wq_copy_descs(fnic, wq);
300
301 if (unlikely(!vnic_wq_copy_desc_avail(wq))) {
302 spin_unlock_irqrestore(&fnic->wq_copy_lock[0], intr_flags);
303 return SCSI_MLQUEUE_HOST_BUSY;
304 }
305
306 flags = 0;
307 if (sc->sc_data_direction == DMA_FROM_DEVICE)
308 flags = FCPIO_ICMND_RDDATA;
309 else if (sc->sc_data_direction == DMA_TO_DEVICE)
310 flags = FCPIO_ICMND_WRDATA;
311
312 exch_flags = 0;
313 if ((fnic->config.flags & VFCF_FCP_SEQ_LVL_ERR) &&
314 (rp->flags & FC_RP_FLAGS_RETRY))
315 exch_flags |= FCPIO_ICMND_SRFLAG_RETRY;
316
317 fnic_queue_wq_copy_desc_icmnd_16(wq, sc->request->tag,
318 0, exch_flags, io_req->sgl_cnt,
319 SCSI_SENSE_BUFFERSIZE,
320 io_req->sgl_list_pa,
321 io_req->sense_buf_pa,
322 0, /* scsi cmd ref, always 0 */
323 pri_tag, /* scsi pri and tag */
324 flags, /* command flags */
325 sc->cmnd, scsi_bufflen(sc),
326 fc_lun.scsi_lun, io_req->port_id,
327 rport->maxframe_size, rp->r_a_tov,
328 rp->e_d_tov);
329
330 spin_unlock_irqrestore(&fnic->wq_copy_lock[0], intr_flags);
331 return 0;
332}
333
334/*
335 * fnic_queuecommand
336 * Routine to send a scsi cdb
337 * Called with host_lock held and interrupts disabled.
338 */
339int fnic_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
340{
341 struct fc_lport *lp;
342 struct fc_rport *rport;
343 struct fnic_io_req *io_req;
344 struct fnic *fnic;
345 struct vnic_wq_copy *wq;
346 int ret;
347 u32 sg_count;
348 unsigned long flags;
349 unsigned long ptr;
350
351 rport = starget_to_rport(scsi_target(sc->device));
352 ret = fc_remote_port_chkready(rport);
353 if (ret) {
354 sc->result = ret;
355 done(sc);
356 return 0;
357 }
358
359 lp = shost_priv(sc->device->host);
360 if (lp->state != LPORT_ST_READY || !(lp->link_up))
361 return SCSI_MLQUEUE_HOST_BUSY;
362
363 /*
364 * Release host lock, use driver resource specific locks from here.
365 * Don't re-enable interrupts in case they were disabled prior to the
366 * caller disabling them.
367 */
368 spin_unlock(lp->host->host_lock);
369
370 /* Get a new io_req for this SCSI IO */
371 fnic = lport_priv(lp);
372
373 io_req = mempool_alloc(fnic->io_req_pool, GFP_ATOMIC);
374 if (!io_req) {
375 ret = SCSI_MLQUEUE_HOST_BUSY;
376 goto out;
377 }
378 memset(io_req, 0, sizeof(*io_req));
379
380 /* Map the data buffer */
381 sg_count = scsi_dma_map(sc);
382 if (sg_count < 0) {
383 mempool_free(io_req, fnic->io_req_pool);
384 goto out;
385 }
386
387 /* Determine the type of scatter/gather list we need */
388 io_req->sgl_cnt = sg_count;
389 io_req->sgl_type = FNIC_SGL_CACHE_DFLT;
390 if (sg_count > FNIC_DFLT_SG_DESC_CNT)
391 io_req->sgl_type = FNIC_SGL_CACHE_MAX;
392
393 if (sg_count) {
394 io_req->sgl_list =
395 mempool_alloc(fnic->io_sgl_pool[io_req->sgl_type],
396 GFP_ATOMIC | GFP_DMA);
397 if (!io_req->sgl_list) {
398 ret = SCSI_MLQUEUE_HOST_BUSY;
399 scsi_dma_unmap(sc);
400 mempool_free(io_req, fnic->io_req_pool);
401 goto out;
402 }
403
404 /* Cache sgl list allocated address before alignment */
405 io_req->sgl_list_alloc = io_req->sgl_list;
406 ptr = (unsigned long) io_req->sgl_list;
407 if (ptr % FNIC_SG_DESC_ALIGN) {
408 io_req->sgl_list = (struct host_sg_desc *)
409 (((unsigned long) ptr
410 + FNIC_SG_DESC_ALIGN - 1)
411 & ~(FNIC_SG_DESC_ALIGN - 1));
412 }
413 }
414
415 /* initialize rest of io_req */
416 io_req->port_id = rport->port_id;
417 CMD_STATE(sc) = FNIC_IOREQ_CMD_PENDING;
418 CMD_SP(sc) = (char *)io_req;
419 sc->scsi_done = done;
420
421 /* create copy wq desc and enqueue it */
422 wq = &fnic->wq_copy[0];
423 ret = fnic_queue_wq_copy_desc(fnic, wq, io_req, sc, sg_count);
424 if (ret) {
425 /*
426 * In case another thread cancelled the request,
427 * refetch the pointer under the lock.
428 */
429 spinlock_t *io_lock = fnic_io_lock_hash(fnic, sc);
430
431 spin_lock_irqsave(io_lock, flags);
432 io_req = (struct fnic_io_req *)CMD_SP(sc);
433 CMD_SP(sc) = NULL;
434 CMD_STATE(sc) = FNIC_IOREQ_CMD_COMPLETE;
435 spin_unlock_irqrestore(io_lock, flags);
436 if (io_req) {
437 fnic_release_ioreq_buf(fnic, io_req, sc);
438 mempool_free(io_req, fnic->io_req_pool);
439 }
440 }
441out:
442 /* acquire host lock before returning to SCSI */
443 spin_lock(lp->host->host_lock);
444 return ret;
445}
446
447/*
448 * fnic_fcpio_fw_reset_cmpl_handler
449 * Routine to handle fw reset completion
450 */
451static int fnic_fcpio_fw_reset_cmpl_handler(struct fnic *fnic,
452 struct fcpio_fw_req *desc)
453{
454 u8 type;
455 u8 hdr_status;
456 struct fcpio_tag tag;
457 int ret = 0;
458 struct fc_frame *flogi;
459 unsigned long flags;
460
461 fcpio_header_dec(&desc->hdr, &type, &hdr_status, &tag);
462
463 /* Clean up all outstanding io requests */
464 fnic_cleanup_io(fnic, SCSI_NO_TAG);
465
466 spin_lock_irqsave(&fnic->fnic_lock, flags);
467
468 flogi = fnic->flogi;
469 fnic->flogi = NULL;
470
471 /* fnic should be in FC_TRANS_ETH_MODE */
472 if (fnic->state == FNIC_IN_FC_TRANS_ETH_MODE) {
473 /* Check status of reset completion */
474 if (!hdr_status) {
475 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
476 "reset cmpl success\n");
477 /* Ready to send flogi out */
478 fnic->state = FNIC_IN_ETH_MODE;
479 } else {
480 FNIC_SCSI_DBG(KERN_DEBUG,
481 fnic->lport->host,
482 "fnic fw_reset : failed %s\n",
483 fnic_fcpio_status_to_str(hdr_status));
484
485 /*
486 * Unable to change to eth mode, cannot send out flogi
487 * Change state to fc mode, so that subsequent Flogi
488 * requests from libFC will cause more attempts to
489 * reset the firmware. Free the cached flogi
490 */
491 fnic->state = FNIC_IN_FC_MODE;
492 ret = -1;
493 }
494 } else {
495 FNIC_SCSI_DBG(KERN_DEBUG,
496 fnic->lport->host,
497 "Unexpected state %s while processing"
498 " reset cmpl\n", fnic_state_to_str(fnic->state));
499 ret = -1;
500 }
501
502 /* Thread removing device blocks till firmware reset is complete */
503 if (fnic->remove_wait)
504 complete(fnic->remove_wait);
505
506 /*
507 * If fnic is being removed, or fw reset failed
508 * free the flogi frame. Else, send it out
509 */
510 if (fnic->remove_wait || ret) {
511 fnic->flogi_oxid = FC_XID_UNKNOWN;
512 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
513 if (flogi)
514 dev_kfree_skb_irq(fp_skb(flogi));
515 goto reset_cmpl_handler_end;
516 }
517
518 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
519
520 if (flogi)
521 ret = fnic_send_frame(fnic, flogi);
522
523 reset_cmpl_handler_end:
524 return ret;
525}
526
527/*
528 * fnic_fcpio_flogi_reg_cmpl_handler
529 * Routine to handle flogi register completion
530 */
531static int fnic_fcpio_flogi_reg_cmpl_handler(struct fnic *fnic,
532 struct fcpio_fw_req *desc)
533{
534 u8 type;
535 u8 hdr_status;
536 struct fcpio_tag tag;
537 int ret = 0;
538 struct fc_frame *flogi_resp = NULL;
539 unsigned long flags;
540 struct sk_buff *skb;
541
542 fcpio_header_dec(&desc->hdr, &type, &hdr_status, &tag);
543
544 /* Update fnic state based on status of flogi reg completion */
545 spin_lock_irqsave(&fnic->fnic_lock, flags);
546
547 flogi_resp = fnic->flogi_resp;
548 fnic->flogi_resp = NULL;
549
550 if (fnic->state == FNIC_IN_ETH_TRANS_FC_MODE) {
551
552 /* Check flogi registration completion status */
553 if (!hdr_status) {
554 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
555 "flog reg succeeded\n");
556 fnic->state = FNIC_IN_FC_MODE;
557 } else {
558 FNIC_SCSI_DBG(KERN_DEBUG,
559 fnic->lport->host,
560 "fnic flogi reg :failed %s\n",
561 fnic_fcpio_status_to_str(hdr_status));
562 fnic->state = FNIC_IN_ETH_MODE;
563 ret = -1;
564 }
565 } else {
566 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
567 "Unexpected fnic state %s while"
568 " processing flogi reg completion\n",
569 fnic_state_to_str(fnic->state));
570 ret = -1;
571 }
572
573 /* Successful flogi reg cmpl, pass frame to LibFC */
574 if (!ret && flogi_resp) {
575 if (fnic->stop_rx_link_events) {
576 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
577 goto reg_cmpl_handler_end;
578 }
579 skb = (struct sk_buff *)flogi_resp;
580 /* Use fr_flags to indicate whether flogi resp or not */
581 fr_flags(flogi_resp) = 1;
582 fr_dev(flogi_resp) = fnic->lport;
583 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
584
585 skb_queue_tail(&fnic->frame_queue, skb);
586 queue_work(fnic_event_queue, &fnic->frame_work);
587
588 } else {
589 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
590 if (flogi_resp)
591 dev_kfree_skb_irq(fp_skb(flogi_resp));
592 }
593
594reg_cmpl_handler_end:
595 return ret;
596}
597
598static inline int is_ack_index_in_range(struct vnic_wq_copy *wq,
599 u16 request_out)
600{
601 if (wq->to_clean_index <= wq->to_use_index) {
602 /* out of range, stale request_out index */
603 if (request_out < wq->to_clean_index ||
604 request_out >= wq->to_use_index)
605 return 0;
606 } else {
607 /* out of range, stale request_out index */
608 if (request_out < wq->to_clean_index &&
609 request_out >= wq->to_use_index)
610 return 0;
611 }
612 /* request_out index is in range */
613 return 1;
614}
615
616
617/*
618 * Mark that ack received and store the Ack index. If there are multiple
619 * acks received before Tx thread cleans it up, the latest value will be
620 * used which is correct behavior. This state should be in the copy Wq
621 * instead of in the fnic
622 */
623static inline void fnic_fcpio_ack_handler(struct fnic *fnic,
624 unsigned int cq_index,
625 struct fcpio_fw_req *desc)
626{
627 struct vnic_wq_copy *wq;
628 u16 request_out = desc->u.ack.request_out;
629 unsigned long flags;
630
631 /* mark the ack state */
632 wq = &fnic->wq_copy[cq_index - fnic->raw_wq_count - fnic->rq_count];
633 spin_lock_irqsave(&fnic->wq_copy_lock[0], flags);
634
635 if (is_ack_index_in_range(wq, request_out)) {
636 fnic->fw_ack_index[0] = request_out;
637 fnic->fw_ack_recd[0] = 1;
638 }
639 spin_unlock_irqrestore(&fnic->wq_copy_lock[0], flags);
640}
641
642/*
643 * fnic_fcpio_icmnd_cmpl_handler
644 * Routine to handle icmnd completions
645 */
646static void fnic_fcpio_icmnd_cmpl_handler(struct fnic *fnic,
647 struct fcpio_fw_req *desc)
648{
649 u8 type;
650 u8 hdr_status;
651 struct fcpio_tag tag;
652 u32 id;
653 u64 xfer_len = 0;
654 struct fcpio_icmnd_cmpl *icmnd_cmpl;
655 struct fnic_io_req *io_req;
656 struct scsi_cmnd *sc;
657 unsigned long flags;
658 spinlock_t *io_lock;
659
660 /* Decode the cmpl description to get the io_req id */
661 fcpio_header_dec(&desc->hdr, &type, &hdr_status, &tag);
662 fcpio_tag_id_dec(&tag, &id);
663
664 if (id >= FNIC_MAX_IO_REQ)
665 return;
666
667 sc = scsi_host_find_tag(fnic->lport->host, id);
668 WARN_ON_ONCE(!sc);
669 if (!sc)
670 return;
671
672 io_lock = fnic_io_lock_hash(fnic, sc);
673 spin_lock_irqsave(io_lock, flags);
674 io_req = (struct fnic_io_req *)CMD_SP(sc);
675 WARN_ON_ONCE(!io_req);
676 if (!io_req) {
677 spin_unlock_irqrestore(io_lock, flags);
678 return;
679 }
680
681 /* firmware completed the io */
682 io_req->io_completed = 1;
683
684 /*
685 * if SCSI-ML has already issued abort on this command,
686 * ignore completion of the IO. The abts path will clean it up
687 */
688 if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING) {
689 spin_unlock_irqrestore(io_lock, flags);
690 return;
691 }
692
693 /* Mark the IO as complete */
694 CMD_STATE(sc) = FNIC_IOREQ_CMD_COMPLETE;
695
696 icmnd_cmpl = &desc->u.icmnd_cmpl;
697
698 switch (hdr_status) {
699 case FCPIO_SUCCESS:
700 sc->result = (DID_OK << 16) | icmnd_cmpl->scsi_status;
701 xfer_len = scsi_bufflen(sc);
702 scsi_set_resid(sc, icmnd_cmpl->residual);
703
704 if (icmnd_cmpl->flags & FCPIO_ICMND_CMPL_RESID_UNDER)
705 xfer_len -= icmnd_cmpl->residual;
706
707 /*
708 * If queue_full, then try to reduce queue depth for all
709 * LUNS on the target. Todo: this should be accompanied
710 * by a periodic queue_depth rampup based on successful
711 * IO completion.
712 */
713 if (icmnd_cmpl->scsi_status == QUEUE_FULL) {
714 struct scsi_device *t_sdev;
715 int qd = 0;
716
717 shost_for_each_device(t_sdev, sc->device->host) {
718 if (t_sdev->id != sc->device->id)
719 continue;
720
721 if (t_sdev->queue_depth > 1) {
722 qd = scsi_track_queue_full
723 (t_sdev,
724 t_sdev->queue_depth - 1);
725 if (qd == -1)
726 qd = t_sdev->host->cmd_per_lun;
727 shost_printk(KERN_INFO,
728 fnic->lport->host,
729 "scsi[%d:%d:%d:%d"
730 "] queue full detected,"
731 "new depth = %d\n",
732 t_sdev->host->host_no,
733 t_sdev->channel,
734 t_sdev->id, t_sdev->lun,
735 t_sdev->queue_depth);
736 }
737 }
738 }
739 break;
740
741 case FCPIO_TIMEOUT: /* request was timed out */
742 sc->result = (DID_TIME_OUT << 16) | icmnd_cmpl->scsi_status;
743 break;
744
745 case FCPIO_ABORTED: /* request was aborted */
746 sc->result = (DID_ERROR << 16) | icmnd_cmpl->scsi_status;
747 break;
748
749 case FCPIO_DATA_CNT_MISMATCH: /* recv/sent more/less data than exp. */
750 scsi_set_resid(sc, icmnd_cmpl->residual);
751 sc->result = (DID_ERROR << 16) | icmnd_cmpl->scsi_status;
752 break;
753
754 case FCPIO_OUT_OF_RESOURCE: /* out of resources to complete request */
755 sc->result = (DID_REQUEUE << 16) | icmnd_cmpl->scsi_status;
756 break;
757 case FCPIO_INVALID_HEADER: /* header contains invalid data */
758 case FCPIO_INVALID_PARAM: /* some parameter in request invalid */
759 case FCPIO_REQ_NOT_SUPPORTED:/* request type is not supported */
760 case FCPIO_IO_NOT_FOUND: /* requested I/O was not found */
761 case FCPIO_SGL_INVALID: /* request was aborted due to sgl error */
762 case FCPIO_MSS_INVALID: /* request was aborted due to mss error */
763 case FCPIO_FW_ERR: /* request was terminated due fw error */
764 default:
765 shost_printk(KERN_ERR, fnic->lport->host, "hdr status = %s\n",
766 fnic_fcpio_status_to_str(hdr_status));
767 sc->result = (DID_ERROR << 16) | icmnd_cmpl->scsi_status;
768 break;
769 }
770
771 /* Break link with the SCSI command */
772 CMD_SP(sc) = NULL;
773
774 spin_unlock_irqrestore(io_lock, flags);
775
776 fnic_release_ioreq_buf(fnic, io_req, sc);
777
778 mempool_free(io_req, fnic->io_req_pool);
779
780 if (sc->sc_data_direction == DMA_FROM_DEVICE) {
781 fnic->lport->host_stats.fcp_input_requests++;
782 fnic->fcp_input_bytes += xfer_len;
783 } else if (sc->sc_data_direction == DMA_TO_DEVICE) {
784 fnic->lport->host_stats.fcp_output_requests++;
785 fnic->fcp_output_bytes += xfer_len;
786 } else
787 fnic->lport->host_stats.fcp_control_requests++;
788
789 /* Call SCSI completion function to complete the IO */
790 if (sc->scsi_done)
791 sc->scsi_done(sc);
792
793}
794
795/* fnic_fcpio_itmf_cmpl_handler
796 * Routine to handle itmf completions
797 */
798static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
799 struct fcpio_fw_req *desc)
800{
801 u8 type;
802 u8 hdr_status;
803 struct fcpio_tag tag;
804 u32 id;
805 struct scsi_cmnd *sc;
806 struct fnic_io_req *io_req;
807 unsigned long flags;
808 spinlock_t *io_lock;
809
810 fcpio_header_dec(&desc->hdr, &type, &hdr_status, &tag);
811 fcpio_tag_id_dec(&tag, &id);
812
813 if ((id & FNIC_TAG_MASK) >= FNIC_MAX_IO_REQ)
814 return;
815
816 sc = scsi_host_find_tag(fnic->lport->host, id & FNIC_TAG_MASK);
817 WARN_ON_ONCE(!sc);
818 if (!sc)
819 return;
820
821 io_lock = fnic_io_lock_hash(fnic, sc);
822 spin_lock_irqsave(io_lock, flags);
823 io_req = (struct fnic_io_req *)CMD_SP(sc);
824 WARN_ON_ONCE(!io_req);
825 if (!io_req) {
826 spin_unlock_irqrestore(io_lock, flags);
827 return;
828 }
829
830 if (id & FNIC_TAG_ABORT) {
831 /* Completion of abort cmd */
832 if (CMD_STATE(sc) != FNIC_IOREQ_ABTS_PENDING) {
833 /* This is a late completion. Ignore it */
834 spin_unlock_irqrestore(io_lock, flags);
835 return;
836 }
837 CMD_STATE(sc) = FNIC_IOREQ_ABTS_COMPLETE;
838 CMD_ABTS_STATUS(sc) = hdr_status;
839
840 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
841 "abts cmpl recd. id %d status %s\n",
842 (int)(id & FNIC_TAG_MASK),
843 fnic_fcpio_status_to_str(hdr_status));
844
845 /*
846 * If scsi_eh thread is blocked waiting for abts to complete,
847 * signal completion to it. IO will be cleaned in the thread
848 * else clean it in this context
849 */
850 if (io_req->abts_done) {
851 complete(io_req->abts_done);
852 spin_unlock_irqrestore(io_lock, flags);
853 } else {
854 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
855 "abts cmpl, completing IO\n");
856 CMD_SP(sc) = NULL;
857 sc->result = (DID_ERROR << 16);
858
859 spin_unlock_irqrestore(io_lock, flags);
860
861 fnic_release_ioreq_buf(fnic, io_req, sc);
862 mempool_free(io_req, fnic->io_req_pool);
863 if (sc->scsi_done)
864 sc->scsi_done(sc);
865 }
866
867 } else if (id & FNIC_TAG_DEV_RST) {
868 /* Completion of device reset */
869 CMD_LR_STATUS(sc) = hdr_status;
870 CMD_STATE(sc) = FNIC_IOREQ_CMD_COMPLETE;
871 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
872 "dev reset cmpl recd. id %d status %s\n",
873 (int)(id & FNIC_TAG_MASK),
874 fnic_fcpio_status_to_str(hdr_status));
875 if (io_req->dr_done)
876 complete(io_req->dr_done);
877 spin_unlock_irqrestore(io_lock, flags);
878
879 } else {
880 shost_printk(KERN_ERR, fnic->lport->host,
881 "Unexpected itmf io state %s tag %x\n",
882 fnic_ioreq_state_to_str(CMD_STATE(sc)), id);
883 spin_unlock_irqrestore(io_lock, flags);
884 }
885
886}
887
888/*
889 * fnic_fcpio_cmpl_handler
890 * Routine to service the cq for wq_copy
891 */
892static int fnic_fcpio_cmpl_handler(struct vnic_dev *vdev,
893 unsigned int cq_index,
894 struct fcpio_fw_req *desc)
895{
896 struct fnic *fnic = vnic_dev_priv(vdev);
897 int ret = 0;
898
899 switch (desc->hdr.type) {
900 case FCPIO_ACK: /* fw copied copy wq desc to its queue */
901 fnic_fcpio_ack_handler(fnic, cq_index, desc);
902 break;
903
904 case FCPIO_ICMND_CMPL: /* fw completed a command */
905 fnic_fcpio_icmnd_cmpl_handler(fnic, desc);
906 break;
907
908 case FCPIO_ITMF_CMPL: /* fw completed itmf (abort cmd, lun reset)*/
909 fnic_fcpio_itmf_cmpl_handler(fnic, desc);
910 break;
911
912 case FCPIO_FLOGI_REG_CMPL: /* fw completed flogi_reg */
913 ret = fnic_fcpio_flogi_reg_cmpl_handler(fnic, desc);
914 break;
915
916 case FCPIO_RESET_CMPL: /* fw completed reset */
917 ret = fnic_fcpio_fw_reset_cmpl_handler(fnic, desc);
918 break;
919
920 default:
921 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
922 "firmware completion type %d\n",
923 desc->hdr.type);
924 break;
925 }
926
927 return ret;
928}
929
930/*
931 * fnic_wq_copy_cmpl_handler
932 * Routine to process wq copy
933 */
934int fnic_wq_copy_cmpl_handler(struct fnic *fnic, int copy_work_to_do)
935{
936 unsigned int wq_work_done = 0;
937 unsigned int i, cq_index;
938 unsigned int cur_work_done;
939
940 for (i = 0; i < fnic->wq_copy_count; i++) {
941 cq_index = i + fnic->raw_wq_count + fnic->rq_count;
942 cur_work_done = vnic_cq_copy_service(&fnic->cq[cq_index],
943 fnic_fcpio_cmpl_handler,
944 copy_work_to_do);
945 wq_work_done += cur_work_done;
946 }
947 return wq_work_done;
948}
949
950static void fnic_cleanup_io(struct fnic *fnic, int exclude_id)
951{
952 unsigned int i;
953 struct fnic_io_req *io_req;
954 unsigned long flags = 0;
955 struct scsi_cmnd *sc;
956 spinlock_t *io_lock;
957
958 for (i = 0; i < FNIC_MAX_IO_REQ; i++) {
959 if (i == exclude_id)
960 continue;
961
962 sc = scsi_host_find_tag(fnic->lport->host, i);
963 if (!sc)
964 continue;
965
966 io_lock = fnic_io_lock_hash(fnic, sc);
967 spin_lock_irqsave(io_lock, flags);
968 io_req = (struct fnic_io_req *)CMD_SP(sc);
969 if (!io_req) {
970 spin_unlock_irqrestore(io_lock, flags);
971 goto cleanup_scsi_cmd;
972 }
973
974 CMD_SP(sc) = NULL;
975
976 spin_unlock_irqrestore(io_lock, flags);
977
978 /*
979 * If there is a scsi_cmnd associated with this io_req, then
980 * free the corresponding state
981 */
982 fnic_release_ioreq_buf(fnic, io_req, sc);
983 mempool_free(io_req, fnic->io_req_pool);
984
985cleanup_scsi_cmd:
986 sc->result = DID_TRANSPORT_DISRUPTED << 16;
987 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, "fnic_cleanup_io:"
988 " DID_TRANSPORT_DISRUPTED\n");
989
990 /* Complete the command to SCSI */
991 if (sc->scsi_done)
992 sc->scsi_done(sc);
993 }
994}
995
996void fnic_wq_copy_cleanup_handler(struct vnic_wq_copy *wq,
997 struct fcpio_host_req *desc)
998{
999 u32 id;
1000 struct fnic *fnic = vnic_dev_priv(wq->vdev);
1001 struct fnic_io_req *io_req;
1002 struct scsi_cmnd *sc;
1003 unsigned long flags;
1004 spinlock_t *io_lock;
1005
1006 /* get the tag reference */
1007 fcpio_tag_id_dec(&desc->hdr.tag, &id);
1008 id &= FNIC_TAG_MASK;
1009
1010 if (id >= FNIC_MAX_IO_REQ)
1011 return;
1012
1013 sc = scsi_host_find_tag(fnic->lport->host, id);
1014 if (!sc)
1015 return;
1016
1017 io_lock = fnic_io_lock_hash(fnic, sc);
1018 spin_lock_irqsave(io_lock, flags);
1019
1020 /* Get the IO context which this desc refers to */
1021 io_req = (struct fnic_io_req *)CMD_SP(sc);
1022
1023 /* fnic interrupts are turned off by now */
1024
1025 if (!io_req) {
1026 spin_unlock_irqrestore(io_lock, flags);
1027 goto wq_copy_cleanup_scsi_cmd;
1028 }
1029
1030 CMD_SP(sc) = NULL;
1031
1032 spin_unlock_irqrestore(io_lock, flags);
1033
1034 fnic_release_ioreq_buf(fnic, io_req, sc);
1035 mempool_free(io_req, fnic->io_req_pool);
1036
1037wq_copy_cleanup_scsi_cmd:
1038 sc->result = DID_NO_CONNECT << 16;
1039 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, "wq_copy_cleanup_handler:"
1040 " DID_NO_CONNECT\n");
1041
1042 if (sc->scsi_done)
1043 sc->scsi_done(sc);
1044}
1045
1046static inline int fnic_queue_abort_io_req(struct fnic *fnic, int tag,
1047 u32 task_req, u8 *fc_lun,
1048 struct fnic_io_req *io_req)
1049{
1050 struct vnic_wq_copy *wq = &fnic->wq_copy[0];
1051 unsigned long flags;
1052
1053 spin_lock_irqsave(&fnic->wq_copy_lock[0], flags);
1054
1055 if (vnic_wq_copy_desc_avail(wq) <= fnic->wq_copy_desc_low[0])
1056 free_wq_copy_descs(fnic, wq);
1057
1058 if (!vnic_wq_copy_desc_avail(wq)) {
1059 spin_unlock_irqrestore(&fnic->wq_copy_lock[0], flags);
1060 return 1;
1061 }
1062 fnic_queue_wq_copy_desc_itmf(wq, tag | FNIC_TAG_ABORT,
1063 0, task_req, tag, fc_lun, io_req->port_id,
1064 fnic->config.ra_tov, fnic->config.ed_tov);
1065
1066 spin_unlock_irqrestore(&fnic->wq_copy_lock[0], flags);
1067 return 0;
1068}
1069
1070void fnic_rport_exch_reset(struct fnic *fnic, u32 port_id)
1071{
1072 int tag;
1073 struct fnic_io_req *io_req;
1074 spinlock_t *io_lock;
1075 unsigned long flags;
1076 struct scsi_cmnd *sc;
1077 struct scsi_lun fc_lun;
1078 enum fnic_ioreq_state old_ioreq_state;
1079
1080 FNIC_SCSI_DBG(KERN_DEBUG,
1081 fnic->lport->host,
1082 "fnic_rport_reset_exch called portid 0x%06x\n",
1083 port_id);
1084
1085 if (fnic->in_remove)
1086 return;
1087
1088 for (tag = 0; tag < FNIC_MAX_IO_REQ; tag++) {
1089 sc = scsi_host_find_tag(fnic->lport->host, tag);
1090 if (!sc)
1091 continue;
1092
1093 io_lock = fnic_io_lock_hash(fnic, sc);
1094 spin_lock_irqsave(io_lock, flags);
1095
1096 io_req = (struct fnic_io_req *)CMD_SP(sc);
1097
1098 if (!io_req || io_req->port_id != port_id) {
1099 spin_unlock_irqrestore(io_lock, flags);
1100 continue;
1101 }
1102
1103 /*
1104 * Found IO that is still pending with firmware and
1105 * belongs to rport that went away
1106 */
1107 if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING) {
1108 spin_unlock_irqrestore(io_lock, flags);
1109 continue;
1110 }
1111 old_ioreq_state = CMD_STATE(sc);
1112 CMD_STATE(sc) = FNIC_IOREQ_ABTS_PENDING;
1113 CMD_ABTS_STATUS(sc) = FCPIO_INVALID_CODE;
1114
1115 BUG_ON(io_req->abts_done);
1116
1117 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
1118 "fnic_rport_reset_exch: Issuing abts\n");
1119
1120 spin_unlock_irqrestore(io_lock, flags);
1121
1122 /* Now queue the abort command to firmware */
1123 int_to_scsilun(sc->device->lun, &fc_lun);
1124
1125 if (fnic_queue_abort_io_req(fnic, tag,
1126 FCPIO_ITMF_ABT_TASK_TERM,
1127 fc_lun.scsi_lun, io_req)) {
1128 /*
1129 * Revert the cmd state back to old state, if
1130 * it hasnt changed in between. This cmd will get
1131 * aborted later by scsi_eh, or cleaned up during
1132 * lun reset
1133 */
1134 io_lock = fnic_io_lock_hash(fnic, sc);
1135
1136 spin_lock_irqsave(io_lock, flags);
1137 if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING)
1138 CMD_STATE(sc) = old_ioreq_state;
1139 spin_unlock_irqrestore(io_lock, flags);
1140 }
1141 }
1142
1143}
1144
1145void fnic_terminate_rport_io(struct fc_rport *rport)
1146{
1147 int tag;
1148 struct fnic_io_req *io_req;
1149 spinlock_t *io_lock;
1150 unsigned long flags;
1151 struct scsi_cmnd *sc;
1152 struct scsi_lun fc_lun;
1153 struct fc_rport_libfc_priv *rdata = rport->dd_data;
1154 struct fc_lport *lport = rdata->local_port;
1155 struct fnic *fnic = lport_priv(lport);
1156 struct fc_rport *cmd_rport;
1157 enum fnic_ioreq_state old_ioreq_state;
1158
1159 FNIC_SCSI_DBG(KERN_DEBUG,
1160 fnic->lport->host, "fnic_terminate_rport_io called"
1161 " wwpn 0x%llx, wwnn0x%llx, portid 0x%06x\n",
1162 rport->port_name, rport->node_name,
1163 rport->port_id);
1164
1165 if (fnic->in_remove)
1166 return;
1167
1168 for (tag = 0; tag < FNIC_MAX_IO_REQ; tag++) {
1169 sc = scsi_host_find_tag(fnic->lport->host, tag);
1170 if (!sc)
1171 continue;
1172
1173 cmd_rport = starget_to_rport(scsi_target(sc->device));
1174 if (rport != cmd_rport)
1175 continue;
1176
1177 io_lock = fnic_io_lock_hash(fnic, sc);
1178 spin_lock_irqsave(io_lock, flags);
1179
1180 io_req = (struct fnic_io_req *)CMD_SP(sc);
1181
1182 if (!io_req || rport != cmd_rport) {
1183 spin_unlock_irqrestore(io_lock, flags);
1184 continue;
1185 }
1186
1187 /*
1188 * Found IO that is still pending with firmware and
1189 * belongs to rport that went away
1190 */
1191 if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING) {
1192 spin_unlock_irqrestore(io_lock, flags);
1193 continue;
1194 }
1195 old_ioreq_state = CMD_STATE(sc);
1196 CMD_STATE(sc) = FNIC_IOREQ_ABTS_PENDING;
1197 CMD_ABTS_STATUS(sc) = FCPIO_INVALID_CODE;
1198
1199 BUG_ON(io_req->abts_done);
1200
1201 FNIC_SCSI_DBG(KERN_DEBUG,
1202 fnic->lport->host,
1203 "fnic_terminate_rport_io: Issuing abts\n");
1204
1205 spin_unlock_irqrestore(io_lock, flags);
1206
1207 /* Now queue the abort command to firmware */
1208 int_to_scsilun(sc->device->lun, &fc_lun);
1209
1210 if (fnic_queue_abort_io_req(fnic, tag,
1211 FCPIO_ITMF_ABT_TASK_TERM,
1212 fc_lun.scsi_lun, io_req)) {
1213 /*
1214 * Revert the cmd state back to old state, if
1215 * it hasnt changed in between. This cmd will get
1216 * aborted later by scsi_eh, or cleaned up during
1217 * lun reset
1218 */
1219 io_lock = fnic_io_lock_hash(fnic, sc);
1220
1221 spin_lock_irqsave(io_lock, flags);
1222 if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING)
1223 CMD_STATE(sc) = old_ioreq_state;
1224 spin_unlock_irqrestore(io_lock, flags);
1225 }
1226 }
1227
1228}
1229
1230static void fnic_block_error_handler(struct scsi_cmnd *sc)
1231{
1232 struct Scsi_Host *shost = sc->device->host;
1233 struct fc_rport *rport = starget_to_rport(scsi_target(sc->device));
1234 unsigned long flags;
1235
1236 spin_lock_irqsave(shost->host_lock, flags);
1237 while (rport->port_state == FC_PORTSTATE_BLOCKED) {
1238 spin_unlock_irqrestore(shost->host_lock, flags);
1239 msleep(1000);
1240 spin_lock_irqsave(shost->host_lock, flags);
1241 }
1242 spin_unlock_irqrestore(shost->host_lock, flags);
1243
1244}
1245
1246/*
1247 * This function is exported to SCSI for sending abort cmnds.
1248 * A SCSI IO is represented by a io_req in the driver.
1249 * The ioreq is linked to the SCSI Cmd, thus a link with the ULP's IO.
1250 */
1251int fnic_abort_cmd(struct scsi_cmnd *sc)
1252{
1253 struct fc_lport *lp;
1254 struct fnic *fnic;
1255 struct fnic_io_req *io_req;
1256 struct fc_rport *rport;
1257 spinlock_t *io_lock;
1258 unsigned long flags;
1259 int ret = SUCCESS;
1260 u32 task_req;
1261 struct scsi_lun fc_lun;
1262 DECLARE_COMPLETION_ONSTACK(tm_done);
1263
1264 /* Wait for rport to unblock */
1265 fnic_block_error_handler(sc);
1266
1267 /* Get local-port, check ready and link up */
1268 lp = shost_priv(sc->device->host);
1269
1270 fnic = lport_priv(lp);
1271 FNIC_SCSI_DBG(KERN_DEBUG,
1272 fnic->lport->host,
1273 "Abort Cmd called FCID 0x%x, LUN 0x%x TAG %d\n",
1274 (starget_to_rport(scsi_target(sc->device)))->port_id,
1275 sc->device->lun, sc->request->tag);
1276
1277 if (lp->state != LPORT_ST_READY || !(lp->link_up)) {
1278 ret = FAILED;
1279 goto fnic_abort_cmd_end;
1280 }
1281
1282 /*
1283 * Avoid a race between SCSI issuing the abort and the device
1284 * completing the command.
1285 *
1286 * If the command is already completed by the fw cmpl code,
1287 * we just return SUCCESS from here. This means that the abort
1288 * succeeded. In the SCSI ML, since the timeout for command has
1289 * happened, the completion wont actually complete the command
1290 * and it will be considered as an aborted command
1291 *
1292 * The CMD_SP will not be cleared except while holding io_req_lock.
1293 */
1294 io_lock = fnic_io_lock_hash(fnic, sc);
1295 spin_lock_irqsave(io_lock, flags);
1296 io_req = (struct fnic_io_req *)CMD_SP(sc);
1297 if (!io_req) {
1298 spin_unlock_irqrestore(io_lock, flags);
1299 goto fnic_abort_cmd_end;
1300 }
1301
1302 io_req->abts_done = &tm_done;
1303
1304 if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING) {
1305 spin_unlock_irqrestore(io_lock, flags);
1306 goto wait_pending;
1307 }
1308 /*
1309 * Command is still pending, need to abort it
1310 * If the firmware completes the command after this point,
1311 * the completion wont be done till mid-layer, since abort
1312 * has already started.
1313 */
1314 CMD_STATE(sc) = FNIC_IOREQ_ABTS_PENDING;
1315 CMD_ABTS_STATUS(sc) = FCPIO_INVALID_CODE;
1316
1317 spin_unlock_irqrestore(io_lock, flags);
1318
1319 /*
1320 * Check readiness of the remote port. If the path to remote
1321 * port is up, then send abts to the remote port to terminate
1322 * the IO. Else, just locally terminate the IO in the firmware
1323 */
1324 rport = starget_to_rport(scsi_target(sc->device));
1325 if (fc_remote_port_chkready(rport) == 0)
1326 task_req = FCPIO_ITMF_ABT_TASK;
1327 else
1328 task_req = FCPIO_ITMF_ABT_TASK_TERM;
1329
1330 /* Now queue the abort command to firmware */
1331 int_to_scsilun(sc->device->lun, &fc_lun);
1332
1333 if (fnic_queue_abort_io_req(fnic, sc->request->tag, task_req,
1334 fc_lun.scsi_lun, io_req)) {
1335 spin_lock_irqsave(io_lock, flags);
1336 io_req = (struct fnic_io_req *)CMD_SP(sc);
1337 if (io_req)
1338 io_req->abts_done = NULL;
1339 spin_unlock_irqrestore(io_lock, flags);
1340 ret = FAILED;
1341 goto fnic_abort_cmd_end;
1342 }
1343
1344 /*
1345 * We queued an abort IO, wait for its completion.
1346 * Once the firmware completes the abort command, it will
1347 * wake up this thread.
1348 */
1349 wait_pending:
1350 wait_for_completion_timeout(&tm_done,
1351 msecs_to_jiffies
1352 (2 * fnic->config.ra_tov +
1353 fnic->config.ed_tov));
1354
1355 /* Check the abort status */
1356 spin_lock_irqsave(io_lock, flags);
1357
1358 io_req = (struct fnic_io_req *)CMD_SP(sc);
1359 if (!io_req) {
1360 spin_unlock_irqrestore(io_lock, flags);
1361 ret = FAILED;
1362 goto fnic_abort_cmd_end;
1363 }
1364 io_req->abts_done = NULL;
1365
1366 /* fw did not complete abort, timed out */
1367 if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING) {
1368 spin_unlock_irqrestore(io_lock, flags);
1369 ret = FAILED;
1370 goto fnic_abort_cmd_end;
1371 }
1372
1373 /*
1374 * firmware completed the abort, check the status,
1375 * free the io_req irrespective of failure or success
1376 */
1377 if (CMD_ABTS_STATUS(sc) != FCPIO_SUCCESS)
1378 ret = FAILED;
1379
1380 CMD_SP(sc) = NULL;
1381
1382 spin_unlock_irqrestore(io_lock, flags);
1383
1384 fnic_release_ioreq_buf(fnic, io_req, sc);
1385 mempool_free(io_req, fnic->io_req_pool);
1386
1387fnic_abort_cmd_end:
1388 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
1389 "Returning from abort cmd %s\n",
1390 (ret == SUCCESS) ?
1391 "SUCCESS" : "FAILED");
1392 return ret;
1393}
1394
1395static inline int fnic_queue_dr_io_req(struct fnic *fnic,
1396 struct scsi_cmnd *sc,
1397 struct fnic_io_req *io_req)
1398{
1399 struct vnic_wq_copy *wq = &fnic->wq_copy[0];
1400 struct scsi_lun fc_lun;
1401 int ret = 0;
1402 unsigned long intr_flags;
1403
1404 spin_lock_irqsave(&fnic->wq_copy_lock[0], intr_flags);
1405
1406 if (vnic_wq_copy_desc_avail(wq) <= fnic->wq_copy_desc_low[0])
1407 free_wq_copy_descs(fnic, wq);
1408
1409 if (!vnic_wq_copy_desc_avail(wq)) {
1410 ret = -EAGAIN;
1411 goto lr_io_req_end;
1412 }
1413
1414 /* fill in the lun info */
1415 int_to_scsilun(sc->device->lun, &fc_lun);
1416
1417 fnic_queue_wq_copy_desc_itmf(wq, sc->request->tag | FNIC_TAG_DEV_RST,
1418 0, FCPIO_ITMF_LUN_RESET, SCSI_NO_TAG,
1419 fc_lun.scsi_lun, io_req->port_id,
1420 fnic->config.ra_tov, fnic->config.ed_tov);
1421
1422lr_io_req_end:
1423 spin_unlock_irqrestore(&fnic->wq_copy_lock[0], intr_flags);
1424
1425 return ret;
1426}
1427
1428/*
1429 * Clean up any pending aborts on the lun
1430 * For each outstanding IO on this lun, whose abort is not completed by fw,
1431 * issue a local abort. Wait for abort to complete. Return 0 if all commands
1432 * successfully aborted, 1 otherwise
1433 */
1434static int fnic_clean_pending_aborts(struct fnic *fnic,
1435 struct scsi_cmnd *lr_sc)
1436{
1437 int tag;
1438 struct fnic_io_req *io_req;
1439 spinlock_t *io_lock;
1440 unsigned long flags;
1441 int ret = 0;
1442 struct scsi_cmnd *sc;
1443 struct fc_rport *rport;
1444 struct scsi_lun fc_lun;
1445 struct scsi_device *lun_dev = lr_sc->device;
1446 DECLARE_COMPLETION_ONSTACK(tm_done);
1447
1448 for (tag = 0; tag < FNIC_MAX_IO_REQ; tag++) {
1449 sc = scsi_host_find_tag(fnic->lport->host, tag);
1450 /*
1451 * ignore this lun reset cmd or cmds that do not belong to
1452 * this lun
1453 */
1454 if (!sc || sc == lr_sc || sc->device != lun_dev)
1455 continue;
1456
1457 io_lock = fnic_io_lock_hash(fnic, sc);
1458 spin_lock_irqsave(io_lock, flags);
1459
1460 io_req = (struct fnic_io_req *)CMD_SP(sc);
1461
1462 if (!io_req || sc->device != lun_dev) {
1463 spin_unlock_irqrestore(io_lock, flags);
1464 continue;
1465 }
1466
1467 /*
1468 * Found IO that is still pending with firmware and
1469 * belongs to the LUN that we are resetting
1470 */
1471 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
1472 "Found IO in %s on lun\n",
1473 fnic_ioreq_state_to_str(CMD_STATE(sc)));
1474
1475 BUG_ON(CMD_STATE(sc) != FNIC_IOREQ_ABTS_PENDING);
1476
1477 CMD_ABTS_STATUS(sc) = FCPIO_INVALID_CODE;
1478 io_req->abts_done = &tm_done;
1479 spin_unlock_irqrestore(io_lock, flags);
1480
1481 /* Now queue the abort command to firmware */
1482 int_to_scsilun(sc->device->lun, &fc_lun);
1483 rport = starget_to_rport(scsi_target(sc->device));
1484
1485 if (fnic_queue_abort_io_req(fnic, tag,
1486 FCPIO_ITMF_ABT_TASK_TERM,
1487 fc_lun.scsi_lun, io_req)) {
1488 spin_lock_irqsave(io_lock, flags);
1489 io_req = (struct fnic_io_req *)CMD_SP(sc);
1490 if (io_req)
1491 io_req->abts_done = NULL;
1492 spin_unlock_irqrestore(io_lock, flags);
1493 ret = 1;
1494 goto clean_pending_aborts_end;
1495 }
1496
1497 wait_for_completion_timeout(&tm_done,
1498 msecs_to_jiffies
1499 (fnic->config.ed_tov));
1500
1501 /* Recheck cmd state to check if it is now aborted */
1502 spin_lock_irqsave(io_lock, flags);
1503 io_req = (struct fnic_io_req *)CMD_SP(sc);
1504 if (!io_req) {
1505 spin_unlock_irqrestore(io_lock, flags);
1506 ret = 1;
1507 goto clean_pending_aborts_end;
1508 }
1509
1510 io_req->abts_done = NULL;
1511
1512 /* if abort is still pending with fw, fail */
1513 if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING) {
1514 spin_unlock_irqrestore(io_lock, flags);
1515 ret = 1;
1516 goto clean_pending_aborts_end;
1517 }
1518 CMD_SP(sc) = NULL;
1519 spin_unlock_irqrestore(io_lock, flags);
1520
1521 fnic_release_ioreq_buf(fnic, io_req, sc);
1522 mempool_free(io_req, fnic->io_req_pool);
1523 }
1524
1525clean_pending_aborts_end:
1526 return ret;
1527}
1528
1529/*
1530 * SCSI Eh thread issues a Lun Reset when one or more commands on a LUN
1531 * fail to get aborted. It calls driver's eh_device_reset with a SCSI command
1532 * on the LUN.
1533 */
1534int fnic_device_reset(struct scsi_cmnd *sc)
1535{
1536 struct fc_lport *lp;
1537 struct fnic *fnic;
1538 struct fnic_io_req *io_req;
1539 struct fc_rport *rport;
1540 int status;
1541 int ret = FAILED;
1542 spinlock_t *io_lock;
1543 unsigned long flags;
1544 DECLARE_COMPLETION_ONSTACK(tm_done);
1545
1546 /* Wait for rport to unblock */
1547 fnic_block_error_handler(sc);
1548
1549 /* Get local-port, check ready and link up */
1550 lp = shost_priv(sc->device->host);
1551
1552 fnic = lport_priv(lp);
1553 FNIC_SCSI_DBG(KERN_DEBUG,
1554 fnic->lport->host,
1555 "Device reset called FCID 0x%x, LUN 0x%x\n",
1556 (starget_to_rport(scsi_target(sc->device)))->port_id,
1557 sc->device->lun);
1558
1559
1560 if (lp->state != LPORT_ST_READY || !(lp->link_up))
1561 goto fnic_device_reset_end;
1562
1563 /* Check if remote port up */
1564 rport = starget_to_rport(scsi_target(sc->device));
1565 if (fc_remote_port_chkready(rport))
1566 goto fnic_device_reset_end;
1567
1568 io_lock = fnic_io_lock_hash(fnic, sc);
1569 spin_lock_irqsave(io_lock, flags);
1570 io_req = (struct fnic_io_req *)CMD_SP(sc);
1571
1572 /*
1573 * If there is a io_req attached to this command, then use it,
1574 * else allocate a new one.
1575 */
1576 if (!io_req) {
1577 io_req = mempool_alloc(fnic->io_req_pool, GFP_ATOMIC);
1578 if (!io_req) {
1579 spin_unlock_irqrestore(io_lock, flags);
1580 goto fnic_device_reset_end;
1581 }
1582 memset(io_req, 0, sizeof(*io_req));
1583 io_req->port_id = rport->port_id;
1584 CMD_SP(sc) = (char *)io_req;
1585 }
1586 io_req->dr_done = &tm_done;
1587 CMD_STATE(sc) = FNIC_IOREQ_CMD_PENDING;
1588 CMD_LR_STATUS(sc) = FCPIO_INVALID_CODE;
1589 spin_unlock_irqrestore(io_lock, flags);
1590
1591 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, "TAG %d\n",
1592 sc->request->tag);
1593
1594 /*
1595 * issue the device reset, if enqueue failed, clean up the ioreq
1596 * and break assoc with scsi cmd
1597 */
1598 if (fnic_queue_dr_io_req(fnic, sc, io_req)) {
1599 spin_lock_irqsave(io_lock, flags);
1600 io_req = (struct fnic_io_req *)CMD_SP(sc);
1601 if (io_req)
1602 io_req->dr_done = NULL;
1603 goto fnic_device_reset_clean;
1604 }
1605
1606 /*
1607 * Wait on the local completion for LUN reset. The io_req may be
1608 * freed while we wait since we hold no lock.
1609 */
1610 wait_for_completion_timeout(&tm_done,
1611 msecs_to_jiffies(FNIC_LUN_RESET_TIMEOUT));
1612
1613 spin_lock_irqsave(io_lock, flags);
1614 io_req = (struct fnic_io_req *)CMD_SP(sc);
1615 if (!io_req) {
1616 spin_unlock_irqrestore(io_lock, flags);
1617 goto fnic_device_reset_end;
1618 }
1619 io_req->dr_done = NULL;
1620
1621 status = CMD_LR_STATUS(sc);
1622 spin_unlock_irqrestore(io_lock, flags);
1623
1624 /*
1625 * If lun reset not completed, bail out with failed. io_req
1626 * gets cleaned up during higher levels of EH
1627 */
1628 if (status == FCPIO_INVALID_CODE) {
1629 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
1630 "Device reset timed out\n");
1631 goto fnic_device_reset_end;
1632 }
1633
1634 /* Completed, but not successful, clean up the io_req, return fail */
1635 if (status != FCPIO_SUCCESS) {
1636 spin_lock_irqsave(io_lock, flags);
1637 FNIC_SCSI_DBG(KERN_DEBUG,
1638 fnic->lport->host,
1639 "Device reset completed - failed\n");
1640 io_req = (struct fnic_io_req *)CMD_SP(sc);
1641 goto fnic_device_reset_clean;
1642 }
1643
1644 /*
1645 * Clean up any aborts on this lun that have still not
1646 * completed. If any of these fail, then LUN reset fails.
1647 * clean_pending_aborts cleans all cmds on this lun except
1648 * the lun reset cmd. If all cmds get cleaned, the lun reset
1649 * succeeds
1650 */
1651 if (fnic_clean_pending_aborts(fnic, sc)) {
1652 spin_lock_irqsave(io_lock, flags);
1653 io_req = (struct fnic_io_req *)CMD_SP(sc);
1654 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
1655 "Device reset failed"
1656 " since could not abort all IOs\n");
1657 goto fnic_device_reset_clean;
1658 }
1659
1660 /* Clean lun reset command */
1661 spin_lock_irqsave(io_lock, flags);
1662 io_req = (struct fnic_io_req *)CMD_SP(sc);
1663 if (io_req)
1664 /* Completed, and successful */
1665 ret = SUCCESS;
1666
1667fnic_device_reset_clean:
1668 if (io_req)
1669 CMD_SP(sc) = NULL;
1670
1671 spin_unlock_irqrestore(io_lock, flags);
1672
1673 if (io_req) {
1674 fnic_release_ioreq_buf(fnic, io_req, sc);
1675 mempool_free(io_req, fnic->io_req_pool);
1676 }
1677
1678fnic_device_reset_end:
1679 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
1680 "Returning from device reset %s\n",
1681 (ret == SUCCESS) ?
1682 "SUCCESS" : "FAILED");
1683 return ret;
1684}
1685
1686/* Clean up all IOs, clean up libFC local port */
1687int fnic_reset(struct Scsi_Host *shost)
1688{
1689 struct fc_lport *lp;
1690 struct fnic *fnic;
1691 int ret = SUCCESS;
1692
1693 lp = shost_priv(shost);
1694 fnic = lport_priv(lp);
1695
1696 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
1697 "fnic_reset called\n");
1698
1699 /*
1700 * Reset local port, this will clean up libFC exchanges,
1701 * reset remote port sessions, and if link is up, begin flogi
1702 */
1703 if (lp->tt.lport_reset(lp))
1704 ret = FAILED;
1705
1706 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
1707 "Returning from fnic reset %s\n",
1708 (ret == SUCCESS) ?
1709 "SUCCESS" : "FAILED");
1710
1711 return ret;
1712}
1713
1714/*
1715 * SCSI Error handling calls driver's eh_host_reset if all prior
1716 * error handling levels return FAILED. If host reset completes
1717 * successfully, and if link is up, then Fabric login begins.
1718 *
1719 * Host Reset is the highest level of error recovery. If this fails, then
1720 * host is offlined by SCSI.
1721 *
1722 */
1723int fnic_host_reset(struct scsi_cmnd *sc)
1724{
1725 int ret;
1726 unsigned long wait_host_tmo;
1727 struct Scsi_Host *shost = sc->device->host;
1728 struct fc_lport *lp = shost_priv(shost);
1729
1730 /*
1731 * If fnic_reset is successful, wait for fabric login to complete
1732 * scsi-ml tries to send a TUR to every device if host reset is
1733 * successful, so before returning to scsi, fabric should be up
1734 */
1735 ret = fnic_reset(shost);
1736 if (ret == SUCCESS) {
1737 wait_host_tmo = jiffies + FNIC_HOST_RESET_SETTLE_TIME * HZ;
1738 ret = FAILED;
1739 while (time_before(jiffies, wait_host_tmo)) {
1740 if ((lp->state == LPORT_ST_READY) &&
1741 (lp->link_up)) {
1742 ret = SUCCESS;
1743 break;
1744 }
1745 ssleep(1);
1746 }
1747 }
1748
1749 return ret;
1750}
1751
1752/*
1753 * This fxn is called from libFC when host is removed
1754 */
1755void fnic_scsi_abort_io(struct fc_lport *lp)
1756{
1757 int err = 0;
1758 unsigned long flags;
1759 enum fnic_state old_state;
1760 struct fnic *fnic = lport_priv(lp);
1761 DECLARE_COMPLETION_ONSTACK(remove_wait);
1762
1763 /* Issue firmware reset for fnic, wait for reset to complete */
1764 spin_lock_irqsave(&fnic->fnic_lock, flags);
1765 fnic->remove_wait = &remove_wait;
1766 old_state = fnic->state;
1767 fnic->state = FNIC_IN_FC_TRANS_ETH_MODE;
1768 vnic_dev_del_addr(fnic->vdev, fnic->data_src_addr);
1769 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
1770
1771 err = fnic_fw_reset_handler(fnic);
1772 if (err) {
1773 spin_lock_irqsave(&fnic->fnic_lock, flags);
1774 if (fnic->state == FNIC_IN_FC_TRANS_ETH_MODE)
1775 fnic->state = old_state;
1776 fnic->remove_wait = NULL;
1777 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
1778 return;
1779 }
1780
1781 /* Wait for firmware reset to complete */
1782 wait_for_completion_timeout(&remove_wait,
1783 msecs_to_jiffies(FNIC_RMDEVICE_TIMEOUT));
1784
1785 spin_lock_irqsave(&fnic->fnic_lock, flags);
1786 fnic->remove_wait = NULL;
1787 FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
1788 "fnic_scsi_abort_io %s\n",
1789 (fnic->state == FNIC_IN_ETH_MODE) ?
1790 "SUCCESS" : "FAILED");
1791 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
1792
1793}
1794
1795/*
1796 * This fxn called from libFC to clean up driver IO state on link down
1797 */
1798void fnic_scsi_cleanup(struct fc_lport *lp)
1799{
1800 unsigned long flags;
1801 enum fnic_state old_state;
1802 struct fnic *fnic = lport_priv(lp);
1803
1804 /* issue fw reset */
1805 spin_lock_irqsave(&fnic->fnic_lock, flags);
1806 old_state = fnic->state;
1807 fnic->state = FNIC_IN_FC_TRANS_ETH_MODE;
1808 vnic_dev_del_addr(fnic->vdev, fnic->data_src_addr);
1809 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
1810
1811 if (fnic_fw_reset_handler(fnic)) {
1812 spin_lock_irqsave(&fnic->fnic_lock, flags);
1813 if (fnic->state == FNIC_IN_FC_TRANS_ETH_MODE)
1814 fnic->state = old_state;
1815 spin_unlock_irqrestore(&fnic->fnic_lock, flags);
1816 }
1817
1818}
1819
1820void fnic_empty_scsi_cleanup(struct fc_lport *lp)
1821{
1822}
1823
1824void fnic_exch_mgr_reset(struct fc_lport *lp, u32 sid, u32 did)
1825{
1826 struct fnic *fnic = lport_priv(lp);
1827
1828 /* Non-zero sid, nothing to do */
1829 if (sid)
1830 goto call_fc_exch_mgr_reset;
1831
1832 if (did) {
1833 fnic_rport_exch_reset(fnic, did);
1834 goto call_fc_exch_mgr_reset;
1835 }
1836
1837 /*
1838 * sid = 0, did = 0
1839 * link down or device being removed
1840 */
1841 if (!fnic->in_remove)
1842 fnic_scsi_cleanup(lp);
1843 else
1844 fnic_scsi_abort_io(lp);
1845
1846 /* call libFC exch mgr reset to reset its exchanges */
1847call_fc_exch_mgr_reset:
1848 fc_exch_mgr_reset(lp, sid, did);
1849
1850}
diff --git a/drivers/scsi/fnic/rq_enet_desc.h b/drivers/scsi/fnic/rq_enet_desc.h
new file mode 100644
index 000000000000..92e80ae6b725
--- /dev/null
+++ b/drivers/scsi/fnic/rq_enet_desc.h
@@ -0,0 +1,58 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _RQ_ENET_DESC_H_
19#define _RQ_ENET_DESC_H_
20
21/* Ethernet receive queue descriptor: 16B */
22struct rq_enet_desc {
23 __le64 address;
24 __le16 length_type;
25 u8 reserved[6];
26};
27
28enum rq_enet_type_types {
29 RQ_ENET_TYPE_ONLY_SOP = 0,
30 RQ_ENET_TYPE_NOT_SOP = 1,
31 RQ_ENET_TYPE_RESV2 = 2,
32 RQ_ENET_TYPE_RESV3 = 3,
33};
34
35#define RQ_ENET_ADDR_BITS 64
36#define RQ_ENET_LEN_BITS 14
37#define RQ_ENET_LEN_MASK ((1 << RQ_ENET_LEN_BITS) - 1)
38#define RQ_ENET_TYPE_BITS 2
39#define RQ_ENET_TYPE_MASK ((1 << RQ_ENET_TYPE_BITS) - 1)
40
41static inline void rq_enet_desc_enc(struct rq_enet_desc *desc,
42 u64 address, u8 type, u16 length)
43{
44 desc->address = cpu_to_le64(address);
45 desc->length_type = cpu_to_le16((length & RQ_ENET_LEN_MASK) |
46 ((type & RQ_ENET_TYPE_MASK) << RQ_ENET_LEN_BITS));
47}
48
49static inline void rq_enet_desc_dec(struct rq_enet_desc *desc,
50 u64 *address, u8 *type, u16 *length)
51{
52 *address = le64_to_cpu(desc->address);
53 *length = le16_to_cpu(desc->length_type) & RQ_ENET_LEN_MASK;
54 *type = (u8)((le16_to_cpu(desc->length_type) >> RQ_ENET_LEN_BITS) &
55 RQ_ENET_TYPE_MASK);
56}
57
58#endif /* _RQ_ENET_DESC_H_ */
diff --git a/drivers/scsi/fnic/vnic_cq.c b/drivers/scsi/fnic/vnic_cq.c
new file mode 100644
index 000000000000..c5db32eda5ef
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_cq.c
@@ -0,0 +1,85 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#include <linux/errno.h>
19#include <linux/types.h>
20#include <linux/pci.h>
21#include "vnic_dev.h"
22#include "vnic_cq.h"
23
24void vnic_cq_free(struct vnic_cq *cq)
25{
26 vnic_dev_free_desc_ring(cq->vdev, &cq->ring);
27
28 cq->ctrl = NULL;
29}
30
31int vnic_cq_alloc(struct vnic_dev *vdev, struct vnic_cq *cq, unsigned int index,
32 unsigned int desc_count, unsigned int desc_size)
33{
34 int err;
35
36 cq->index = index;
37 cq->vdev = vdev;
38
39 cq->ctrl = vnic_dev_get_res(vdev, RES_TYPE_CQ, index);
40 if (!cq->ctrl) {
41 printk(KERN_ERR "Failed to hook CQ[%d] resource\n", index);
42 return -EINVAL;
43 }
44
45 err = vnic_dev_alloc_desc_ring(vdev, &cq->ring, desc_count, desc_size);
46 if (err)
47 return err;
48
49 return 0;
50}
51
52void vnic_cq_init(struct vnic_cq *cq, unsigned int flow_control_enable,
53 unsigned int color_enable, unsigned int cq_head, unsigned int cq_tail,
54 unsigned int cq_tail_color, unsigned int interrupt_enable,
55 unsigned int cq_entry_enable, unsigned int cq_message_enable,
56 unsigned int interrupt_offset, u64 cq_message_addr)
57{
58 u64 paddr;
59
60 paddr = (u64)cq->ring.base_addr | VNIC_PADDR_TARGET;
61 writeq(paddr, &cq->ctrl->ring_base);
62 iowrite32(cq->ring.desc_count, &cq->ctrl->ring_size);
63 iowrite32(flow_control_enable, &cq->ctrl->flow_control_enable);
64 iowrite32(color_enable, &cq->ctrl->color_enable);
65 iowrite32(cq_head, &cq->ctrl->cq_head);
66 iowrite32(cq_tail, &cq->ctrl->cq_tail);
67 iowrite32(cq_tail_color, &cq->ctrl->cq_tail_color);
68 iowrite32(interrupt_enable, &cq->ctrl->interrupt_enable);
69 iowrite32(cq_entry_enable, &cq->ctrl->cq_entry_enable);
70 iowrite32(cq_message_enable, &cq->ctrl->cq_message_enable);
71 iowrite32(interrupt_offset, &cq->ctrl->interrupt_offset);
72 writeq(cq_message_addr, &cq->ctrl->cq_message_addr);
73}
74
75void vnic_cq_clean(struct vnic_cq *cq)
76{
77 cq->to_clean = 0;
78 cq->last_color = 0;
79
80 iowrite32(0, &cq->ctrl->cq_head);
81 iowrite32(0, &cq->ctrl->cq_tail);
82 iowrite32(1, &cq->ctrl->cq_tail_color);
83
84 vnic_dev_clear_desc_ring(&cq->ring);
85}
diff --git a/drivers/scsi/fnic/vnic_cq.h b/drivers/scsi/fnic/vnic_cq.h
new file mode 100644
index 000000000000..4ede6809fb1e
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_cq.h
@@ -0,0 +1,121 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_CQ_H_
19#define _VNIC_CQ_H_
20
21#include "cq_desc.h"
22#include "vnic_dev.h"
23
24/*
25 * These defines avoid symbol clash between fnic and enic (Cisco 10G Eth
26 * Driver) when both are built with CONFIG options =y
27 */
28#define vnic_cq_service fnic_cq_service
29#define vnic_cq_free fnic_cq_free
30#define vnic_cq_alloc fnic_cq_alloc
31#define vnic_cq_init fnic_cq_init
32#define vnic_cq_clean fnic_cq_clean
33
34/* Completion queue control */
35struct vnic_cq_ctrl {
36 u64 ring_base; /* 0x00 */
37 u32 ring_size; /* 0x08 */
38 u32 pad0;
39 u32 flow_control_enable; /* 0x10 */
40 u32 pad1;
41 u32 color_enable; /* 0x18 */
42 u32 pad2;
43 u32 cq_head; /* 0x20 */
44 u32 pad3;
45 u32 cq_tail; /* 0x28 */
46 u32 pad4;
47 u32 cq_tail_color; /* 0x30 */
48 u32 pad5;
49 u32 interrupt_enable; /* 0x38 */
50 u32 pad6;
51 u32 cq_entry_enable; /* 0x40 */
52 u32 pad7;
53 u32 cq_message_enable; /* 0x48 */
54 u32 pad8;
55 u32 interrupt_offset; /* 0x50 */
56 u32 pad9;
57 u64 cq_message_addr; /* 0x58 */
58 u32 pad10;
59};
60
61struct vnic_cq {
62 unsigned int index;
63 struct vnic_dev *vdev;
64 struct vnic_cq_ctrl __iomem *ctrl; /* memory-mapped */
65 struct vnic_dev_ring ring;
66 unsigned int to_clean;
67 unsigned int last_color;
68};
69
70static inline unsigned int vnic_cq_service(struct vnic_cq *cq,
71 unsigned int work_to_do,
72 int (*q_service)(struct vnic_dev *vdev, struct cq_desc *cq_desc,
73 u8 type, u16 q_number, u16 completed_index, void *opaque),
74 void *opaque)
75{
76 struct cq_desc *cq_desc;
77 unsigned int work_done = 0;
78 u16 q_number, completed_index;
79 u8 type, color;
80
81 cq_desc = (struct cq_desc *)((u8 *)cq->ring.descs +
82 cq->ring.desc_size * cq->to_clean);
83 cq_desc_dec(cq_desc, &type, &color,
84 &q_number, &completed_index);
85
86 while (color != cq->last_color) {
87
88 if ((*q_service)(cq->vdev, cq_desc, type,
89 q_number, completed_index, opaque))
90 break;
91
92 cq->to_clean++;
93 if (cq->to_clean == cq->ring.desc_count) {
94 cq->to_clean = 0;
95 cq->last_color = cq->last_color ? 0 : 1;
96 }
97
98 cq_desc = (struct cq_desc *)((u8 *)cq->ring.descs +
99 cq->ring.desc_size * cq->to_clean);
100 cq_desc_dec(cq_desc, &type, &color,
101 &q_number, &completed_index);
102
103 work_done++;
104 if (work_done >= work_to_do)
105 break;
106 }
107
108 return work_done;
109}
110
111void vnic_cq_free(struct vnic_cq *cq);
112int vnic_cq_alloc(struct vnic_dev *vdev, struct vnic_cq *cq, unsigned int index,
113 unsigned int desc_count, unsigned int desc_size);
114void vnic_cq_init(struct vnic_cq *cq, unsigned int flow_control_enable,
115 unsigned int color_enable, unsigned int cq_head, unsigned int cq_tail,
116 unsigned int cq_tail_color, unsigned int interrupt_enable,
117 unsigned int cq_entry_enable, unsigned int message_enable,
118 unsigned int interrupt_offset, u64 message_addr);
119void vnic_cq_clean(struct vnic_cq *cq);
120
121#endif /* _VNIC_CQ_H_ */
diff --git a/drivers/scsi/fnic/vnic_cq_copy.h b/drivers/scsi/fnic/vnic_cq_copy.h
new file mode 100644
index 000000000000..7901ce255a81
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_cq_copy.h
@@ -0,0 +1,62 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_CQ_COPY_H_
19#define _VNIC_CQ_COPY_H_
20
21#include "fcpio.h"
22
23static inline unsigned int vnic_cq_copy_service(
24 struct vnic_cq *cq,
25 int (*q_service)(struct vnic_dev *vdev,
26 unsigned int index,
27 struct fcpio_fw_req *desc),
28 unsigned int work_to_do)
29
30{
31 struct fcpio_fw_req *desc;
32 unsigned int work_done = 0;
33 u8 color;
34
35 desc = (struct fcpio_fw_req *)((u8 *)cq->ring.descs +
36 cq->ring.desc_size * cq->to_clean);
37 fcpio_color_dec(desc, &color);
38
39 while (color != cq->last_color) {
40
41 if ((*q_service)(cq->vdev, cq->index, desc))
42 break;
43
44 cq->to_clean++;
45 if (cq->to_clean == cq->ring.desc_count) {
46 cq->to_clean = 0;
47 cq->last_color = cq->last_color ? 0 : 1;
48 }
49
50 desc = (struct fcpio_fw_req *)((u8 *)cq->ring.descs +
51 cq->ring.desc_size * cq->to_clean);
52 fcpio_color_dec(desc, &color);
53
54 work_done++;
55 if (work_done >= work_to_do)
56 break;
57 }
58
59 return work_done;
60}
61
62#endif /* _VNIC_CQ_COPY_H_ */
diff --git a/drivers/scsi/fnic/vnic_dev.c b/drivers/scsi/fnic/vnic_dev.c
new file mode 100644
index 000000000000..566770645086
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_dev.c
@@ -0,0 +1,690 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18
19#include <linux/kernel.h>
20#include <linux/errno.h>
21#include <linux/types.h>
22#include <linux/pci.h>
23#include <linux/delay.h>
24#include <linux/if_ether.h>
25#include "vnic_resource.h"
26#include "vnic_devcmd.h"
27#include "vnic_dev.h"
28#include "vnic_stats.h"
29
30struct vnic_res {
31 void __iomem *vaddr;
32 unsigned int count;
33};
34
35struct vnic_dev {
36 void *priv;
37 struct pci_dev *pdev;
38 struct vnic_res res[RES_TYPE_MAX];
39 enum vnic_dev_intr_mode intr_mode;
40 struct vnic_devcmd __iomem *devcmd;
41 struct vnic_devcmd_notify *notify;
42 struct vnic_devcmd_notify notify_copy;
43 dma_addr_t notify_pa;
44 u32 *linkstatus;
45 dma_addr_t linkstatus_pa;
46 struct vnic_stats *stats;
47 dma_addr_t stats_pa;
48 struct vnic_devcmd_fw_info *fw_info;
49 dma_addr_t fw_info_pa;
50};
51
52#define VNIC_MAX_RES_HDR_SIZE \
53 (sizeof(struct vnic_resource_header) + \
54 sizeof(struct vnic_resource) * RES_TYPE_MAX)
55#define VNIC_RES_STRIDE 128
56
57void *vnic_dev_priv(struct vnic_dev *vdev)
58{
59 return vdev->priv;
60}
61
62static int vnic_dev_discover_res(struct vnic_dev *vdev,
63 struct vnic_dev_bar *bar)
64{
65 struct vnic_resource_header __iomem *rh;
66 struct vnic_resource __iomem *r;
67 u8 type;
68
69 if (bar->len < VNIC_MAX_RES_HDR_SIZE) {
70 printk(KERN_ERR "vNIC BAR0 res hdr length error\n");
71 return -EINVAL;
72 }
73
74 rh = bar->vaddr;
75 if (!rh) {
76 printk(KERN_ERR "vNIC BAR0 res hdr not mem-mapped\n");
77 return -EINVAL;
78 }
79
80 if (ioread32(&rh->magic) != VNIC_RES_MAGIC ||
81 ioread32(&rh->version) != VNIC_RES_VERSION) {
82 printk(KERN_ERR "vNIC BAR0 res magic/version error "
83 "exp (%lx/%lx) curr (%x/%x)\n",
84 VNIC_RES_MAGIC, VNIC_RES_VERSION,
85 ioread32(&rh->magic), ioread32(&rh->version));
86 return -EINVAL;
87 }
88
89 r = (struct vnic_resource __iomem *)(rh + 1);
90
91 while ((type = ioread8(&r->type)) != RES_TYPE_EOL) {
92
93 u8 bar_num = ioread8(&r->bar);
94 u32 bar_offset = ioread32(&r->bar_offset);
95 u32 count = ioread32(&r->count);
96 u32 len;
97
98 r++;
99
100 if (bar_num != 0) /* only mapping in BAR0 resources */
101 continue;
102
103 switch (type) {
104 case RES_TYPE_WQ:
105 case RES_TYPE_RQ:
106 case RES_TYPE_CQ:
107 case RES_TYPE_INTR_CTRL:
108 /* each count is stride bytes long */
109 len = count * VNIC_RES_STRIDE;
110 if (len + bar_offset > bar->len) {
111 printk(KERN_ERR "vNIC BAR0 resource %d "
112 "out-of-bounds, offset 0x%x + "
113 "size 0x%x > bar len 0x%lx\n",
114 type, bar_offset,
115 len,
116 bar->len);
117 return -EINVAL;
118 }
119 break;
120 case RES_TYPE_INTR_PBA_LEGACY:
121 case RES_TYPE_DEVCMD:
122 len = count;
123 break;
124 default:
125 continue;
126 }
127
128 vdev->res[type].count = count;
129 vdev->res[type].vaddr = (char __iomem *)bar->vaddr + bar_offset;
130 }
131
132 return 0;
133}
134
135unsigned int vnic_dev_get_res_count(struct vnic_dev *vdev,
136 enum vnic_res_type type)
137{
138 return vdev->res[type].count;
139}
140
141void __iomem *vnic_dev_get_res(struct vnic_dev *vdev, enum vnic_res_type type,
142 unsigned int index)
143{
144 if (!vdev->res[type].vaddr)
145 return NULL;
146
147 switch (type) {
148 case RES_TYPE_WQ:
149 case RES_TYPE_RQ:
150 case RES_TYPE_CQ:
151 case RES_TYPE_INTR_CTRL:
152 return (char __iomem *)vdev->res[type].vaddr +
153 index * VNIC_RES_STRIDE;
154 default:
155 return (char __iomem *)vdev->res[type].vaddr;
156 }
157}
158
159unsigned int vnic_dev_desc_ring_size(struct vnic_dev_ring *ring,
160 unsigned int desc_count,
161 unsigned int desc_size)
162{
163 /* The base address of the desc rings must be 512 byte aligned.
164 * Descriptor count is aligned to groups of 32 descriptors. A
165 * count of 0 means the maximum 4096 descriptors. Descriptor
166 * size is aligned to 16 bytes.
167 */
168
169 unsigned int count_align = 32;
170 unsigned int desc_align = 16;
171
172 ring->base_align = 512;
173
174 if (desc_count == 0)
175 desc_count = 4096;
176
177 ring->desc_count = ALIGN(desc_count, count_align);
178
179 ring->desc_size = ALIGN(desc_size, desc_align);
180
181 ring->size = ring->desc_count * ring->desc_size;
182 ring->size_unaligned = ring->size + ring->base_align;
183
184 return ring->size_unaligned;
185}
186
187void vnic_dev_clear_desc_ring(struct vnic_dev_ring *ring)
188{
189 memset(ring->descs, 0, ring->size);
190}
191
192int vnic_dev_alloc_desc_ring(struct vnic_dev *vdev, struct vnic_dev_ring *ring,
193 unsigned int desc_count, unsigned int desc_size)
194{
195 vnic_dev_desc_ring_size(ring, desc_count, desc_size);
196
197 ring->descs_unaligned = pci_alloc_consistent(vdev->pdev,
198 ring->size_unaligned,
199 &ring->base_addr_unaligned);
200
201 if (!ring->descs_unaligned) {
202 printk(KERN_ERR
203 "Failed to allocate ring (size=%d), aborting\n",
204 (int)ring->size);
205 return -ENOMEM;
206 }
207
208 ring->base_addr = ALIGN(ring->base_addr_unaligned,
209 ring->base_align);
210 ring->descs = (u8 *)ring->descs_unaligned +
211 (ring->base_addr - ring->base_addr_unaligned);
212
213 vnic_dev_clear_desc_ring(ring);
214
215 ring->desc_avail = ring->desc_count - 1;
216
217 return 0;
218}
219
220void vnic_dev_free_desc_ring(struct vnic_dev *vdev, struct vnic_dev_ring *ring)
221{
222 if (ring->descs) {
223 pci_free_consistent(vdev->pdev,
224 ring->size_unaligned,
225 ring->descs_unaligned,
226 ring->base_addr_unaligned);
227 ring->descs = NULL;
228 }
229}
230
231int vnic_dev_cmd(struct vnic_dev *vdev, enum vnic_devcmd_cmd cmd,
232 u64 *a0, u64 *a1, int wait)
233{
234 struct vnic_devcmd __iomem *devcmd = vdev->devcmd;
235 int delay;
236 u32 status;
237 int dev_cmd_err[] = {
238 /* convert from fw's version of error.h to host's version */
239 0, /* ERR_SUCCESS */
240 EINVAL, /* ERR_EINVAL */
241 EFAULT, /* ERR_EFAULT */
242 EPERM, /* ERR_EPERM */
243 EBUSY, /* ERR_EBUSY */
244 };
245 int err;
246
247 status = ioread32(&devcmd->status);
248 if (status & STAT_BUSY) {
249 printk(KERN_ERR "Busy devcmd %d\n", _CMD_N(cmd));
250 return -EBUSY;
251 }
252
253 if (_CMD_DIR(cmd) & _CMD_DIR_WRITE) {
254 writeq(*a0, &devcmd->args[0]);
255 writeq(*a1, &devcmd->args[1]);
256 wmb();
257 }
258
259 iowrite32(cmd, &devcmd->cmd);
260
261 if ((_CMD_FLAGS(cmd) & _CMD_FLAGS_NOWAIT))
262 return 0;
263
264 for (delay = 0; delay < wait; delay++) {
265
266 udelay(100);
267
268 status = ioread32(&devcmd->status);
269 if (!(status & STAT_BUSY)) {
270
271 if (status & STAT_ERROR) {
272 err = dev_cmd_err[(int)readq(&devcmd->args[0])];
273 printk(KERN_ERR "Error %d devcmd %d\n",
274 err, _CMD_N(cmd));
275 return -err;
276 }
277
278 if (_CMD_DIR(cmd) & _CMD_DIR_READ) {
279 rmb();
280 *a0 = readq(&devcmd->args[0]);
281 *a1 = readq(&devcmd->args[1]);
282 }
283
284 return 0;
285 }
286 }
287
288 printk(KERN_ERR "Timedout devcmd %d\n", _CMD_N(cmd));
289 return -ETIMEDOUT;
290}
291
292int vnic_dev_fw_info(struct vnic_dev *vdev,
293 struct vnic_devcmd_fw_info **fw_info)
294{
295 u64 a0, a1 = 0;
296 int wait = 1000;
297 int err = 0;
298
299 if (!vdev->fw_info) {
300 vdev->fw_info = pci_alloc_consistent(vdev->pdev,
301 sizeof(struct vnic_devcmd_fw_info),
302 &vdev->fw_info_pa);
303 if (!vdev->fw_info)
304 return -ENOMEM;
305
306 a0 = vdev->fw_info_pa;
307
308 /* only get fw_info once and cache it */
309 err = vnic_dev_cmd(vdev, CMD_MCPU_FW_INFO, &a0, &a1, wait);
310 }
311
312 *fw_info = vdev->fw_info;
313
314 return err;
315}
316
317int vnic_dev_spec(struct vnic_dev *vdev, unsigned int offset, unsigned int size,
318 void *value)
319{
320 u64 a0, a1;
321 int wait = 1000;
322 int err;
323
324 a0 = offset;
325 a1 = size;
326
327 err = vnic_dev_cmd(vdev, CMD_DEV_SPEC, &a0, &a1, wait);
328
329 switch (size) {
330 case 1:
331 *(u8 *)value = (u8)a0;
332 break;
333 case 2:
334 *(u16 *)value = (u16)a0;
335 break;
336 case 4:
337 *(u32 *)value = (u32)a0;
338 break;
339 case 8:
340 *(u64 *)value = a0;
341 break;
342 default:
343 BUG();
344 break;
345 }
346
347 return err;
348}
349
350int vnic_dev_stats_clear(struct vnic_dev *vdev)
351{
352 u64 a0 = 0, a1 = 0;
353 int wait = 1000;
354 return vnic_dev_cmd(vdev, CMD_STATS_CLEAR, &a0, &a1, wait);
355}
356
357int vnic_dev_stats_dump(struct vnic_dev *vdev, struct vnic_stats **stats)
358{
359 u64 a0, a1;
360 int wait = 1000;
361
362 if (!vdev->stats) {
363 vdev->stats = pci_alloc_consistent(vdev->pdev,
364 sizeof(struct vnic_stats), &vdev->stats_pa);
365 if (!vdev->stats)
366 return -ENOMEM;
367 }
368
369 *stats = vdev->stats;
370 a0 = vdev->stats_pa;
371 a1 = sizeof(struct vnic_stats);
372
373 return vnic_dev_cmd(vdev, CMD_STATS_DUMP, &a0, &a1, wait);
374}
375
376int vnic_dev_close(struct vnic_dev *vdev)
377{
378 u64 a0 = 0, a1 = 0;
379 int wait = 1000;
380 return vnic_dev_cmd(vdev, CMD_CLOSE, &a0, &a1, wait);
381}
382
383int vnic_dev_enable(struct vnic_dev *vdev)
384{
385 u64 a0 = 0, a1 = 0;
386 int wait = 1000;
387 return vnic_dev_cmd(vdev, CMD_ENABLE, &a0, &a1, wait);
388}
389
390int vnic_dev_disable(struct vnic_dev *vdev)
391{
392 u64 a0 = 0, a1 = 0;
393 int wait = 1000;
394 return vnic_dev_cmd(vdev, CMD_DISABLE, &a0, &a1, wait);
395}
396
397int vnic_dev_open(struct vnic_dev *vdev, int arg)
398{
399 u64 a0 = (u32)arg, a1 = 0;
400 int wait = 1000;
401 return vnic_dev_cmd(vdev, CMD_OPEN, &a0, &a1, wait);
402}
403
404int vnic_dev_open_done(struct vnic_dev *vdev, int *done)
405{
406 u64 a0 = 0, a1 = 0;
407 int wait = 1000;
408 int err;
409
410 *done = 0;
411
412 err = vnic_dev_cmd(vdev, CMD_OPEN_STATUS, &a0, &a1, wait);
413 if (err)
414 return err;
415
416 *done = (a0 == 0);
417
418 return 0;
419}
420
421int vnic_dev_soft_reset(struct vnic_dev *vdev, int arg)
422{
423 u64 a0 = (u32)arg, a1 = 0;
424 int wait = 1000;
425 return vnic_dev_cmd(vdev, CMD_SOFT_RESET, &a0, &a1, wait);
426}
427
428int vnic_dev_soft_reset_done(struct vnic_dev *vdev, int *done)
429{
430 u64 a0 = 0, a1 = 0;
431 int wait = 1000;
432 int err;
433
434 *done = 0;
435
436 err = vnic_dev_cmd(vdev, CMD_SOFT_RESET_STATUS, &a0, &a1, wait);
437 if (err)
438 return err;
439
440 *done = (a0 == 0);
441
442 return 0;
443}
444
445int vnic_dev_hang_notify(struct vnic_dev *vdev)
446{
447 u64 a0, a1;
448 int wait = 1000;
449 return vnic_dev_cmd(vdev, CMD_HANG_NOTIFY, &a0, &a1, wait);
450}
451
452int vnic_dev_mac_addr(struct vnic_dev *vdev, u8 *mac_addr)
453{
454 u64 a0, a1;
455 int wait = 1000;
456 int err, i;
457
458 for (i = 0; i < ETH_ALEN; i++)
459 mac_addr[i] = 0;
460
461 err = vnic_dev_cmd(vdev, CMD_MAC_ADDR, &a0, &a1, wait);
462 if (err)
463 return err;
464
465 for (i = 0; i < ETH_ALEN; i++)
466 mac_addr[i] = ((u8 *)&a0)[i];
467
468 return 0;
469}
470
471void vnic_dev_packet_filter(struct vnic_dev *vdev, int directed, int multicast,
472 int broadcast, int promisc, int allmulti)
473{
474 u64 a0, a1 = 0;
475 int wait = 1000;
476 int err;
477
478 a0 = (directed ? CMD_PFILTER_DIRECTED : 0) |
479 (multicast ? CMD_PFILTER_MULTICAST : 0) |
480 (broadcast ? CMD_PFILTER_BROADCAST : 0) |
481 (promisc ? CMD_PFILTER_PROMISCUOUS : 0) |
482 (allmulti ? CMD_PFILTER_ALL_MULTICAST : 0);
483
484 err = vnic_dev_cmd(vdev, CMD_PACKET_FILTER, &a0, &a1, wait);
485 if (err)
486 printk(KERN_ERR "Can't set packet filter\n");
487}
488
489void vnic_dev_add_addr(struct vnic_dev *vdev, u8 *addr)
490{
491 u64 a0 = 0, a1 = 0;
492 int wait = 1000;
493 int err;
494 int i;
495
496 for (i = 0; i < ETH_ALEN; i++)
497 ((u8 *)&a0)[i] = addr[i];
498
499 err = vnic_dev_cmd(vdev, CMD_ADDR_ADD, &a0, &a1, wait);
500 if (err)
501 printk(KERN_ERR
502 "Can't add addr [%02x:%02x:%02x:%02x:%02x:%02x], %d\n",
503 addr[0], addr[1], addr[2], addr[3], addr[4], addr[5],
504 err);
505}
506
507void vnic_dev_del_addr(struct vnic_dev *vdev, u8 *addr)
508{
509 u64 a0 = 0, a1 = 0;
510 int wait = 1000;
511 int err;
512 int i;
513
514 for (i = 0; i < ETH_ALEN; i++)
515 ((u8 *)&a0)[i] = addr[i];
516
517 err = vnic_dev_cmd(vdev, CMD_ADDR_DEL, &a0, &a1, wait);
518 if (err)
519 printk(KERN_ERR
520 "Can't del addr [%02x:%02x:%02x:%02x:%02x:%02x], %d\n",
521 addr[0], addr[1], addr[2], addr[3], addr[4], addr[5],
522 err);
523}
524
525int vnic_dev_notify_set(struct vnic_dev *vdev, u16 intr)
526{
527 u64 a0, a1;
528 int wait = 1000;
529
530 if (!vdev->notify) {
531 vdev->notify = pci_alloc_consistent(vdev->pdev,
532 sizeof(struct vnic_devcmd_notify),
533 &vdev->notify_pa);
534 if (!vdev->notify)
535 return -ENOMEM;
536 }
537
538 a0 = vdev->notify_pa;
539 a1 = ((u64)intr << 32) & 0x0000ffff00000000ULL;
540 a1 += sizeof(struct vnic_devcmd_notify);
541
542 return vnic_dev_cmd(vdev, CMD_NOTIFY, &a0, &a1, wait);
543}
544
545void vnic_dev_notify_unset(struct vnic_dev *vdev)
546{
547 u64 a0, a1;
548 int wait = 1000;
549
550 a0 = 0; /* paddr = 0 to unset notify buffer */
551 a1 = 0x0000ffff00000000ULL; /* intr num = -1 to unreg for intr */
552 a1 += sizeof(struct vnic_devcmd_notify);
553
554 vnic_dev_cmd(vdev, CMD_NOTIFY, &a0, &a1, wait);
555}
556
557static int vnic_dev_notify_ready(struct vnic_dev *vdev)
558{
559 u32 *words;
560 unsigned int nwords = sizeof(struct vnic_devcmd_notify) / 4;
561 unsigned int i;
562 u32 csum;
563
564 if (!vdev->notify)
565 return 0;
566
567 do {
568 csum = 0;
569 memcpy(&vdev->notify_copy, vdev->notify,
570 sizeof(struct vnic_devcmd_notify));
571 words = (u32 *)&vdev->notify_copy;
572 for (i = 1; i < nwords; i++)
573 csum += words[i];
574 } while (csum != words[0]);
575
576 return 1;
577}
578
579int vnic_dev_init(struct vnic_dev *vdev, int arg)
580{
581 u64 a0 = (u32)arg, a1 = 0;
582 int wait = 1000;
583 return vnic_dev_cmd(vdev, CMD_INIT, &a0, &a1, wait);
584}
585
586int vnic_dev_link_status(struct vnic_dev *vdev)
587{
588 if (vdev->linkstatus)
589 return *vdev->linkstatus;
590
591 if (!vnic_dev_notify_ready(vdev))
592 return 0;
593
594 return vdev->notify_copy.link_state;
595}
596
597u32 vnic_dev_port_speed(struct vnic_dev *vdev)
598{
599 if (!vnic_dev_notify_ready(vdev))
600 return 0;
601
602 return vdev->notify_copy.port_speed;
603}
604
605u32 vnic_dev_msg_lvl(struct vnic_dev *vdev)
606{
607 if (!vnic_dev_notify_ready(vdev))
608 return 0;
609
610 return vdev->notify_copy.msglvl;
611}
612
613u32 vnic_dev_mtu(struct vnic_dev *vdev)
614{
615 if (!vnic_dev_notify_ready(vdev))
616 return 0;
617
618 return vdev->notify_copy.mtu;
619}
620
621u32 vnic_dev_link_down_cnt(struct vnic_dev *vdev)
622{
623 if (!vnic_dev_notify_ready(vdev))
624 return 0;
625
626 return vdev->notify_copy.link_down_cnt;
627}
628
629void vnic_dev_set_intr_mode(struct vnic_dev *vdev,
630 enum vnic_dev_intr_mode intr_mode)
631{
632 vdev->intr_mode = intr_mode;
633}
634
635enum vnic_dev_intr_mode vnic_dev_get_intr_mode(
636 struct vnic_dev *vdev)
637{
638 return vdev->intr_mode;
639}
640
641void vnic_dev_unregister(struct vnic_dev *vdev)
642{
643 if (vdev) {
644 if (vdev->notify)
645 pci_free_consistent(vdev->pdev,
646 sizeof(struct vnic_devcmd_notify),
647 vdev->notify,
648 vdev->notify_pa);
649 if (vdev->linkstatus)
650 pci_free_consistent(vdev->pdev,
651 sizeof(u32),
652 vdev->linkstatus,
653 vdev->linkstatus_pa);
654 if (vdev->stats)
655 pci_free_consistent(vdev->pdev,
656 sizeof(struct vnic_dev),
657 vdev->stats, vdev->stats_pa);
658 if (vdev->fw_info)
659 pci_free_consistent(vdev->pdev,
660 sizeof(struct vnic_devcmd_fw_info),
661 vdev->fw_info, vdev->fw_info_pa);
662 kfree(vdev);
663 }
664}
665
666struct vnic_dev *vnic_dev_register(struct vnic_dev *vdev,
667 void *priv, struct pci_dev *pdev, struct vnic_dev_bar *bar)
668{
669 if (!vdev) {
670 vdev = kzalloc(sizeof(struct vnic_dev), GFP_KERNEL);
671 if (!vdev)
672 return NULL;
673 }
674
675 vdev->priv = priv;
676 vdev->pdev = pdev;
677
678 if (vnic_dev_discover_res(vdev, bar))
679 goto err_out;
680
681 vdev->devcmd = vnic_dev_get_res(vdev, RES_TYPE_DEVCMD, 0);
682 if (!vdev->devcmd)
683 goto err_out;
684
685 return vdev;
686
687err_out:
688 vnic_dev_unregister(vdev);
689 return NULL;
690}
diff --git a/drivers/scsi/fnic/vnic_dev.h b/drivers/scsi/fnic/vnic_dev.h
new file mode 100644
index 000000000000..f9935a8a5a09
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_dev.h
@@ -0,0 +1,161 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_DEV_H_
19#define _VNIC_DEV_H_
20
21#include "vnic_resource.h"
22#include "vnic_devcmd.h"
23
24/*
25 * These defines avoid symbol clash between fnic and enic (Cisco 10G Eth
26 * Driver) when both are built with CONFIG options =y
27 */
28#define vnic_dev_priv fnic_dev_priv
29#define vnic_dev_get_res_count fnic_dev_get_res_count
30#define vnic_dev_get_res fnic_dev_get_res
31#define vnic_dev_desc_ring_size fnic_dev_desc_ring_siz
32#define vnic_dev_clear_desc_ring fnic_dev_clear_desc_ring
33#define vnic_dev_alloc_desc_ring fnic_dev_alloc_desc_ring
34#define vnic_dev_free_desc_ring fnic_dev_free_desc_ring
35#define vnic_dev_cmd fnic_dev_cmd
36#define vnic_dev_fw_info fnic_dev_fw_info
37#define vnic_dev_spec fnic_dev_spec
38#define vnic_dev_stats_clear fnic_dev_stats_clear
39#define vnic_dev_stats_dump fnic_dev_stats_dump
40#define vnic_dev_hang_notify fnic_dev_hang_notify
41#define vnic_dev_packet_filter fnic_dev_packet_filter
42#define vnic_dev_add_addr fnic_dev_add_addr
43#define vnic_dev_del_addr fnic_dev_del_addr
44#define vnic_dev_mac_addr fnic_dev_mac_addr
45#define vnic_dev_notify_set fnic_dev_notify_set
46#define vnic_dev_notify_unset fnic_dev_notify_unset
47#define vnic_dev_link_status fnic_dev_link_status
48#define vnic_dev_port_speed fnic_dev_port_speed
49#define vnic_dev_msg_lvl fnic_dev_msg_lvl
50#define vnic_dev_mtu fnic_dev_mtu
51#define vnic_dev_link_down_cnt fnic_dev_link_down_cnt
52#define vnic_dev_close fnic_dev_close
53#define vnic_dev_enable fnic_dev_enable
54#define vnic_dev_disable fnic_dev_disable
55#define vnic_dev_open fnic_dev_open
56#define vnic_dev_open_done fnic_dev_open_done
57#define vnic_dev_init fnic_dev_init
58#define vnic_dev_soft_reset fnic_dev_soft_reset
59#define vnic_dev_soft_reset_done fnic_dev_soft_reset_done
60#define vnic_dev_set_intr_mode fnic_dev_set_intr_mode
61#define vnic_dev_get_intr_mode fnic_dev_get_intr_mode
62#define vnic_dev_unregister fnic_dev_unregister
63#define vnic_dev_register fnic_dev_register
64
65#ifndef VNIC_PADDR_TARGET
66#define VNIC_PADDR_TARGET 0x0000000000000000ULL
67#endif
68
69#ifndef readq
70static inline u64 readq(void __iomem *reg)
71{
72 return ((u64)readl(reg + 0x4UL) << 32) | (u64)readl(reg);
73}
74
75static inline void writeq(u64 val, void __iomem *reg)
76{
77 writel(val & 0xffffffff, reg);
78 writel(val >> 32, reg + 0x4UL);
79}
80#endif
81
82enum vnic_dev_intr_mode {
83 VNIC_DEV_INTR_MODE_UNKNOWN,
84 VNIC_DEV_INTR_MODE_INTX,
85 VNIC_DEV_INTR_MODE_MSI,
86 VNIC_DEV_INTR_MODE_MSIX,
87};
88
89struct vnic_dev_bar {
90 void __iomem *vaddr;
91 dma_addr_t bus_addr;
92 unsigned long len;
93};
94
95struct vnic_dev_ring {
96 void *descs;
97 size_t size;
98 dma_addr_t base_addr;
99 size_t base_align;
100 void *descs_unaligned;
101 size_t size_unaligned;
102 dma_addr_t base_addr_unaligned;
103 unsigned int desc_size;
104 unsigned int desc_count;
105 unsigned int desc_avail;
106};
107
108struct vnic_dev;
109struct vnic_stats;
110
111void *vnic_dev_priv(struct vnic_dev *vdev);
112unsigned int vnic_dev_get_res_count(struct vnic_dev *vdev,
113 enum vnic_res_type type);
114void __iomem *vnic_dev_get_res(struct vnic_dev *vdev, enum vnic_res_type type,
115 unsigned int index);
116unsigned int vnic_dev_desc_ring_size(struct vnic_dev_ring *ring,
117 unsigned int desc_count,
118 unsigned int desc_size);
119void vnic_dev_clear_desc_ring(struct vnic_dev_ring *ring);
120int vnic_dev_alloc_desc_ring(struct vnic_dev *vdev, struct vnic_dev_ring *ring,
121 unsigned int desc_count, unsigned int desc_size);
122void vnic_dev_free_desc_ring(struct vnic_dev *vdev,
123 struct vnic_dev_ring *ring);
124int vnic_dev_cmd(struct vnic_dev *vdev, enum vnic_devcmd_cmd cmd,
125 u64 *a0, u64 *a1, int wait);
126int vnic_dev_fw_info(struct vnic_dev *vdev,
127 struct vnic_devcmd_fw_info **fw_info);
128int vnic_dev_spec(struct vnic_dev *vdev, unsigned int offset,
129 unsigned int size, void *value);
130int vnic_dev_stats_clear(struct vnic_dev *vdev);
131int vnic_dev_stats_dump(struct vnic_dev *vdev, struct vnic_stats **stats);
132int vnic_dev_hang_notify(struct vnic_dev *vdev);
133void vnic_dev_packet_filter(struct vnic_dev *vdev, int directed, int multicast,
134 int broadcast, int promisc, int allmulti);
135void vnic_dev_add_addr(struct vnic_dev *vdev, u8 *addr);
136void vnic_dev_del_addr(struct vnic_dev *vdev, u8 *addr);
137int vnic_dev_mac_addr(struct vnic_dev *vdev, u8 *mac_addr);
138int vnic_dev_notify_set(struct vnic_dev *vdev, u16 intr);
139void vnic_dev_notify_unset(struct vnic_dev *vdev);
140int vnic_dev_link_status(struct vnic_dev *vdev);
141u32 vnic_dev_port_speed(struct vnic_dev *vdev);
142u32 vnic_dev_msg_lvl(struct vnic_dev *vdev);
143u32 vnic_dev_mtu(struct vnic_dev *vdev);
144u32 vnic_dev_link_down_cnt(struct vnic_dev *vdev);
145int vnic_dev_close(struct vnic_dev *vdev);
146int vnic_dev_enable(struct vnic_dev *vdev);
147int vnic_dev_disable(struct vnic_dev *vdev);
148int vnic_dev_open(struct vnic_dev *vdev, int arg);
149int vnic_dev_open_done(struct vnic_dev *vdev, int *done);
150int vnic_dev_init(struct vnic_dev *vdev, int arg);
151int vnic_dev_soft_reset(struct vnic_dev *vdev, int arg);
152int vnic_dev_soft_reset_done(struct vnic_dev *vdev, int *done);
153void vnic_dev_set_intr_mode(struct vnic_dev *vdev,
154 enum vnic_dev_intr_mode intr_mode);
155enum vnic_dev_intr_mode vnic_dev_get_intr_mode(struct vnic_dev *vdev);
156void vnic_dev_unregister(struct vnic_dev *vdev);
157struct vnic_dev *vnic_dev_register(struct vnic_dev *vdev,
158 void *priv, struct pci_dev *pdev,
159 struct vnic_dev_bar *bar);
160
161#endif /* _VNIC_DEV_H_ */
diff --git a/drivers/scsi/fnic/vnic_devcmd.h b/drivers/scsi/fnic/vnic_devcmd.h
new file mode 100644
index 000000000000..d62b9061bf12
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_devcmd.h
@@ -0,0 +1,281 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_DEVCMD_H_
19#define _VNIC_DEVCMD_H_
20
21#define _CMD_NBITS 14
22#define _CMD_VTYPEBITS 10
23#define _CMD_FLAGSBITS 6
24#define _CMD_DIRBITS 2
25
26#define _CMD_NMASK ((1 << _CMD_NBITS)-1)
27#define _CMD_VTYPEMASK ((1 << _CMD_VTYPEBITS)-1)
28#define _CMD_FLAGSMASK ((1 << _CMD_FLAGSBITS)-1)
29#define _CMD_DIRMASK ((1 << _CMD_DIRBITS)-1)
30
31#define _CMD_NSHIFT 0
32#define _CMD_VTYPESHIFT (_CMD_NSHIFT+_CMD_NBITS)
33#define _CMD_FLAGSSHIFT (_CMD_VTYPESHIFT+_CMD_VTYPEBITS)
34#define _CMD_DIRSHIFT (_CMD_FLAGSSHIFT+_CMD_FLAGSBITS)
35
36/*
37 * Direction bits (from host perspective).
38 */
39#define _CMD_DIR_NONE 0U
40#define _CMD_DIR_WRITE 1U
41#define _CMD_DIR_READ 2U
42#define _CMD_DIR_RW (_CMD_DIR_WRITE | _CMD_DIR_READ)
43
44/*
45 * Flag bits.
46 */
47#define _CMD_FLAGS_NONE 0U
48#define _CMD_FLAGS_NOWAIT 1U
49
50/*
51 * vNIC type bits.
52 */
53#define _CMD_VTYPE_NONE 0U
54#define _CMD_VTYPE_ENET 1U
55#define _CMD_VTYPE_FC 2U
56#define _CMD_VTYPE_SCSI 4U
57#define _CMD_VTYPE_ALL (_CMD_VTYPE_ENET | _CMD_VTYPE_FC | _CMD_VTYPE_SCSI)
58
59/*
60 * Used to create cmds..
61*/
62#define _CMDCF(dir, flags, vtype, nr) \
63 (((dir) << _CMD_DIRSHIFT) | \
64 ((flags) << _CMD_FLAGSSHIFT) | \
65 ((vtype) << _CMD_VTYPESHIFT) | \
66 ((nr) << _CMD_NSHIFT))
67#define _CMDC(dir, vtype, nr) _CMDCF(dir, 0, vtype, nr)
68#define _CMDCNW(dir, vtype, nr) _CMDCF(dir, _CMD_FLAGS_NOWAIT, vtype, nr)
69
70/*
71 * Used to decode cmds..
72*/
73#define _CMD_DIR(cmd) (((cmd) >> _CMD_DIRSHIFT) & _CMD_DIRMASK)
74#define _CMD_FLAGS(cmd) (((cmd) >> _CMD_FLAGSSHIFT) & _CMD_FLAGSMASK)
75#define _CMD_VTYPE(cmd) (((cmd) >> _CMD_VTYPESHIFT) & _CMD_VTYPEMASK)
76#define _CMD_N(cmd) (((cmd) >> _CMD_NSHIFT) & _CMD_NMASK)
77
78enum vnic_devcmd_cmd {
79 CMD_NONE = _CMDC(_CMD_DIR_NONE, _CMD_VTYPE_NONE, 0),
80
81 /* mcpu fw info in mem: (u64)a0=paddr to struct vnic_devcmd_fw_info */
82 CMD_MCPU_FW_INFO = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_ALL, 1),
83
84 /* dev-specific block member:
85 * in: (u16)a0=offset,(u8)a1=size
86 * out: a0=value */
87 CMD_DEV_SPEC = _CMDC(_CMD_DIR_RW, _CMD_VTYPE_ALL, 2),
88
89 /* stats clear */
90 CMD_STATS_CLEAR = _CMDCNW(_CMD_DIR_NONE, _CMD_VTYPE_ALL, 3),
91
92 /* stats dump in mem: (u64)a0=paddr to stats area,
93 * (u16)a1=sizeof stats area */
94 CMD_STATS_DUMP = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_ALL, 4),
95
96 /* set Rx packet filter: (u32)a0=filters (see CMD_PFILTER_*) */
97 CMD_PACKET_FILTER = _CMDCNW(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 7),
98
99 /* hang detection notification */
100 CMD_HANG_NOTIFY = _CMDC(_CMD_DIR_NONE, _CMD_VTYPE_ALL, 8),
101
102 /* MAC address in (u48)a0 */
103 CMD_MAC_ADDR = _CMDC(_CMD_DIR_READ,
104 _CMD_VTYPE_ENET | _CMD_VTYPE_FC, 9),
105
106 /* disable/enable promisc mode: (u8)a0=0/1 */
107/***** XXX DEPRECATED *****/
108 CMD_PROMISC_MODE = _CMDCNW(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 10),
109
110 /* disable/enable all-multi mode: (u8)a0=0/1 */
111/***** XXX DEPRECATED *****/
112 CMD_ALLMULTI_MODE = _CMDCNW(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 11),
113
114 /* add addr from (u48)a0 */
115 CMD_ADDR_ADD = _CMDCNW(_CMD_DIR_WRITE,
116 _CMD_VTYPE_ENET | _CMD_VTYPE_FC, 12),
117
118 /* del addr from (u48)a0 */
119 CMD_ADDR_DEL = _CMDCNW(_CMD_DIR_WRITE,
120 _CMD_VTYPE_ENET | _CMD_VTYPE_FC, 13),
121
122 /* add VLAN id in (u16)a0 */
123 CMD_VLAN_ADD = _CMDCNW(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 14),
124
125 /* del VLAN id in (u16)a0 */
126 CMD_VLAN_DEL = _CMDCNW(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 15),
127
128 /* nic_cfg in (u32)a0 */
129 CMD_NIC_CFG = _CMDCNW(_CMD_DIR_WRITE, _CMD_VTYPE_ALL, 16),
130
131 /* union vnic_rss_key in mem: (u64)a0=paddr, (u16)a1=len */
132 CMD_RSS_KEY = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 17),
133
134 /* union vnic_rss_cpu in mem: (u64)a0=paddr, (u16)a1=len */
135 CMD_RSS_CPU = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 18),
136
137 /* initiate softreset */
138 CMD_SOFT_RESET = _CMDCNW(_CMD_DIR_NONE, _CMD_VTYPE_ALL, 19),
139
140 /* softreset status:
141 * out: a0=0 reset complete, a0=1 reset in progress */
142 CMD_SOFT_RESET_STATUS = _CMDC(_CMD_DIR_READ, _CMD_VTYPE_ALL, 20),
143
144 /* set struct vnic_devcmd_notify buffer in mem:
145 * in:
146 * (u64)a0=paddr to notify (set paddr=0 to unset)
147 * (u32)a1 & 0x00000000ffffffff=sizeof(struct vnic_devcmd_notify)
148 * (u16)a1 & 0x0000ffff00000000=intr num (-1 for no intr)
149 * out:
150 * (u32)a1 = effective size
151 */
152 CMD_NOTIFY = _CMDC(_CMD_DIR_RW, _CMD_VTYPE_ALL, 21),
153
154 /* UNDI API: (u64)a0=paddr to s_PXENV_UNDI_ struct,
155 * (u8)a1=PXENV_UNDI_xxx */
156 CMD_UNDI = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 22),
157
158 /* initiate open sequence (u32)a0=flags (see CMD_OPENF_*) */
159 CMD_OPEN = _CMDCNW(_CMD_DIR_WRITE, _CMD_VTYPE_ALL, 23),
160
161 /* open status:
162 * out: a0=0 open complete, a0=1 open in progress */
163 CMD_OPEN_STATUS = _CMDC(_CMD_DIR_READ, _CMD_VTYPE_ALL, 24),
164
165 /* close vnic */
166 CMD_CLOSE = _CMDC(_CMD_DIR_NONE, _CMD_VTYPE_ALL, 25),
167
168 /* initialize virtual link: (u32)a0=flags (see CMD_INITF_*) */
169 CMD_INIT = _CMDCNW(_CMD_DIR_READ, _CMD_VTYPE_ALL, 26),
170
171 /* variant of CMD_INIT, with provisioning info
172 * (u64)a0=paddr of vnic_devcmd_provinfo
173 * (u32)a1=sizeof provision info */
174 CMD_INIT_PROV_INFO = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 27),
175
176 /* enable virtual link */
177 CMD_ENABLE = _CMDCNW(_CMD_DIR_WRITE, _CMD_VTYPE_ALL, 28),
178
179 /* disable virtual link */
180 CMD_DISABLE = _CMDC(_CMD_DIR_NONE, _CMD_VTYPE_ALL, 29),
181
182 /* stats dump all vnics on uplink in mem: (u64)a0=paddr (u32)a1=uif */
183 CMD_STATS_DUMP_ALL = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_ALL, 30),
184
185 /* init status:
186 * out: a0=0 init complete, a0=1 init in progress
187 * if a0=0, a1=errno */
188 CMD_INIT_STATUS = _CMDC(_CMD_DIR_READ, _CMD_VTYPE_ALL, 31),
189
190 /* INT13 API: (u64)a0=paddr to vnic_int13_params struct
191 * (u8)a1=INT13_CMD_xxx */
192 CMD_INT13 = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_FC, 32),
193
194 /* logical uplink enable/disable: (u64)a0: 0/1=disable/enable */
195 CMD_LOGICAL_UPLINK = _CMDCNW(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 33),
196
197 /* undo initialize of virtual link */
198 CMD_DEINIT = _CMDCNW(_CMD_DIR_NONE, _CMD_VTYPE_ALL, 34),
199};
200
201/* flags for CMD_OPEN */
202#define CMD_OPENF_OPROM 0x1 /* open coming from option rom */
203
204/* flags for CMD_INIT */
205#define CMD_INITF_DEFAULT_MAC 0x1 /* init with default mac addr */
206
207/* flags for CMD_PACKET_FILTER */
208#define CMD_PFILTER_DIRECTED 0x01
209#define CMD_PFILTER_MULTICAST 0x02
210#define CMD_PFILTER_BROADCAST 0x04
211#define CMD_PFILTER_PROMISCUOUS 0x08
212#define CMD_PFILTER_ALL_MULTICAST 0x10
213
214enum vnic_devcmd_status {
215 STAT_NONE = 0,
216 STAT_BUSY = 1 << 0, /* cmd in progress */
217 STAT_ERROR = 1 << 1, /* last cmd caused error (code in a0) */
218};
219
220enum vnic_devcmd_error {
221 ERR_SUCCESS = 0,
222 ERR_EINVAL = 1,
223 ERR_EFAULT = 2,
224 ERR_EPERM = 3,
225 ERR_EBUSY = 4,
226 ERR_ECMDUNKNOWN = 5,
227 ERR_EBADSTATE = 6,
228 ERR_ENOMEM = 7,
229 ERR_ETIMEDOUT = 8,
230 ERR_ELINKDOWN = 9,
231};
232
233struct vnic_devcmd_fw_info {
234 char fw_version[32];
235 char fw_build[32];
236 char hw_version[32];
237 char hw_serial_number[32];
238};
239
240struct vnic_devcmd_notify {
241 u32 csum; /* checksum over following words */
242
243 u32 link_state; /* link up == 1 */
244 u32 port_speed; /* effective port speed (rate limit) */
245 u32 mtu; /* MTU */
246 u32 msglvl; /* requested driver msg lvl */
247 u32 uif; /* uplink interface */
248 u32 status; /* status bits (see VNIC_STF_*) */
249 u32 error; /* error code (see ERR_*) for first ERR */
250 u32 link_down_cnt; /* running count of link down transitions */
251};
252#define VNIC_STF_FATAL_ERR 0x0001 /* fatal fw error */
253
254struct vnic_devcmd_provinfo {
255 u8 oui[3];
256 u8 type;
257 u8 data[0];
258};
259
260/*
261 * Writing cmd register causes STAT_BUSY to get set in status register.
262 * When cmd completes, STAT_BUSY will be cleared.
263 *
264 * If cmd completed successfully STAT_ERROR will be clear
265 * and args registers contain cmd-specific results.
266 *
267 * If cmd error, STAT_ERROR will be set and args[0] contains error code.
268 *
269 * status register is read-only. While STAT_BUSY is set,
270 * all other register contents are read-only.
271 */
272
273/* Make sizeof(vnic_devcmd) a power-of-2 for I/O BAR. */
274#define VNIC_DEVCMD_NARGS 15
275struct vnic_devcmd {
276 u32 status; /* RO */
277 u32 cmd; /* RW */
278 u64 args[VNIC_DEVCMD_NARGS]; /* RW cmd args (little-endian) */
279};
280
281#endif /* _VNIC_DEVCMD_H_ */
diff --git a/drivers/scsi/fnic/vnic_intr.c b/drivers/scsi/fnic/vnic_intr.c
new file mode 100644
index 000000000000..4f4dc8793d23
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_intr.c
@@ -0,0 +1,60 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18
19#include <linux/kernel.h>
20#include <linux/errno.h>
21#include <linux/types.h>
22#include <linux/pci.h>
23#include <linux/delay.h>
24#include "vnic_dev.h"
25#include "vnic_intr.h"
26
27void vnic_intr_free(struct vnic_intr *intr)
28{
29 intr->ctrl = NULL;
30}
31
32int vnic_intr_alloc(struct vnic_dev *vdev, struct vnic_intr *intr,
33 unsigned int index)
34{
35 intr->index = index;
36 intr->vdev = vdev;
37
38 intr->ctrl = vnic_dev_get_res(vdev, RES_TYPE_INTR_CTRL, index);
39 if (!intr->ctrl) {
40 printk(KERN_ERR "Failed to hook INTR[%d].ctrl resource\n",
41 index);
42 return -EINVAL;
43 }
44
45 return 0;
46}
47
48void vnic_intr_init(struct vnic_intr *intr, unsigned int coalescing_timer,
49 unsigned int coalescing_type, unsigned int mask_on_assertion)
50{
51 iowrite32(coalescing_timer, &intr->ctrl->coalescing_timer);
52 iowrite32(coalescing_type, &intr->ctrl->coalescing_type);
53 iowrite32(mask_on_assertion, &intr->ctrl->mask_on_assertion);
54 iowrite32(0, &intr->ctrl->int_credits);
55}
56
57void vnic_intr_clean(struct vnic_intr *intr)
58{
59 iowrite32(0, &intr->ctrl->int_credits);
60}
diff --git a/drivers/scsi/fnic/vnic_intr.h b/drivers/scsi/fnic/vnic_intr.h
new file mode 100644
index 000000000000..d5fb40e7c98e
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_intr.h
@@ -0,0 +1,118 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_INTR_H_
19#define _VNIC_INTR_H_
20
21#include <linux/pci.h>
22#include "vnic_dev.h"
23
24/*
25 * These defines avoid symbol clash between fnic and enic (Cisco 10G Eth
26 * Driver) when both are built with CONFIG options =y
27 */
28#define vnic_intr_unmask fnic_intr_unmask
29#define vnic_intr_mask fnic_intr_mask
30#define vnic_intr_return_credits fnic_intr_return_credits
31#define vnic_intr_credits fnic_intr_credits
32#define vnic_intr_return_all_credits fnic_intr_return_all_credits
33#define vnic_intr_legacy_pba fnic_intr_legacy_pba
34#define vnic_intr_free fnic_intr_free
35#define vnic_intr_alloc fnic_intr_alloc
36#define vnic_intr_init fnic_intr_init
37#define vnic_intr_clean fnic_intr_clean
38
39#define VNIC_INTR_TIMER_MAX 0xffff
40
41#define VNIC_INTR_TIMER_TYPE_ABS 0
42#define VNIC_INTR_TIMER_TYPE_QUIET 1
43
44/* Interrupt control */
45struct vnic_intr_ctrl {
46 u32 coalescing_timer; /* 0x00 */
47 u32 pad0;
48 u32 coalescing_value; /* 0x08 */
49 u32 pad1;
50 u32 coalescing_type; /* 0x10 */
51 u32 pad2;
52 u32 mask_on_assertion; /* 0x18 */
53 u32 pad3;
54 u32 mask; /* 0x20 */
55 u32 pad4;
56 u32 int_credits; /* 0x28 */
57 u32 pad5;
58 u32 int_credit_return; /* 0x30 */
59 u32 pad6;
60};
61
62struct vnic_intr {
63 unsigned int index;
64 struct vnic_dev *vdev;
65 struct vnic_intr_ctrl __iomem *ctrl; /* memory-mapped */
66};
67
68static inline void vnic_intr_unmask(struct vnic_intr *intr)
69{
70 iowrite32(0, &intr->ctrl->mask);
71}
72
73static inline void vnic_intr_mask(struct vnic_intr *intr)
74{
75 iowrite32(1, &intr->ctrl->mask);
76}
77
78static inline void vnic_intr_return_credits(struct vnic_intr *intr,
79 unsigned int credits, int unmask, int reset_timer)
80{
81#define VNIC_INTR_UNMASK_SHIFT 16
82#define VNIC_INTR_RESET_TIMER_SHIFT 17
83
84 u32 int_credit_return = (credits & 0xffff) |
85 (unmask ? (1 << VNIC_INTR_UNMASK_SHIFT) : 0) |
86 (reset_timer ? (1 << VNIC_INTR_RESET_TIMER_SHIFT) : 0);
87
88 iowrite32(int_credit_return, &intr->ctrl->int_credit_return);
89}
90
91static inline unsigned int vnic_intr_credits(struct vnic_intr *intr)
92{
93 return ioread32(&intr->ctrl->int_credits);
94}
95
96static inline void vnic_intr_return_all_credits(struct vnic_intr *intr)
97{
98 unsigned int credits = vnic_intr_credits(intr);
99 int unmask = 1;
100 int reset_timer = 1;
101
102 vnic_intr_return_credits(intr, credits, unmask, reset_timer);
103}
104
105static inline u32 vnic_intr_legacy_pba(u32 __iomem *legacy_pba)
106{
107 /* read PBA without clearing */
108 return ioread32(legacy_pba);
109}
110
111void vnic_intr_free(struct vnic_intr *intr);
112int vnic_intr_alloc(struct vnic_dev *vdev, struct vnic_intr *intr,
113 unsigned int index);
114void vnic_intr_init(struct vnic_intr *intr, unsigned int coalescing_timer,
115 unsigned int coalescing_type, unsigned int mask_on_assertion);
116void vnic_intr_clean(struct vnic_intr *intr);
117
118#endif /* _VNIC_INTR_H_ */
diff --git a/drivers/scsi/fnic/vnic_nic.h b/drivers/scsi/fnic/vnic_nic.h
new file mode 100644
index 000000000000..f15b83eeaced
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_nic.h
@@ -0,0 +1,69 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_NIC_H_
19#define _VNIC_NIC_H_
20
21/*
22 * These defines avoid symbol clash between fnic and enic (Cisco 10G Eth
23 * Driver) when both are built with CONFIG options =y
24 */
25#define vnic_set_nic_cfg fnic_set_nic_cfg
26
27#define NIC_CFG_RSS_DEFAULT_CPU_MASK_FIELD 0xffUL
28#define NIC_CFG_RSS_DEFAULT_CPU_SHIFT 0
29#define NIC_CFG_RSS_HASH_TYPE (0xffUL << 8)
30#define NIC_CFG_RSS_HASH_TYPE_MASK_FIELD 0xffUL
31#define NIC_CFG_RSS_HASH_TYPE_SHIFT 8
32#define NIC_CFG_RSS_HASH_BITS (7UL << 16)
33#define NIC_CFG_RSS_HASH_BITS_MASK_FIELD 7UL
34#define NIC_CFG_RSS_HASH_BITS_SHIFT 16
35#define NIC_CFG_RSS_BASE_CPU (7UL << 19)
36#define NIC_CFG_RSS_BASE_CPU_MASK_FIELD 7UL
37#define NIC_CFG_RSS_BASE_CPU_SHIFT 19
38#define NIC_CFG_RSS_ENABLE (1UL << 22)
39#define NIC_CFG_RSS_ENABLE_MASK_FIELD 1UL
40#define NIC_CFG_RSS_ENABLE_SHIFT 22
41#define NIC_CFG_TSO_IPID_SPLIT_EN (1UL << 23)
42#define NIC_CFG_TSO_IPID_SPLIT_EN_MASK_FIELD 1UL
43#define NIC_CFG_TSO_IPID_SPLIT_EN_SHIFT 23
44#define NIC_CFG_IG_VLAN_STRIP_EN (1UL << 24)
45#define NIC_CFG_IG_VLAN_STRIP_EN_MASK_FIELD 1UL
46#define NIC_CFG_IG_VLAN_STRIP_EN_SHIFT 24
47
48static inline void vnic_set_nic_cfg(u32 *nic_cfg,
49 u8 rss_default_cpu, u8 rss_hash_type,
50 u8 rss_hash_bits, u8 rss_base_cpu,
51 u8 rss_enable, u8 tso_ipid_split_en,
52 u8 ig_vlan_strip_en)
53{
54 *nic_cfg = (rss_default_cpu & NIC_CFG_RSS_DEFAULT_CPU_MASK_FIELD) |
55 ((rss_hash_type & NIC_CFG_RSS_HASH_TYPE_MASK_FIELD)
56 << NIC_CFG_RSS_HASH_TYPE_SHIFT) |
57 ((rss_hash_bits & NIC_CFG_RSS_HASH_BITS_MASK_FIELD)
58 << NIC_CFG_RSS_HASH_BITS_SHIFT) |
59 ((rss_base_cpu & NIC_CFG_RSS_BASE_CPU_MASK_FIELD)
60 << NIC_CFG_RSS_BASE_CPU_SHIFT) |
61 ((rss_enable & NIC_CFG_RSS_ENABLE_MASK_FIELD)
62 << NIC_CFG_RSS_ENABLE_SHIFT) |
63 ((tso_ipid_split_en & NIC_CFG_TSO_IPID_SPLIT_EN_MASK_FIELD)
64 << NIC_CFG_TSO_IPID_SPLIT_EN_SHIFT) |
65 ((ig_vlan_strip_en & NIC_CFG_IG_VLAN_STRIP_EN_MASK_FIELD)
66 << NIC_CFG_IG_VLAN_STRIP_EN_SHIFT);
67}
68
69#endif /* _VNIC_NIC_H_ */
diff --git a/drivers/scsi/fnic/vnic_resource.h b/drivers/scsi/fnic/vnic_resource.h
new file mode 100644
index 000000000000..2d842f79d41a
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_resource.h
@@ -0,0 +1,61 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_RESOURCE_H_
19#define _VNIC_RESOURCE_H_
20
21#define VNIC_RES_MAGIC 0x766E6963L /* 'vnic' */
22#define VNIC_RES_VERSION 0x00000000L
23
24/* vNIC resource types */
25enum vnic_res_type {
26 RES_TYPE_EOL, /* End-of-list */
27 RES_TYPE_WQ, /* Work queues */
28 RES_TYPE_RQ, /* Receive queues */
29 RES_TYPE_CQ, /* Completion queues */
30 RES_TYPE_RSVD1,
31 RES_TYPE_NIC_CFG, /* Enet NIC config registers */
32 RES_TYPE_RSVD2,
33 RES_TYPE_RSVD3,
34 RES_TYPE_RSVD4,
35 RES_TYPE_RSVD5,
36 RES_TYPE_INTR_CTRL, /* Interrupt ctrl table */
37 RES_TYPE_INTR_TABLE, /* MSI/MSI-X Interrupt table */
38 RES_TYPE_INTR_PBA, /* MSI/MSI-X PBA table */
39 RES_TYPE_INTR_PBA_LEGACY, /* Legacy intr status */
40 RES_TYPE_RSVD6,
41 RES_TYPE_RSVD7,
42 RES_TYPE_DEVCMD, /* Device command region */
43 RES_TYPE_PASS_THRU_PAGE, /* Pass-thru page */
44
45 RES_TYPE_MAX, /* Count of resource types */
46};
47
48struct vnic_resource_header {
49 u32 magic;
50 u32 version;
51};
52
53struct vnic_resource {
54 u8 type;
55 u8 bar;
56 u8 pad[2];
57 u32 bar_offset;
58 u32 count;
59};
60
61#endif /* _VNIC_RESOURCE_H_ */
diff --git a/drivers/scsi/fnic/vnic_rq.c b/drivers/scsi/fnic/vnic_rq.c
new file mode 100644
index 000000000000..bedd0d285630
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_rq.c
@@ -0,0 +1,196 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18
19#include <linux/errno.h>
20#include <linux/types.h>
21#include <linux/pci.h>
22#include <linux/delay.h>
23#include "vnic_dev.h"
24#include "vnic_rq.h"
25
26static int vnic_rq_alloc_bufs(struct vnic_rq *rq)
27{
28 struct vnic_rq_buf *buf;
29 struct vnic_dev *vdev;
30 unsigned int i, j, count = rq->ring.desc_count;
31 unsigned int blks = VNIC_RQ_BUF_BLKS_NEEDED(count);
32
33 vdev = rq->vdev;
34
35 for (i = 0; i < blks; i++) {
36 rq->bufs[i] = kzalloc(VNIC_RQ_BUF_BLK_SZ, GFP_ATOMIC);
37 if (!rq->bufs[i]) {
38 printk(KERN_ERR "Failed to alloc rq_bufs\n");
39 return -ENOMEM;
40 }
41 }
42
43 for (i = 0; i < blks; i++) {
44 buf = rq->bufs[i];
45 for (j = 0; j < VNIC_RQ_BUF_BLK_ENTRIES; j++) {
46 buf->index = i * VNIC_RQ_BUF_BLK_ENTRIES + j;
47 buf->desc = (u8 *)rq->ring.descs +
48 rq->ring.desc_size * buf->index;
49 if (buf->index + 1 == count) {
50 buf->next = rq->bufs[0];
51 break;
52 } else if (j + 1 == VNIC_RQ_BUF_BLK_ENTRIES) {
53 buf->next = rq->bufs[i + 1];
54 } else {
55 buf->next = buf + 1;
56 buf++;
57 }
58 }
59 }
60
61 rq->to_use = rq->to_clean = rq->bufs[0];
62 rq->buf_index = 0;
63
64 return 0;
65}
66
67void vnic_rq_free(struct vnic_rq *rq)
68{
69 struct vnic_dev *vdev;
70 unsigned int i;
71
72 vdev = rq->vdev;
73
74 vnic_dev_free_desc_ring(vdev, &rq->ring);
75
76 for (i = 0; i < VNIC_RQ_BUF_BLKS_MAX; i++) {
77 kfree(rq->bufs[i]);
78 rq->bufs[i] = NULL;
79 }
80
81 rq->ctrl = NULL;
82}
83
84int vnic_rq_alloc(struct vnic_dev *vdev, struct vnic_rq *rq, unsigned int index,
85 unsigned int desc_count, unsigned int desc_size)
86{
87 int err;
88
89 rq->index = index;
90 rq->vdev = vdev;
91
92 rq->ctrl = vnic_dev_get_res(vdev, RES_TYPE_RQ, index);
93 if (!rq->ctrl) {
94 printk(KERN_ERR "Failed to hook RQ[%d] resource\n", index);
95 return -EINVAL;
96 }
97
98 vnic_rq_disable(rq);
99
100 err = vnic_dev_alloc_desc_ring(vdev, &rq->ring, desc_count, desc_size);
101 if (err)
102 return err;
103
104 err = vnic_rq_alloc_bufs(rq);
105 if (err) {
106 vnic_rq_free(rq);
107 return err;
108 }
109
110 return 0;
111}
112
113void vnic_rq_init(struct vnic_rq *rq, unsigned int cq_index,
114 unsigned int error_interrupt_enable,
115 unsigned int error_interrupt_offset)
116{
117 u64 paddr;
118 u32 fetch_index;
119
120 paddr = (u64)rq->ring.base_addr | VNIC_PADDR_TARGET;
121 writeq(paddr, &rq->ctrl->ring_base);
122 iowrite32(rq->ring.desc_count, &rq->ctrl->ring_size);
123 iowrite32(cq_index, &rq->ctrl->cq_index);
124 iowrite32(error_interrupt_enable, &rq->ctrl->error_interrupt_enable);
125 iowrite32(error_interrupt_offset, &rq->ctrl->error_interrupt_offset);
126 iowrite32(0, &rq->ctrl->dropped_packet_count);
127 iowrite32(0, &rq->ctrl->error_status);
128
129 /* Use current fetch_index as the ring starting point */
130 fetch_index = ioread32(&rq->ctrl->fetch_index);
131 rq->to_use = rq->to_clean =
132 &rq->bufs[fetch_index / VNIC_RQ_BUF_BLK_ENTRIES]
133 [fetch_index % VNIC_RQ_BUF_BLK_ENTRIES];
134 iowrite32(fetch_index, &rq->ctrl->posted_index);
135
136 rq->buf_index = 0;
137}
138
139unsigned int vnic_rq_error_status(struct vnic_rq *rq)
140{
141 return ioread32(&rq->ctrl->error_status);
142}
143
144void vnic_rq_enable(struct vnic_rq *rq)
145{
146 iowrite32(1, &rq->ctrl->enable);
147}
148
149int vnic_rq_disable(struct vnic_rq *rq)
150{
151 unsigned int wait;
152
153 iowrite32(0, &rq->ctrl->enable);
154
155 /* Wait for HW to ACK disable request */
156 for (wait = 0; wait < 100; wait++) {
157 if (!(ioread32(&rq->ctrl->running)))
158 return 0;
159 udelay(1);
160 }
161
162 printk(KERN_ERR "Failed to disable RQ[%d]\n", rq->index);
163
164 return -ETIMEDOUT;
165}
166
167void vnic_rq_clean(struct vnic_rq *rq,
168 void (*buf_clean)(struct vnic_rq *rq, struct vnic_rq_buf *buf))
169{
170 struct vnic_rq_buf *buf;
171 u32 fetch_index;
172
173 BUG_ON(ioread32(&rq->ctrl->enable));
174
175 buf = rq->to_clean;
176
177 while (vnic_rq_desc_used(rq) > 0) {
178
179 (*buf_clean)(rq, buf);
180
181 buf = rq->to_clean = buf->next;
182 rq->ring.desc_avail++;
183 }
184
185 /* Use current fetch_index as the ring starting point */
186 fetch_index = ioread32(&rq->ctrl->fetch_index);
187 rq->to_use = rq->to_clean =
188 &rq->bufs[fetch_index / VNIC_RQ_BUF_BLK_ENTRIES]
189 [fetch_index % VNIC_RQ_BUF_BLK_ENTRIES];
190 iowrite32(fetch_index, &rq->ctrl->posted_index);
191
192 rq->buf_index = 0;
193
194 vnic_dev_clear_desc_ring(&rq->ring);
195}
196
diff --git a/drivers/scsi/fnic/vnic_rq.h b/drivers/scsi/fnic/vnic_rq.h
new file mode 100644
index 000000000000..aebdfbd6ad3c
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_rq.h
@@ -0,0 +1,235 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_RQ_H_
19#define _VNIC_RQ_H_
20
21#include <linux/pci.h>
22#include "vnic_dev.h"
23#include "vnic_cq.h"
24
25/*
26 * These defines avoid symbol clash between fnic and enic (Cisco 10G Eth
27 * Driver) when both are built with CONFIG options =y
28 */
29#define vnic_rq_desc_avail fnic_rq_desc_avail
30#define vnic_rq_desc_used fnic_rq_desc_used
31#define vnic_rq_next_desc fnic_rq_next_desc
32#define vnic_rq_next_index fnic_rq_next_index
33#define vnic_rq_next_buf_index fnic_rq_next_buf_index
34#define vnic_rq_post fnic_rq_post
35#define vnic_rq_posting_soon fnic_rq_posting_soon
36#define vnic_rq_return_descs fnic_rq_return_descs
37#define vnic_rq_service fnic_rq_service
38#define vnic_rq_fill fnic_rq_fill
39#define vnic_rq_free fnic_rq_free
40#define vnic_rq_alloc fnic_rq_alloc
41#define vnic_rq_init fnic_rq_init
42#define vnic_rq_error_status fnic_rq_error_status
43#define vnic_rq_enable fnic_rq_enable
44#define vnic_rq_disable fnic_rq_disable
45#define vnic_rq_clean fnic_rq_clean
46
47/* Receive queue control */
48struct vnic_rq_ctrl {
49 u64 ring_base; /* 0x00 */
50 u32 ring_size; /* 0x08 */
51 u32 pad0;
52 u32 posted_index; /* 0x10 */
53 u32 pad1;
54 u32 cq_index; /* 0x18 */
55 u32 pad2;
56 u32 enable; /* 0x20 */
57 u32 pad3;
58 u32 running; /* 0x28 */
59 u32 pad4;
60 u32 fetch_index; /* 0x30 */
61 u32 pad5;
62 u32 error_interrupt_enable; /* 0x38 */
63 u32 pad6;
64 u32 error_interrupt_offset; /* 0x40 */
65 u32 pad7;
66 u32 error_status; /* 0x48 */
67 u32 pad8;
68 u32 dropped_packet_count; /* 0x50 */
69 u32 pad9;
70 u32 dropped_packet_count_rc; /* 0x58 */
71 u32 pad10;
72};
73
74/* Break the vnic_rq_buf allocations into blocks of 64 entries */
75#define VNIC_RQ_BUF_BLK_ENTRIES 64
76#define VNIC_RQ_BUF_BLK_SZ \
77 (VNIC_RQ_BUF_BLK_ENTRIES * sizeof(struct vnic_rq_buf))
78#define VNIC_RQ_BUF_BLKS_NEEDED(entries) \
79 DIV_ROUND_UP(entries, VNIC_RQ_BUF_BLK_ENTRIES)
80#define VNIC_RQ_BUF_BLKS_MAX VNIC_RQ_BUF_BLKS_NEEDED(4096)
81
82struct vnic_rq_buf {
83 struct vnic_rq_buf *next;
84 dma_addr_t dma_addr;
85 void *os_buf;
86 unsigned int os_buf_index;
87 unsigned int len;
88 unsigned int index;
89 void *desc;
90};
91
92struct vnic_rq {
93 unsigned int index;
94 struct vnic_dev *vdev;
95 struct vnic_rq_ctrl __iomem *ctrl; /* memory-mapped */
96 struct vnic_dev_ring ring;
97 struct vnic_rq_buf *bufs[VNIC_RQ_BUF_BLKS_MAX];
98 struct vnic_rq_buf *to_use;
99 struct vnic_rq_buf *to_clean;
100 void *os_buf_head;
101 unsigned int buf_index;
102 unsigned int pkts_outstanding;
103};
104
105static inline unsigned int vnic_rq_desc_avail(struct vnic_rq *rq)
106{
107 /* how many does SW own? */
108 return rq->ring.desc_avail;
109}
110
111static inline unsigned int vnic_rq_desc_used(struct vnic_rq *rq)
112{
113 /* how many does HW own? */
114 return rq->ring.desc_count - rq->ring.desc_avail - 1;
115}
116
117static inline void *vnic_rq_next_desc(struct vnic_rq *rq)
118{
119 return rq->to_use->desc;
120}
121
122static inline unsigned int vnic_rq_next_index(struct vnic_rq *rq)
123{
124 return rq->to_use->index;
125}
126
127static inline unsigned int vnic_rq_next_buf_index(struct vnic_rq *rq)
128{
129 return rq->buf_index++;
130}
131
132static inline void vnic_rq_post(struct vnic_rq *rq,
133 void *os_buf, unsigned int os_buf_index,
134 dma_addr_t dma_addr, unsigned int len)
135{
136 struct vnic_rq_buf *buf = rq->to_use;
137
138 buf->os_buf = os_buf;
139 buf->os_buf_index = os_buf_index;
140 buf->dma_addr = dma_addr;
141 buf->len = len;
142
143 buf = buf->next;
144 rq->to_use = buf;
145 rq->ring.desc_avail--;
146
147 /* Move the posted_index every nth descriptor
148 */
149
150#ifndef VNIC_RQ_RETURN_RATE
151#define VNIC_RQ_RETURN_RATE 0xf /* keep 2^n - 1 */
152#endif
153
154 if ((buf->index & VNIC_RQ_RETURN_RATE) == 0) {
155 /* Adding write memory barrier prevents compiler and/or CPU
156 * reordering, thus avoiding descriptor posting before
157 * descriptor is initialized. Otherwise, hardware can read
158 * stale descriptor fields.
159 */
160 wmb();
161 iowrite32(buf->index, &rq->ctrl->posted_index);
162 }
163}
164
165static inline int vnic_rq_posting_soon(struct vnic_rq *rq)
166{
167 return (rq->to_use->index & VNIC_RQ_RETURN_RATE) == 0;
168}
169
170static inline void vnic_rq_return_descs(struct vnic_rq *rq, unsigned int count)
171{
172 rq->ring.desc_avail += count;
173}
174
175enum desc_return_options {
176 VNIC_RQ_RETURN_DESC,
177 VNIC_RQ_DEFER_RETURN_DESC,
178};
179
180static inline void vnic_rq_service(struct vnic_rq *rq,
181 struct cq_desc *cq_desc, u16 completed_index,
182 int desc_return, void (*buf_service)(struct vnic_rq *rq,
183 struct cq_desc *cq_desc, struct vnic_rq_buf *buf,
184 int skipped, void *opaque), void *opaque)
185{
186 struct vnic_rq_buf *buf;
187 int skipped;
188
189 buf = rq->to_clean;
190 while (1) {
191
192 skipped = (buf->index != completed_index);
193
194 (*buf_service)(rq, cq_desc, buf, skipped, opaque);
195
196 if (desc_return == VNIC_RQ_RETURN_DESC)
197 rq->ring.desc_avail++;
198
199 rq->to_clean = buf->next;
200
201 if (!skipped)
202 break;
203
204 buf = rq->to_clean;
205 }
206}
207
208static inline int vnic_rq_fill(struct vnic_rq *rq,
209 int (*buf_fill)(struct vnic_rq *rq))
210{
211 int err;
212
213 while (vnic_rq_desc_avail(rq) > 1) {
214
215 err = (*buf_fill)(rq);
216 if (err)
217 return err;
218 }
219
220 return 0;
221}
222
223void vnic_rq_free(struct vnic_rq *rq);
224int vnic_rq_alloc(struct vnic_dev *vdev, struct vnic_rq *rq, unsigned int index,
225 unsigned int desc_count, unsigned int desc_size);
226void vnic_rq_init(struct vnic_rq *rq, unsigned int cq_index,
227 unsigned int error_interrupt_enable,
228 unsigned int error_interrupt_offset);
229unsigned int vnic_rq_error_status(struct vnic_rq *rq);
230void vnic_rq_enable(struct vnic_rq *rq);
231int vnic_rq_disable(struct vnic_rq *rq);
232void vnic_rq_clean(struct vnic_rq *rq,
233 void (*buf_clean)(struct vnic_rq *rq, struct vnic_rq_buf *buf));
234
235#endif /* _VNIC_RQ_H_ */
diff --git a/drivers/scsi/fnic/vnic_scsi.h b/drivers/scsi/fnic/vnic_scsi.h
new file mode 100644
index 000000000000..46baa5254001
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_scsi.h
@@ -0,0 +1,99 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_SCSI_H_
19#define _VNIC_SCSI_H_
20
21#define VNIC_FNIC_WQ_COPY_COUNT_MIN 1
22#define VNIC_FNIC_WQ_COPY_COUNT_MAX 1
23
24#define VNIC_FNIC_WQ_DESCS_MIN 64
25#define VNIC_FNIC_WQ_DESCS_MAX 128
26
27#define VNIC_FNIC_WQ_COPY_DESCS_MIN 64
28#define VNIC_FNIC_WQ_COPY_DESCS_MAX 512
29
30#define VNIC_FNIC_RQ_DESCS_MIN 64
31#define VNIC_FNIC_RQ_DESCS_MAX 128
32
33#define VNIC_FNIC_EDTOV_MIN 1000
34#define VNIC_FNIC_EDTOV_MAX 255000
35#define VNIC_FNIC_EDTOV_DEF 2000
36
37#define VNIC_FNIC_RATOV_MIN 1000
38#define VNIC_FNIC_RATOV_MAX 255000
39
40#define VNIC_FNIC_MAXDATAFIELDSIZE_MIN 256
41#define VNIC_FNIC_MAXDATAFIELDSIZE_MAX 2112
42
43#define VNIC_FNIC_FLOGI_RETRIES_MIN 0
44#define VNIC_FNIC_FLOGI_RETRIES_MAX 0xffffffff
45#define VNIC_FNIC_FLOGI_RETRIES_DEF 0xffffffff
46
47#define VNIC_FNIC_FLOGI_TIMEOUT_MIN 1000
48#define VNIC_FNIC_FLOGI_TIMEOUT_MAX 255000
49
50#define VNIC_FNIC_PLOGI_RETRIES_MIN 0
51#define VNIC_FNIC_PLOGI_RETRIES_MAX 255
52#define VNIC_FNIC_PLOGI_RETRIES_DEF 8
53
54#define VNIC_FNIC_PLOGI_TIMEOUT_MIN 1000
55#define VNIC_FNIC_PLOGI_TIMEOUT_MAX 255000
56
57#define VNIC_FNIC_IO_THROTTLE_COUNT_MIN 256
58#define VNIC_FNIC_IO_THROTTLE_COUNT_MAX 4096
59
60#define VNIC_FNIC_LINK_DOWN_TIMEOUT_MIN 0
61#define VNIC_FNIC_LINK_DOWN_TIMEOUT_MAX 240000
62
63#define VNIC_FNIC_PORT_DOWN_TIMEOUT_MIN 0
64#define VNIC_FNIC_PORT_DOWN_TIMEOUT_MAX 240000
65
66#define VNIC_FNIC_PORT_DOWN_IO_RETRIES_MIN 0
67#define VNIC_FNIC_PORT_DOWN_IO_RETRIES_MAX 255
68
69#define VNIC_FNIC_LUNS_PER_TARGET_MIN 1
70#define VNIC_FNIC_LUNS_PER_TARGET_MAX 1024
71
72/* Device-specific region: scsi configuration */
73struct vnic_fc_config {
74 u64 node_wwn;
75 u64 port_wwn;
76 u32 flags;
77 u32 wq_enet_desc_count;
78 u32 wq_copy_desc_count;
79 u32 rq_desc_count;
80 u32 flogi_retries;
81 u32 flogi_timeout;
82 u32 plogi_retries;
83 u32 plogi_timeout;
84 u32 io_throttle_count;
85 u32 link_down_timeout;
86 u32 port_down_timeout;
87 u32 port_down_io_retries;
88 u32 luns_per_tgt;
89 u16 maxdatafieldsize;
90 u16 ed_tov;
91 u16 ra_tov;
92 u16 intr_timer;
93 u8 intr_timer_type;
94};
95
96#define VFCF_FCP_SEQ_LVL_ERR 0x1 /* Enable FCP-2 Error Recovery */
97#define VFCF_PERBI 0x2 /* persistent binding info available */
98
99#endif /* _VNIC_SCSI_H_ */
diff --git a/drivers/scsi/fnic/vnic_stats.h b/drivers/scsi/fnic/vnic_stats.h
new file mode 100644
index 000000000000..5372e23c1cb3
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_stats.h
@@ -0,0 +1,68 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_STATS_H_
19#define _VNIC_STATS_H_
20
21/* Tx statistics */
22struct vnic_tx_stats {
23 u64 tx_frames_ok;
24 u64 tx_unicast_frames_ok;
25 u64 tx_multicast_frames_ok;
26 u64 tx_broadcast_frames_ok;
27 u64 tx_bytes_ok;
28 u64 tx_unicast_bytes_ok;
29 u64 tx_multicast_bytes_ok;
30 u64 tx_broadcast_bytes_ok;
31 u64 tx_drops;
32 u64 tx_errors;
33 u64 tx_tso;
34 u64 rsvd[16];
35};
36
37/* Rx statistics */
38struct vnic_rx_stats {
39 u64 rx_frames_ok;
40 u64 rx_frames_total;
41 u64 rx_unicast_frames_ok;
42 u64 rx_multicast_frames_ok;
43 u64 rx_broadcast_frames_ok;
44 u64 rx_bytes_ok;
45 u64 rx_unicast_bytes_ok;
46 u64 rx_multicast_bytes_ok;
47 u64 rx_broadcast_bytes_ok;
48 u64 rx_drop;
49 u64 rx_no_bufs;
50 u64 rx_errors;
51 u64 rx_rss;
52 u64 rx_crc_errors;
53 u64 rx_frames_64;
54 u64 rx_frames_127;
55 u64 rx_frames_255;
56 u64 rx_frames_511;
57 u64 rx_frames_1023;
58 u64 rx_frames_1518;
59 u64 rx_frames_to_max;
60 u64 rsvd[16];
61};
62
63struct vnic_stats {
64 struct vnic_tx_stats tx;
65 struct vnic_rx_stats rx;
66};
67
68#endif /* _VNIC_STATS_H_ */
diff --git a/drivers/scsi/fnic/vnic_wq.c b/drivers/scsi/fnic/vnic_wq.c
new file mode 100644
index 000000000000..1f9ea790d130
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_wq.c
@@ -0,0 +1,182 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18
19#include <linux/errno.h>
20#include <linux/types.h>
21#include <linux/pci.h>
22#include <linux/delay.h>
23#include "vnic_dev.h"
24#include "vnic_wq.h"
25
26static int vnic_wq_alloc_bufs(struct vnic_wq *wq)
27{
28 struct vnic_wq_buf *buf;
29 struct vnic_dev *vdev;
30 unsigned int i, j, count = wq->ring.desc_count;
31 unsigned int blks = VNIC_WQ_BUF_BLKS_NEEDED(count);
32
33 vdev = wq->vdev;
34
35 for (i = 0; i < blks; i++) {
36 wq->bufs[i] = kzalloc(VNIC_WQ_BUF_BLK_SZ, GFP_ATOMIC);
37 if (!wq->bufs[i]) {
38 printk(KERN_ERR "Failed to alloc wq_bufs\n");
39 return -ENOMEM;
40 }
41 }
42
43 for (i = 0; i < blks; i++) {
44 buf = wq->bufs[i];
45 for (j = 0; j < VNIC_WQ_BUF_BLK_ENTRIES; j++) {
46 buf->index = i * VNIC_WQ_BUF_BLK_ENTRIES + j;
47 buf->desc = (u8 *)wq->ring.descs +
48 wq->ring.desc_size * buf->index;
49 if (buf->index + 1 == count) {
50 buf->next = wq->bufs[0];
51 break;
52 } else if (j + 1 == VNIC_WQ_BUF_BLK_ENTRIES) {
53 buf->next = wq->bufs[i + 1];
54 } else {
55 buf->next = buf + 1;
56 buf++;
57 }
58 }
59 }
60
61 wq->to_use = wq->to_clean = wq->bufs[0];
62
63 return 0;
64}
65
66void vnic_wq_free(struct vnic_wq *wq)
67{
68 struct vnic_dev *vdev;
69 unsigned int i;
70
71 vdev = wq->vdev;
72
73 vnic_dev_free_desc_ring(vdev, &wq->ring);
74
75 for (i = 0; i < VNIC_WQ_BUF_BLKS_MAX; i++) {
76 kfree(wq->bufs[i]);
77 wq->bufs[i] = NULL;
78 }
79
80 wq->ctrl = NULL;
81
82}
83
84int vnic_wq_alloc(struct vnic_dev *vdev, struct vnic_wq *wq, unsigned int index,
85 unsigned int desc_count, unsigned int desc_size)
86{
87 int err;
88
89 wq->index = index;
90 wq->vdev = vdev;
91
92 wq->ctrl = vnic_dev_get_res(vdev, RES_TYPE_WQ, index);
93 if (!wq->ctrl) {
94 printk(KERN_ERR "Failed to hook WQ[%d] resource\n", index);
95 return -EINVAL;
96 }
97
98 vnic_wq_disable(wq);
99
100 err = vnic_dev_alloc_desc_ring(vdev, &wq->ring, desc_count, desc_size);
101 if (err)
102 return err;
103
104 err = vnic_wq_alloc_bufs(wq);
105 if (err) {
106 vnic_wq_free(wq);
107 return err;
108 }
109
110 return 0;
111}
112
113void vnic_wq_init(struct vnic_wq *wq, unsigned int cq_index,
114 unsigned int error_interrupt_enable,
115 unsigned int error_interrupt_offset)
116{
117 u64 paddr;
118
119 paddr = (u64)wq->ring.base_addr | VNIC_PADDR_TARGET;
120 writeq(paddr, &wq->ctrl->ring_base);
121 iowrite32(wq->ring.desc_count, &wq->ctrl->ring_size);
122 iowrite32(0, &wq->ctrl->fetch_index);
123 iowrite32(0, &wq->ctrl->posted_index);
124 iowrite32(cq_index, &wq->ctrl->cq_index);
125 iowrite32(error_interrupt_enable, &wq->ctrl->error_interrupt_enable);
126 iowrite32(error_interrupt_offset, &wq->ctrl->error_interrupt_offset);
127 iowrite32(0, &wq->ctrl->error_status);
128}
129
130unsigned int vnic_wq_error_status(struct vnic_wq *wq)
131{
132 return ioread32(&wq->ctrl->error_status);
133}
134
135void vnic_wq_enable(struct vnic_wq *wq)
136{
137 iowrite32(1, &wq->ctrl->enable);
138}
139
140int vnic_wq_disable(struct vnic_wq *wq)
141{
142 unsigned int wait;
143
144 iowrite32(0, &wq->ctrl->enable);
145
146 /* Wait for HW to ACK disable request */
147 for (wait = 0; wait < 100; wait++) {
148 if (!(ioread32(&wq->ctrl->running)))
149 return 0;
150 udelay(1);
151 }
152
153 printk(KERN_ERR "Failed to disable WQ[%d]\n", wq->index);
154
155 return -ETIMEDOUT;
156}
157
158void vnic_wq_clean(struct vnic_wq *wq,
159 void (*buf_clean)(struct vnic_wq *wq, struct vnic_wq_buf *buf))
160{
161 struct vnic_wq_buf *buf;
162
163 BUG_ON(ioread32(&wq->ctrl->enable));
164
165 buf = wq->to_clean;
166
167 while (vnic_wq_desc_used(wq) > 0) {
168
169 (*buf_clean)(wq, buf);
170
171 buf = wq->to_clean = buf->next;
172 wq->ring.desc_avail++;
173 }
174
175 wq->to_use = wq->to_clean = wq->bufs[0];
176
177 iowrite32(0, &wq->ctrl->fetch_index);
178 iowrite32(0, &wq->ctrl->posted_index);
179 iowrite32(0, &wq->ctrl->error_status);
180
181 vnic_dev_clear_desc_ring(&wq->ring);
182}
diff --git a/drivers/scsi/fnic/vnic_wq.h b/drivers/scsi/fnic/vnic_wq.h
new file mode 100644
index 000000000000..5cd094f79281
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_wq.h
@@ -0,0 +1,175 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_WQ_H_
19#define _VNIC_WQ_H_
20
21#include <linux/pci.h>
22#include "vnic_dev.h"
23#include "vnic_cq.h"
24
25/*
26 * These defines avoid symbol clash between fnic and enic (Cisco 10G Eth
27 * Driver) when both are built with CONFIG options =y
28 */
29#define vnic_wq_desc_avail fnic_wq_desc_avail
30#define vnic_wq_desc_used fnic_wq_desc_used
31#define vnic_wq_next_desc fni_cwq_next_desc
32#define vnic_wq_post fnic_wq_post
33#define vnic_wq_service fnic_wq_service
34#define vnic_wq_free fnic_wq_free
35#define vnic_wq_alloc fnic_wq_alloc
36#define vnic_wq_init fnic_wq_init
37#define vnic_wq_error_status fnic_wq_error_status
38#define vnic_wq_enable fnic_wq_enable
39#define vnic_wq_disable fnic_wq_disable
40#define vnic_wq_clean fnic_wq_clean
41
42/* Work queue control */
43struct vnic_wq_ctrl {
44 u64 ring_base; /* 0x00 */
45 u32 ring_size; /* 0x08 */
46 u32 pad0;
47 u32 posted_index; /* 0x10 */
48 u32 pad1;
49 u32 cq_index; /* 0x18 */
50 u32 pad2;
51 u32 enable; /* 0x20 */
52 u32 pad3;
53 u32 running; /* 0x28 */
54 u32 pad4;
55 u32 fetch_index; /* 0x30 */
56 u32 pad5;
57 u32 dca_value; /* 0x38 */
58 u32 pad6;
59 u32 error_interrupt_enable; /* 0x40 */
60 u32 pad7;
61 u32 error_interrupt_offset; /* 0x48 */
62 u32 pad8;
63 u32 error_status; /* 0x50 */
64 u32 pad9;
65};
66
67struct vnic_wq_buf {
68 struct vnic_wq_buf *next;
69 dma_addr_t dma_addr;
70 void *os_buf;
71 unsigned int len;
72 unsigned int index;
73 int sop;
74 void *desc;
75};
76
77/* Break the vnic_wq_buf allocations into blocks of 64 entries */
78#define VNIC_WQ_BUF_BLK_ENTRIES 64
79#define VNIC_WQ_BUF_BLK_SZ \
80 (VNIC_WQ_BUF_BLK_ENTRIES * sizeof(struct vnic_wq_buf))
81#define VNIC_WQ_BUF_BLKS_NEEDED(entries) \
82 DIV_ROUND_UP(entries, VNIC_WQ_BUF_BLK_ENTRIES)
83#define VNIC_WQ_BUF_BLKS_MAX VNIC_WQ_BUF_BLKS_NEEDED(4096)
84
85struct vnic_wq {
86 unsigned int index;
87 struct vnic_dev *vdev;
88 struct vnic_wq_ctrl __iomem *ctrl; /* memory-mapped */
89 struct vnic_dev_ring ring;
90 struct vnic_wq_buf *bufs[VNIC_WQ_BUF_BLKS_MAX];
91 struct vnic_wq_buf *to_use;
92 struct vnic_wq_buf *to_clean;
93 unsigned int pkts_outstanding;
94};
95
96static inline unsigned int vnic_wq_desc_avail(struct vnic_wq *wq)
97{
98 /* how many does SW own? */
99 return wq->ring.desc_avail;
100}
101
102static inline unsigned int vnic_wq_desc_used(struct vnic_wq *wq)
103{
104 /* how many does HW own? */
105 return wq->ring.desc_count - wq->ring.desc_avail - 1;
106}
107
108static inline void *vnic_wq_next_desc(struct vnic_wq *wq)
109{
110 return wq->to_use->desc;
111}
112
113static inline void vnic_wq_post(struct vnic_wq *wq,
114 void *os_buf, dma_addr_t dma_addr,
115 unsigned int len, int sop, int eop)
116{
117 struct vnic_wq_buf *buf = wq->to_use;
118
119 buf->sop = sop;
120 buf->os_buf = eop ? os_buf : NULL;
121 buf->dma_addr = dma_addr;
122 buf->len = len;
123
124 buf = buf->next;
125 if (eop) {
126 /* Adding write memory barrier prevents compiler and/or CPU
127 * reordering, thus avoiding descriptor posting before
128 * descriptor is initialized. Otherwise, hardware can read
129 * stale descriptor fields.
130 */
131 wmb();
132 iowrite32(buf->index, &wq->ctrl->posted_index);
133 }
134 wq->to_use = buf;
135
136 wq->ring.desc_avail--;
137}
138
139static inline void vnic_wq_service(struct vnic_wq *wq,
140 struct cq_desc *cq_desc, u16 completed_index,
141 void (*buf_service)(struct vnic_wq *wq,
142 struct cq_desc *cq_desc, struct vnic_wq_buf *buf, void *opaque),
143 void *opaque)
144{
145 struct vnic_wq_buf *buf;
146
147 buf = wq->to_clean;
148 while (1) {
149
150 (*buf_service)(wq, cq_desc, buf, opaque);
151
152 wq->ring.desc_avail++;
153
154 wq->to_clean = buf->next;
155
156 if (buf->index == completed_index)
157 break;
158
159 buf = wq->to_clean;
160 }
161}
162
163void vnic_wq_free(struct vnic_wq *wq);
164int vnic_wq_alloc(struct vnic_dev *vdev, struct vnic_wq *wq, unsigned int index,
165 unsigned int desc_count, unsigned int desc_size);
166void vnic_wq_init(struct vnic_wq *wq, unsigned int cq_index,
167 unsigned int error_interrupt_enable,
168 unsigned int error_interrupt_offset);
169unsigned int vnic_wq_error_status(struct vnic_wq *wq);
170void vnic_wq_enable(struct vnic_wq *wq);
171int vnic_wq_disable(struct vnic_wq *wq);
172void vnic_wq_clean(struct vnic_wq *wq,
173 void (*buf_clean)(struct vnic_wq *wq, struct vnic_wq_buf *buf));
174
175#endif /* _VNIC_WQ_H_ */
diff --git a/drivers/scsi/fnic/vnic_wq_copy.c b/drivers/scsi/fnic/vnic_wq_copy.c
new file mode 100644
index 000000000000..9eab7e7caf38
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_wq_copy.c
@@ -0,0 +1,117 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18
19#include <linux/errno.h>
20#include <linux/types.h>
21#include <linux/pci.h>
22#include <linux/delay.h>
23#include "vnic_wq_copy.h"
24
25void vnic_wq_copy_enable(struct vnic_wq_copy *wq)
26{
27 iowrite32(1, &wq->ctrl->enable);
28}
29
30int vnic_wq_copy_disable(struct vnic_wq_copy *wq)
31{
32 unsigned int wait;
33
34 iowrite32(0, &wq->ctrl->enable);
35
36 /* Wait for HW to ACK disable request */
37 for (wait = 0; wait < 100; wait++) {
38 if (!(ioread32(&wq->ctrl->running)))
39 return 0;
40 udelay(1);
41 }
42
43 printk(KERN_ERR "Failed to disable Copy WQ[%d],"
44 " fetch index=%d, posted_index=%d\n",
45 wq->index, ioread32(&wq->ctrl->fetch_index),
46 ioread32(&wq->ctrl->posted_index));
47
48 return -ENODEV;
49}
50
51void vnic_wq_copy_clean(struct vnic_wq_copy *wq,
52 void (*q_clean)(struct vnic_wq_copy *wq,
53 struct fcpio_host_req *wq_desc))
54{
55 BUG_ON(ioread32(&wq->ctrl->enable));
56
57 if (vnic_wq_copy_desc_in_use(wq))
58 vnic_wq_copy_service(wq, -1, q_clean);
59
60 wq->to_use_index = wq->to_clean_index = 0;
61
62 iowrite32(0, &wq->ctrl->fetch_index);
63 iowrite32(0, &wq->ctrl->posted_index);
64 iowrite32(0, &wq->ctrl->error_status);
65
66 vnic_dev_clear_desc_ring(&wq->ring);
67}
68
69void vnic_wq_copy_free(struct vnic_wq_copy *wq)
70{
71 struct vnic_dev *vdev;
72
73 vdev = wq->vdev;
74 vnic_dev_free_desc_ring(vdev, &wq->ring);
75 wq->ctrl = NULL;
76}
77
78int vnic_wq_copy_alloc(struct vnic_dev *vdev, struct vnic_wq_copy *wq,
79 unsigned int index, unsigned int desc_count,
80 unsigned int desc_size)
81{
82 int err;
83
84 wq->index = index;
85 wq->vdev = vdev;
86 wq->to_use_index = wq->to_clean_index = 0;
87 wq->ctrl = vnic_dev_get_res(vdev, RES_TYPE_WQ, index);
88 if (!wq->ctrl) {
89 printk(KERN_ERR "Failed to hook COPY WQ[%d] resource\n", index);
90 return -EINVAL;
91 }
92
93 vnic_wq_copy_disable(wq);
94
95 err = vnic_dev_alloc_desc_ring(vdev, &wq->ring, desc_count, desc_size);
96 if (err)
97 return err;
98
99 return 0;
100}
101
102void vnic_wq_copy_init(struct vnic_wq_copy *wq, unsigned int cq_index,
103 unsigned int error_interrupt_enable,
104 unsigned int error_interrupt_offset)
105{
106 u64 paddr;
107
108 paddr = (u64)wq->ring.base_addr | VNIC_PADDR_TARGET;
109 writeq(paddr, &wq->ctrl->ring_base);
110 iowrite32(wq->ring.desc_count, &wq->ctrl->ring_size);
111 iowrite32(0, &wq->ctrl->fetch_index);
112 iowrite32(0, &wq->ctrl->posted_index);
113 iowrite32(cq_index, &wq->ctrl->cq_index);
114 iowrite32(error_interrupt_enable, &wq->ctrl->error_interrupt_enable);
115 iowrite32(error_interrupt_offset, &wq->ctrl->error_interrupt_offset);
116}
117
diff --git a/drivers/scsi/fnic/vnic_wq_copy.h b/drivers/scsi/fnic/vnic_wq_copy.h
new file mode 100644
index 000000000000..6aff9740c3df
--- /dev/null
+++ b/drivers/scsi/fnic/vnic_wq_copy.h
@@ -0,0 +1,128 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _VNIC_WQ_COPY_H_
19#define _VNIC_WQ_COPY_H_
20
21#include <linux/pci.h>
22#include "vnic_wq.h"
23#include "fcpio.h"
24
25#define VNIC_WQ_COPY_MAX 1
26
27struct vnic_wq_copy {
28 unsigned int index;
29 struct vnic_dev *vdev;
30 struct vnic_wq_ctrl __iomem *ctrl; /* memory-mapped */
31 struct vnic_dev_ring ring;
32 unsigned to_use_index;
33 unsigned to_clean_index;
34};
35
36static inline unsigned int vnic_wq_copy_desc_avail(struct vnic_wq_copy *wq)
37{
38 return wq->ring.desc_avail;
39}
40
41static inline unsigned int vnic_wq_copy_desc_in_use(struct vnic_wq_copy *wq)
42{
43 return wq->ring.desc_count - 1 - wq->ring.desc_avail;
44}
45
46static inline void *vnic_wq_copy_next_desc(struct vnic_wq_copy *wq)
47{
48 struct fcpio_host_req *desc = wq->ring.descs;
49 return &desc[wq->to_use_index];
50}
51
52static inline void vnic_wq_copy_post(struct vnic_wq_copy *wq)
53{
54
55 ((wq->to_use_index + 1) == wq->ring.desc_count) ?
56 (wq->to_use_index = 0) : (wq->to_use_index++);
57 wq->ring.desc_avail--;
58
59 /* Adding write memory barrier prevents compiler and/or CPU
60 * reordering, thus avoiding descriptor posting before
61 * descriptor is initialized. Otherwise, hardware can read
62 * stale descriptor fields.
63 */
64 wmb();
65
66 iowrite32(wq->to_use_index, &wq->ctrl->posted_index);
67}
68
69static inline void vnic_wq_copy_desc_process(struct vnic_wq_copy *wq, u16 index)
70{
71 unsigned int cnt;
72
73 if (wq->to_clean_index <= index)
74 cnt = (index - wq->to_clean_index) + 1;
75 else
76 cnt = wq->ring.desc_count - wq->to_clean_index + index + 1;
77
78 wq->to_clean_index = ((index + 1) % wq->ring.desc_count);
79 wq->ring.desc_avail += cnt;
80
81}
82
83static inline void vnic_wq_copy_service(struct vnic_wq_copy *wq,
84 u16 completed_index,
85 void (*q_service)(struct vnic_wq_copy *wq,
86 struct fcpio_host_req *wq_desc))
87{
88 struct fcpio_host_req *wq_desc = wq->ring.descs;
89 unsigned int curr_index;
90
91 while (1) {
92
93 if (q_service)
94 (*q_service)(wq, &wq_desc[wq->to_clean_index]);
95
96 wq->ring.desc_avail++;
97
98 curr_index = wq->to_clean_index;
99
100 /* increment the to-clean index so that we start
101 * with an unprocessed index next time we enter the loop
102 */
103 ((wq->to_clean_index + 1) == wq->ring.desc_count) ?
104 (wq->to_clean_index = 0) : (wq->to_clean_index++);
105
106 if (curr_index == completed_index)
107 break;
108
109 /* we have cleaned all the entries */
110 if ((completed_index == (u16)-1) &&
111 (wq->to_clean_index == wq->to_use_index))
112 break;
113 }
114}
115
116void vnic_wq_copy_enable(struct vnic_wq_copy *wq);
117int vnic_wq_copy_disable(struct vnic_wq_copy *wq);
118void vnic_wq_copy_free(struct vnic_wq_copy *wq);
119int vnic_wq_copy_alloc(struct vnic_dev *vdev, struct vnic_wq_copy *wq,
120 unsigned int index, unsigned int desc_count, unsigned int desc_size);
121void vnic_wq_copy_init(struct vnic_wq_copy *wq, unsigned int cq_index,
122 unsigned int error_interrupt_enable,
123 unsigned int error_interrupt_offset);
124void vnic_wq_copy_clean(struct vnic_wq_copy *wq,
125 void (*q_clean)(struct vnic_wq_copy *wq,
126 struct fcpio_host_req *wq_desc));
127
128#endif /* _VNIC_WQ_COPY_H_ */
diff --git a/drivers/scsi/fnic/wq_enet_desc.h b/drivers/scsi/fnic/wq_enet_desc.h
new file mode 100644
index 000000000000..b121cbad18b8
--- /dev/null
+++ b/drivers/scsi/fnic/wq_enet_desc.h
@@ -0,0 +1,96 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright 2007 Nuova Systems, Inc. All rights reserved.
4 *
5 * This program is free software; you may redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
10 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
12 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
14 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
15 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16 * SOFTWARE.
17 */
18#ifndef _WQ_ENET_DESC_H_
19#define _WQ_ENET_DESC_H_
20
21/* Ethernet work queue descriptor: 16B */
22struct wq_enet_desc {
23 __le64 address;
24 __le16 length;
25 __le16 mss_loopback;
26 __le16 header_length_flags;
27 __le16 vlan_tag;
28};
29
30#define WQ_ENET_ADDR_BITS 64
31#define WQ_ENET_LEN_BITS 14
32#define WQ_ENET_LEN_MASK ((1 << WQ_ENET_LEN_BITS) - 1)
33#define WQ_ENET_MSS_BITS 14
34#define WQ_ENET_MSS_MASK ((1 << WQ_ENET_MSS_BITS) - 1)
35#define WQ_ENET_MSS_SHIFT 2
36#define WQ_ENET_LOOPBACK_SHIFT 1
37#define WQ_ENET_HDRLEN_BITS 10
38#define WQ_ENET_HDRLEN_MASK ((1 << WQ_ENET_HDRLEN_BITS) - 1)
39#define WQ_ENET_FLAGS_OM_BITS 2
40#define WQ_ENET_FLAGS_OM_MASK ((1 << WQ_ENET_FLAGS_OM_BITS) - 1)
41#define WQ_ENET_FLAGS_EOP_SHIFT 12
42#define WQ_ENET_FLAGS_CQ_ENTRY_SHIFT 13
43#define WQ_ENET_FLAGS_FCOE_ENCAP_SHIFT 14
44#define WQ_ENET_FLAGS_VLAN_TAG_INSERT_SHIFT 15
45
46#define WQ_ENET_OFFLOAD_MODE_CSUM 0
47#define WQ_ENET_OFFLOAD_MODE_RESERVED 1
48#define WQ_ENET_OFFLOAD_MODE_CSUM_L4 2
49#define WQ_ENET_OFFLOAD_MODE_TSO 3
50
51static inline void wq_enet_desc_enc(struct wq_enet_desc *desc,
52 u64 address, u16 length, u16 mss, u16 header_length,
53 u8 offload_mode, u8 eop, u8 cq_entry, u8 fcoe_encap,
54 u8 vlan_tag_insert, u16 vlan_tag, u8 loopback)
55{
56 desc->address = cpu_to_le64(address);
57 desc->length = cpu_to_le16(length & WQ_ENET_LEN_MASK);
58 desc->mss_loopback = cpu_to_le16((mss & WQ_ENET_MSS_MASK) <<
59 WQ_ENET_MSS_SHIFT | (loopback & 1) << WQ_ENET_LOOPBACK_SHIFT);
60 desc->header_length_flags = cpu_to_le16(
61 (header_length & WQ_ENET_HDRLEN_MASK) |
62 (offload_mode & WQ_ENET_FLAGS_OM_MASK) << WQ_ENET_HDRLEN_BITS |
63 (eop & 1) << WQ_ENET_FLAGS_EOP_SHIFT |
64 (cq_entry & 1) << WQ_ENET_FLAGS_CQ_ENTRY_SHIFT |
65 (fcoe_encap & 1) << WQ_ENET_FLAGS_FCOE_ENCAP_SHIFT |
66 (vlan_tag_insert & 1) << WQ_ENET_FLAGS_VLAN_TAG_INSERT_SHIFT);
67 desc->vlan_tag = cpu_to_le16(vlan_tag);
68}
69
70static inline void wq_enet_desc_dec(struct wq_enet_desc *desc,
71 u64 *address, u16 *length, u16 *mss, u16 *header_length,
72 u8 *offload_mode, u8 *eop, u8 *cq_entry, u8 *fcoe_encap,
73 u8 *vlan_tag_insert, u16 *vlan_tag, u8 *loopback)
74{
75 *address = le64_to_cpu(desc->address);
76 *length = le16_to_cpu(desc->length) & WQ_ENET_LEN_MASK;
77 *mss = (le16_to_cpu(desc->mss_loopback) >> WQ_ENET_MSS_SHIFT) &
78 WQ_ENET_MSS_MASK;
79 *loopback = (u8)((le16_to_cpu(desc->mss_loopback) >>
80 WQ_ENET_LOOPBACK_SHIFT) & 1);
81 *header_length = le16_to_cpu(desc->header_length_flags) &
82 WQ_ENET_HDRLEN_MASK;
83 *offload_mode = (u8)((le16_to_cpu(desc->header_length_flags) >>
84 WQ_ENET_HDRLEN_BITS) & WQ_ENET_FLAGS_OM_MASK);
85 *eop = (u8)((le16_to_cpu(desc->header_length_flags) >>
86 WQ_ENET_FLAGS_EOP_SHIFT) & 1);
87 *cq_entry = (u8)((le16_to_cpu(desc->header_length_flags) >>
88 WQ_ENET_FLAGS_CQ_ENTRY_SHIFT) & 1);
89 *fcoe_encap = (u8)((le16_to_cpu(desc->header_length_flags) >>
90 WQ_ENET_FLAGS_FCOE_ENCAP_SHIFT) & 1);
91 *vlan_tag_insert = (u8)((le16_to_cpu(desc->header_length_flags) >>
92 WQ_ENET_FLAGS_VLAN_TAG_INSERT_SHIFT) & 1);
93 *vlan_tag = le16_to_cpu(desc->vlan_tag);
94}
95
96#endif /* _WQ_ENET_DESC_H_ */
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.h b/drivers/scsi/mpt2sas/mpt2sas_base.h
index babd4cc0cb25..36b1d1052ba1 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.h
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.h
@@ -69,7 +69,7 @@
69#define MPT2SAS_AUTHOR "LSI Corporation <DL-MPTFusionLinux@lsi.com>" 69#define MPT2SAS_AUTHOR "LSI Corporation <DL-MPTFusionLinux@lsi.com>"
70#define MPT2SAS_DESCRIPTION "LSI MPT Fusion SAS 2.0 Device Driver" 70#define MPT2SAS_DESCRIPTION "LSI MPT Fusion SAS 2.0 Device Driver"
71#define MPT2SAS_DRIVER_VERSION "01.100.02.00" 71#define MPT2SAS_DRIVER_VERSION "01.100.02.00"
72#define MPT2SAS_MAJOR_VERSION 00 72#define MPT2SAS_MAJOR_VERSION 01
73#define MPT2SAS_MINOR_VERSION 100 73#define MPT2SAS_MINOR_VERSION 100
74#define MPT2SAS_BUILD_VERSION 02 74#define MPT2SAS_BUILD_VERSION 02
75#define MPT2SAS_RELEASE_VERSION 00 75#define MPT2SAS_RELEASE_VERSION 00
diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c
index f644c9571eab..22b59e13ba83 100644
--- a/drivers/scsi/osd/osd_uld.c
+++ b/drivers/scsi/osd/osd_uld.c
@@ -173,26 +173,26 @@ static const struct file_operations osd_fops = {
173 .unlocked_ioctl = osd_uld_ioctl, 173 .unlocked_ioctl = osd_uld_ioctl,
174}; 174};
175 175
176struct osd_dev *osduld_path_lookup(const char *path) 176struct osd_dev *osduld_path_lookup(const char *name)
177{ 177{
178 struct nameidata nd; 178 struct path path;
179 struct inode *inode; 179 struct inode *inode;
180 struct cdev *cdev; 180 struct cdev *cdev;
181 struct osd_uld_device *uninitialized_var(oud); 181 struct osd_uld_device *uninitialized_var(oud);
182 int error; 182 int error;
183 183
184 if (!path || !*path) { 184 if (!name || !*name) {
185 OSD_ERR("Mount with !path || !*path\n"); 185 OSD_ERR("Mount with !path || !*path\n");
186 return ERR_PTR(-EINVAL); 186 return ERR_PTR(-EINVAL);
187 } 187 }
188 188
189 error = path_lookup(path, LOOKUP_FOLLOW, &nd); 189 error = kern_path(name, LOOKUP_FOLLOW, &path);
190 if (error) { 190 if (error) {
191 OSD_ERR("path_lookup of %s faild=>%d\n", path, error); 191 OSD_ERR("path_lookup of %s failed=>%d\n", name, error);
192 return ERR_PTR(error); 192 return ERR_PTR(error);
193 } 193 }
194 194
195 inode = nd.path.dentry->d_inode; 195 inode = path.dentry->d_inode;
196 error = -EINVAL; /* Not the right device e.g osd_uld_device */ 196 error = -EINVAL; /* Not the right device e.g osd_uld_device */
197 if (!S_ISCHR(inode->i_mode)) { 197 if (!S_ISCHR(inode->i_mode)) {
198 OSD_DEBUG("!S_ISCHR()\n"); 198 OSD_DEBUG("!S_ISCHR()\n");
@@ -202,15 +202,15 @@ struct osd_dev *osduld_path_lookup(const char *path)
202 cdev = inode->i_cdev; 202 cdev = inode->i_cdev;
203 if (!cdev) { 203 if (!cdev) {
204 OSD_ERR("Before mounting an OSD Based filesystem\n"); 204 OSD_ERR("Before mounting an OSD Based filesystem\n");
205 OSD_ERR(" user-mode must open+close the %s device\n", path); 205 OSD_ERR(" user-mode must open+close the %s device\n", name);
206 OSD_ERR(" Example: bash: echo < %s\n", path); 206 OSD_ERR(" Example: bash: echo < %s\n", name);
207 goto out; 207 goto out;
208 } 208 }
209 209
210 /* The Magic wand. Is it our char-dev */ 210 /* The Magic wand. Is it our char-dev */
211 /* TODO: Support sg devices */ 211 /* TODO: Support sg devices */
212 if (cdev->owner != THIS_MODULE) { 212 if (cdev->owner != THIS_MODULE) {
213 OSD_ERR("Error mounting %s - is not an OSD device\n", path); 213 OSD_ERR("Error mounting %s - is not an OSD device\n", name);
214 goto out; 214 goto out;
215 } 215 }
216 216
@@ -220,7 +220,7 @@ struct osd_dev *osduld_path_lookup(const char *path)
220 error = 0; 220 error = 0;
221 221
222out: 222out:
223 path_put(&nd.path); 223 path_put(&path);
224 return error ? ERR_PTR(error) : &oud->od; 224 return error ? ERR_PTR(error) : &oud->od;
225} 225}
226EXPORT_SYMBOL(osduld_path_lookup); 226EXPORT_SYMBOL(osduld_path_lookup);
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 6f51ca485f35..e2b50d8f57a8 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -425,6 +425,7 @@ static struct scsi_target *scsi_alloc_target(struct device *parent,
425 INIT_LIST_HEAD(&starget->devices); 425 INIT_LIST_HEAD(&starget->devices);
426 starget->state = STARGET_CREATED; 426 starget->state = STARGET_CREATED;
427 starget->scsi_level = SCSI_2; 427 starget->scsi_level = SCSI_2;
428 starget->max_target_blocked = SCSI_DEFAULT_TARGET_BLOCKED;
428 retry: 429 retry:
429 spin_lock_irqsave(shost->host_lock, flags); 430 spin_lock_irqsave(shost->host_lock, flags);
430 431
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index 094795455293..0a2ce7b6325c 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -357,7 +357,7 @@ int iscsi_session_chkready(struct iscsi_cls_session *session)
357 err = 0; 357 err = 0;
358 break; 358 break;
359 case ISCSI_SESSION_FAILED: 359 case ISCSI_SESSION_FAILED:
360 err = DID_TRANSPORT_DISRUPTED << 16; 360 err = DID_IMM_RETRY << 16;
361 break; 361 break;
362 case ISCSI_SESSION_FREE: 362 case ISCSI_SESSION_FREE:
363 err = DID_TRANSPORT_FAILFAST << 16; 363 err = DID_TRANSPORT_FAILFAST << 16;
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index b4b39811b445..a0127e93ade0 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -137,6 +137,7 @@ struct uart_8250_port {
137 unsigned char mcr; 137 unsigned char mcr;
138 unsigned char mcr_mask; /* mask of user bits */ 138 unsigned char mcr_mask; /* mask of user bits */
139 unsigned char mcr_force; /* mask of forced bits */ 139 unsigned char mcr_force; /* mask of forced bits */
140 unsigned char cur_iotype; /* Running I/O type */
140 141
141 /* 142 /*
142 * Some bits in registers are cleared on a read, so they must 143 * Some bits in registers are cleared on a read, so they must
@@ -471,6 +472,7 @@ static void io_serial_out(struct uart_port *p, int offset, int value)
471 472
472static void set_io_from_upio(struct uart_port *p) 473static void set_io_from_upio(struct uart_port *p)
473{ 474{
475 struct uart_8250_port *up = (struct uart_8250_port *)p;
474 switch (p->iotype) { 476 switch (p->iotype) {
475 case UPIO_HUB6: 477 case UPIO_HUB6:
476 p->serial_in = hub6_serial_in; 478 p->serial_in = hub6_serial_in;
@@ -509,6 +511,8 @@ static void set_io_from_upio(struct uart_port *p)
509 p->serial_out = io_serial_out; 511 p->serial_out = io_serial_out;
510 break; 512 break;
511 } 513 }
514 /* Remember loaded iotype */
515 up->cur_iotype = p->iotype;
512} 516}
513 517
514static void 518static void
@@ -1937,6 +1941,9 @@ static int serial8250_startup(struct uart_port *port)
1937 up->capabilities = uart_config[up->port.type].flags; 1941 up->capabilities = uart_config[up->port.type].flags;
1938 up->mcr = 0; 1942 up->mcr = 0;
1939 1943
1944 if (up->port.iotype != up->cur_iotype)
1945 set_io_from_upio(port);
1946
1940 if (up->port.type == PORT_16C950) { 1947 if (up->port.type == PORT_16C950) {
1941 /* Wake up and initialize UART */ 1948 /* Wake up and initialize UART */
1942 up->acr = 0; 1949 up->acr = 0;
@@ -2563,6 +2570,9 @@ static void serial8250_config_port(struct uart_port *port, int flags)
2563 if (ret < 0) 2570 if (ret < 0)
2564 probeflags &= ~PROBE_RSA; 2571 probeflags &= ~PROBE_RSA;
2565 2572
2573 if (up->port.iotype != up->cur_iotype)
2574 set_io_from_upio(port);
2575
2566 if (flags & UART_CONFIG_TYPE) 2576 if (flags & UART_CONFIG_TYPE)
2567 autoconfig(up, probeflags); 2577 autoconfig(up, probeflags);
2568 if (up->port.type != PORT_UNKNOWN && flags & UART_CONFIG_IRQ) 2578 if (up->port.type != PORT_UNKNOWN && flags & UART_CONFIG_IRQ)
@@ -2671,6 +2681,11 @@ serial8250_register_ports(struct uart_driver *drv, struct device *dev)
2671{ 2681{
2672 int i; 2682 int i;
2673 2683
2684 for (i = 0; i < nr_uarts; i++) {
2685 struct uart_8250_port *up = &serial8250_ports[i];
2686 up->cur_iotype = 0xFF;
2687 }
2688
2674 serial8250_isa_init_ports(); 2689 serial8250_isa_init_ports();
2675 2690
2676 for (i = 0; i < nr_uarts; i++) { 2691 for (i = 0; i < nr_uarts; i++) {
diff --git a/drivers/serial/8250_gsc.c b/drivers/serial/8250_gsc.c
index 418b4fe9a0a1..33149d982e82 100644
--- a/drivers/serial/8250_gsc.c
+++ b/drivers/serial/8250_gsc.c
@@ -39,9 +39,9 @@ static int __init serial_init_chip(struct parisc_device *dev)
39 */ 39 */
40 if (parisc_parent(dev)->id.hw_type != HPHW_IOA) 40 if (parisc_parent(dev)->id.hw_type != HPHW_IOA)
41 printk(KERN_INFO 41 printk(KERN_INFO
42 "Serial: device 0x%lx not configured.\n" 42 "Serial: device 0x%llx not configured.\n"
43 "Enable support for Wax, Lasi, Asp or Dino.\n", 43 "Enable support for Wax, Lasi, Asp or Dino.\n",
44 dev->hpa.start); 44 (unsigned long long)dev->hpa.start);
45 return -ENODEV; 45 return -ENODEV;
46 } 46 }
47 47
diff --git a/drivers/serial/amba-pl010.c b/drivers/serial/amba-pl010.c
index e3a5ad5ef1d6..cdc049d4350f 100644
--- a/drivers/serial/amba-pl010.c
+++ b/drivers/serial/amba-pl010.c
@@ -665,7 +665,7 @@ static struct uart_driver amba_reg = {
665 .cons = AMBA_CONSOLE, 665 .cons = AMBA_CONSOLE,
666}; 666};
667 667
668static int pl010_probe(struct amba_device *dev, void *id) 668static int pl010_probe(struct amba_device *dev, struct amba_id *id)
669{ 669{
670 struct uart_amba_port *uap; 670 struct uart_amba_port *uap;
671 void __iomem *base; 671 void __iomem *base;
diff --git a/drivers/serial/amba-pl011.c b/drivers/serial/amba-pl011.c
index 8b2b9700f3e4..88fdac51b6c5 100644
--- a/drivers/serial/amba-pl011.c
+++ b/drivers/serial/amba-pl011.c
@@ -729,7 +729,7 @@ static struct uart_driver amba_reg = {
729 .cons = AMBA_CONSOLE, 729 .cons = AMBA_CONSOLE,
730}; 730};
731 731
732static int pl011_probe(struct amba_device *dev, void *id) 732static int pl011_probe(struct amba_device *dev, struct amba_id *id)
733{ 733{
734 struct uart_amba_port *uap; 734 struct uart_amba_port *uap;
735 void __iomem *base; 735 void __iomem *base;
diff --git a/drivers/serial/icom.c b/drivers/serial/icom.c
index 6579e2be1dd1..a461b3b2c72d 100644
--- a/drivers/serial/icom.c
+++ b/drivers/serial/icom.c
@@ -1472,8 +1472,8 @@ static void icom_remove_adapter(struct icom_adapter *icom_adapter)
1472 1472
1473 free_irq(icom_adapter->pci_dev->irq, (void *) icom_adapter); 1473 free_irq(icom_adapter->pci_dev->irq, (void *) icom_adapter);
1474 iounmap(icom_adapter->base_addr); 1474 iounmap(icom_adapter->base_addr);
1475 icom_free_adapter(icom_adapter);
1476 pci_release_regions(icom_adapter->pci_dev); 1475 pci_release_regions(icom_adapter->pci_dev);
1476 icom_free_adapter(icom_adapter);
1477} 1477}
1478 1478
1479static void icom_kref_release(struct kref *kref) 1479static void icom_kref_release(struct kref *kref)
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c
index 9f460b175c50..5f0be40dfdab 100644
--- a/drivers/serial/imx.c
+++ b/drivers/serial/imx.c
@@ -1031,6 +1031,8 @@ imx_console_setup(struct console *co, char *options)
1031 if (co->index == -1 || co->index >= ARRAY_SIZE(imx_ports)) 1031 if (co->index == -1 || co->index >= ARRAY_SIZE(imx_ports))
1032 co->index = 0; 1032 co->index = 0;
1033 sport = imx_ports[co->index]; 1033 sport = imx_ports[co->index];
1034 if(sport == NULL)
1035 return -ENODEV;
1034 1036
1035 if (options) 1037 if (options)
1036 uart_parse_options(options, &baud, &parity, &bits, &flow); 1038 uart_parse_options(options, &baud, &parity, &bits, &flow);
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index 7f72f8ceaa6f..b3feb6198d57 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -988,7 +988,7 @@ mpc52xx_console_setup(struct console *co, char *options)
988 pr_debug("mpc52xx_console_setup co=%p, co->index=%i, options=%s\n", 988 pr_debug("mpc52xx_console_setup co=%p, co->index=%i, options=%s\n",
989 co, co->index, options); 989 co, co->index, options);
990 990
991 if ((co->index < 0) || (co->index > MPC52xx_PSC_MAXNUM)) { 991 if ((co->index < 0) || (co->index >= MPC52xx_PSC_MAXNUM)) {
992 pr_debug("PSC%x out of range\n", co->index); 992 pr_debug("PSC%x out of range\n", co->index);
993 return -EINVAL; 993 return -EINVAL;
994 } 994 }
diff --git a/drivers/serial/nwpserial.c b/drivers/serial/nwpserial.c
index 32f3eaf0d262..9e150b19d726 100644
--- a/drivers/serial/nwpserial.c
+++ b/drivers/serial/nwpserial.c
@@ -145,11 +145,13 @@ static irqreturn_t nwpserial_interrupt(int irq, void *dev_id)
145 ch = dcr_read(up->dcr_host, UART_RX); 145 ch = dcr_read(up->dcr_host, UART_RX);
146 if (up->port.ignore_status_mask != NWPSERIAL_STATUS_RXVALID) 146 if (up->port.ignore_status_mask != NWPSERIAL_STATUS_RXVALID)
147 tty_insert_flip_char(tty, ch, TTY_NORMAL); 147 tty_insert_flip_char(tty, ch, TTY_NORMAL);
148 } while (dcr_read(up->dcr_host, UART_RX) & UART_LSR_DR); 148 } while (dcr_read(up->dcr_host, UART_LSR) & UART_LSR_DR);
149 149
150 tty_flip_buffer_push(tty); 150 tty_flip_buffer_push(tty);
151 ret = IRQ_HANDLED; 151 ret = IRQ_HANDLED;
152 152
153 /* clear interrupt */
154 dcr_write(up->dcr_host, UART_IIR, 1);
153out: 155out:
154 spin_unlock(&up->port.lock); 156 spin_unlock(&up->port.lock);
155 return ret; 157 return ret;
diff --git a/drivers/spi/pxa2xx_spi.c b/drivers/spi/pxa2xx_spi.c
index 885194a07418..3f3c08c6ba4e 100644
--- a/drivers/spi/pxa2xx_spi.c
+++ b/drivers/spi/pxa2xx_spi.c
@@ -1373,6 +1373,9 @@ static void cleanup(struct spi_device *spi)
1373{ 1373{
1374 struct chip_data *chip = spi_get_ctldata(spi); 1374 struct chip_data *chip = spi_get_ctldata(spi);
1375 1375
1376 if (!chip)
1377 return;
1378
1376 if (gpio_is_valid(chip->gpio_cs)) 1379 if (gpio_is_valid(chip->gpio_cs))
1377 gpio_free(chip->gpio_cs); 1380 gpio_free(chip->gpio_cs);
1378 1381
diff --git a/drivers/ssb/embedded.c b/drivers/ssb/embedded.c
index 7dc3a6b41397..a0e0d246b592 100644
--- a/drivers/ssb/embedded.c
+++ b/drivers/ssb/embedded.c
@@ -29,6 +29,7 @@ int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks)
29 } 29 }
30 return -ENODEV; 30 return -ENODEV;
31} 31}
32EXPORT_SYMBOL(ssb_watchdog_timer_set);
32 33
33u32 ssb_gpio_in(struct ssb_bus *bus, u32 mask) 34u32 ssb_gpio_in(struct ssb_bus *bus, u32 mask)
34{ 35{
diff --git a/drivers/staging/comedi/TODO b/drivers/staging/comedi/TODO
index 557812958464..15c9348fb938 100644
--- a/drivers/staging/comedi/TODO
+++ b/drivers/staging/comedi/TODO
@@ -11,4 +11,3 @@ Please send patches to Greg Kroah-Hartman <greg@kroah.com> and
11copy: 11copy:
12 Ian Abbott <abbotti@mev.co.uk> 12 Ian Abbott <abbotti@mev.co.uk>
13 Frank Mori Hess <fmhess@users.sourceforge.net> 13 Frank Mori Hess <fmhess@users.sourceforge.net>
14 David Schleef <ds@schleef.org>
diff --git a/drivers/staging/rt2870/rt2870.h b/drivers/staging/rt2870/rt2870.h
index a42caa370808..a69cf338e498 100644
--- a/drivers/staging/rt2870/rt2870.h
+++ b/drivers/staging/rt2870/rt2870.h
@@ -145,6 +145,7 @@
145 {USB_DEVICE(0x0789,0x0162)}, /* Logitec */ \ 145 {USB_DEVICE(0x0789,0x0162)}, /* Logitec */ \
146 {USB_DEVICE(0x0789,0x0163)}, /* Logitec */ \ 146 {USB_DEVICE(0x0789,0x0163)}, /* Logitec */ \
147 {USB_DEVICE(0x0789,0x0164)}, /* Logitec */ \ 147 {USB_DEVICE(0x0789,0x0164)}, /* Logitec */ \
148 {USB_DEVICE(0x7392,0x7717)}, /* Edimax */ \
148 { }/* Terminating entry */ \ 149 { }/* Terminating entry */ \
149} 150}
150 151
diff --git a/drivers/staging/rtl8187se/r8180.h b/drivers/staging/rtl8187se/r8180.h
index 12215fc61ddc..db446b7e2e08 100644
--- a/drivers/staging/rtl8187se/r8180.h
+++ b/drivers/staging/rtl8187se/r8180.h
@@ -19,7 +19,7 @@
19#define R8180H 19#define R8180H
20 20
21 21
22#define RTL8180_MODULE_NAME "rtl8180" 22#define RTL8180_MODULE_NAME "r8180"
23#define DMESG(x,a...) printk(KERN_INFO RTL8180_MODULE_NAME ": " x "\n", ## a) 23#define DMESG(x,a...) printk(KERN_INFO RTL8180_MODULE_NAME ": " x "\n", ## a)
24#define DMESGW(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": WW:" x "\n", ## a) 24#define DMESGW(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": WW:" x "\n", ## a)
25#define DMESGE(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": EE:" x "\n", ## a) 25#define DMESGE(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": EE:" x "\n", ## a)
diff --git a/drivers/staging/rtl8187se/r8180_core.c b/drivers/staging/rtl8187se/r8180_core.c
index 6ecd12de4296..e10413cee0df 100644
--- a/drivers/staging/rtl8187se/r8180_core.c
+++ b/drivers/staging/rtl8187se/r8180_core.c
@@ -640,11 +640,9 @@ void rtl8180_proc_init_one(struct net_device *dev)
640{ 640{
641 struct proc_dir_entry *e; 641 struct proc_dir_entry *e;
642 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); 642 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
643 priv->dir_dev = create_proc_entry(dev->name, 643 priv->dir_dev = rtl8180_proc;
644 S_IFDIR | S_IRUGO | S_IXUGO,
645 rtl8180_proc);
646 if (!priv->dir_dev) { 644 if (!priv->dir_dev) {
647 DMESGE("Unable to initialize /proc/net/rtl8180/%s\n", 645 DMESGE("Unable to initialize /proc/net/r8180/%s\n",
648 dev->name); 646 dev->name);
649 return; 647 return;
650 } 648 }
@@ -654,7 +652,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
654 652
655 if (!e) { 653 if (!e) {
656 DMESGE("Unable to initialize " 654 DMESGE("Unable to initialize "
657 "/proc/net/rtl8180/%s/stats-hw\n", 655 "/proc/net/r8180/%s/stats-hw\n",
658 dev->name); 656 dev->name);
659 } 657 }
660 658
@@ -663,7 +661,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
663 661
664 if (!e) { 662 if (!e) {
665 DMESGE("Unable to initialize " 663 DMESGE("Unable to initialize "
666 "/proc/net/rtl8180/%s/stats-rx\n", 664 "/proc/net/r8180/%s/stats-rx\n",
667 dev->name); 665 dev->name);
668 } 666 }
669 667
@@ -673,7 +671,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
673 671
674 if (!e) { 672 if (!e) {
675 DMESGE("Unable to initialize " 673 DMESGE("Unable to initialize "
676 "/proc/net/rtl8180/%s/stats-tx\n", 674 "/proc/net/r8180/%s/stats-tx\n",
677 dev->name); 675 dev->name);
678 } 676 }
679 #if 0 677 #if 0
@@ -702,7 +700,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
702 700
703 if (!e) { 701 if (!e) {
704 DMESGE("Unable to initialize " 702 DMESGE("Unable to initialize "
705 "/proc/net/rtl8180/%s/registers\n", 703 "/proc/net/r8180/%s/registers\n",
706 dev->name); 704 dev->name);
707 } 705 }
708} 706}
@@ -977,13 +975,6 @@ void check_tx_ring(struct net_device *dev, int pri)
977 *tmp & (1<<15)? "ok": "err", *(tmp+4)); 975 *tmp & (1<<15)? "ok": "err", *(tmp+4));
978 } 976 }
979 977
980 DMESG("nic at %d",
981 (nic-nicbegin) / 8 /4);
982 DMESG("tail at %d", ((int)tail - (int)begin) /8 /4);
983 DMESG("head at %d", ((int)head - (int)begin) /8 /4);
984 DMESG("check free desc returns %d", check_nic_enought_desc(dev,pri));
985 DMESG("free desc is %d\n", get_curr_tx_free_desc(dev,pri));
986 //rtl8180_reset(dev);
987 return; 978 return;
988} 979}
989 980
@@ -1736,17 +1727,7 @@ short alloc_tx_desc_ring(struct net_device *dev, int bufsize, int count,
1736 * descriptor's buffer must be 256 byte aligned 1727 * descriptor's buffer must be 256 byte aligned
1737 * we shouldn't be here, since we set DMA mask ! 1728 * we shouldn't be here, since we set DMA mask !
1738 */ 1729 */
1739 DMESGW("Fixing TX alignment"); 1730 WARN(1, "DMA buffer is not aligned\n");
1740 desc = (u32*)((u8*)desc + 256);
1741#if (defined(CONFIG_HIGHMEM64G) || defined(CONFIG_64BIT_PHYS_ADDR))
1742 desc = (u32*)((u64)desc &~ 0xff);
1743 dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
1744 dma_desc = (dma_addr_t)((u64)dma_desc &~ 0xff);
1745#else
1746 desc = (u32*)((u32)desc &~ 0xff);
1747 dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
1748 dma_desc = (dma_addr_t)((u32)dma_desc &~ 0xff);
1749#endif
1750 } 1731 }
1751 tmp=desc; 1732 tmp=desc;
1752 for (i=0;i<count;i++) 1733 for (i=0;i<count;i++)
@@ -1984,18 +1965,7 @@ short alloc_rx_desc_ring(struct net_device *dev, u16 bufsize, int count)
1984 * descriptor's buffer must be 256 byte aligned 1965 * descriptor's buffer must be 256 byte aligned
1985 * should never happen since we specify the DMA mask 1966 * should never happen since we specify the DMA mask
1986 */ 1967 */
1987 1968 WARN(1, "DMA buffer is not aligned\n");
1988 DMESGW("Fixing RX alignment");
1989 desc = (u32*)((u8*)desc + 256);
1990#if (defined(CONFIG_HIGHMEM64G) || defined(CONFIG_64BIT_PHYS_ADDR))
1991 desc = (u32*)((u64)desc &~ 0xff);
1992 dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
1993 dma_desc = (dma_addr_t)((u64)dma_desc &~ 0xff);
1994#else
1995 desc = (u32*)((u32)desc &~ 0xff);
1996 dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
1997 dma_desc = (dma_addr_t)((u32)dma_desc &~ 0xff);
1998#endif
1999 } 1969 }
2000 1970
2001 priv->rxring=desc; 1971 priv->rxring=desc;
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index 9c3f9439f35e..3b2d52819b4c 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -386,7 +386,7 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id
386 if (err) 386 if (err)
387 goto error_free_hw; 387 goto error_free_hw;
388 388
389 usb_set_intfdata(intf, priv); 389 usb_set_intfdata(intf, dev);
390 390
391 return 0; 391 return 0;
392 392
@@ -415,10 +415,15 @@ static void wb35_hw_halt(struct wbsoft_priv *adapter)
415 415
416static void wb35_disconnect(struct usb_interface *intf) 416static void wb35_disconnect(struct usb_interface *intf)
417{ 417{
418 struct wbsoft_priv *priv = usb_get_intfdata(intf); 418 struct ieee80211_hw *hw = usb_get_intfdata(intf);
419 struct wbsoft_priv *priv = hw->priv;
419 420
420 wb35_hw_halt(priv); 421 wb35_hw_halt(priv);
421 422
423 ieee80211_stop_queues(hw);
424 ieee80211_unregister_hw(hw);
425 ieee80211_free_hw(hw);
426
422 usb_set_intfdata(intf, NULL); 427 usb_set_intfdata(intf, NULL);
423 usb_put_dev(interface_to_usbdev(intf)); 428 usb_put_dev(interface_to_usbdev(intf));
424} 429}
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
index d0b093b66adc..5e38ba10a3a9 100644
--- a/drivers/thermal/thermal_sys.c
+++ b/drivers/thermal/thermal_sys.c
@@ -961,7 +961,7 @@ void thermal_zone_device_update(struct thermal_zone_device *tz)
961 961
962 switch (trip_type) { 962 switch (trip_type) {
963 case THERMAL_TRIP_CRITICAL: 963 case THERMAL_TRIP_CRITICAL:
964 if (temp > trip_temp) { 964 if (temp >= trip_temp) {
965 if (tz->ops->notify) 965 if (tz->ops->notify)
966 ret = tz->ops->notify(tz, count, 966 ret = tz->ops->notify(tz, count,
967 trip_type); 967 trip_type);
@@ -974,7 +974,7 @@ void thermal_zone_device_update(struct thermal_zone_device *tz)
974 } 974 }
975 break; 975 break;
976 case THERMAL_TRIP_HOT: 976 case THERMAL_TRIP_HOT:
977 if (temp > trip_temp) 977 if (temp >= trip_temp)
978 if (tz->ops->notify) 978 if (tz->ops->notify)
979 tz->ops->notify(tz, count, trip_type); 979 tz->ops->notify(tz, count, trip_type);
980 break; 980 break;
@@ -986,14 +986,14 @@ void thermal_zone_device_update(struct thermal_zone_device *tz)
986 986
987 cdev = instance->cdev; 987 cdev = instance->cdev;
988 988
989 if (temp > trip_temp) 989 if (temp >= trip_temp)
990 cdev->ops->set_cur_state(cdev, 1); 990 cdev->ops->set_cur_state(cdev, 1);
991 else 991 else
992 cdev->ops->set_cur_state(cdev, 0); 992 cdev->ops->set_cur_state(cdev, 0);
993 } 993 }
994 break; 994 break;
995 case THERMAL_TRIP_PASSIVE: 995 case THERMAL_TRIP_PASSIVE:
996 if (temp > trip_temp || tz->passive) 996 if (temp >= trip_temp || tz->passive)
997 thermal_zone_device_passive(tz, temp, 997 thermal_zone_device_passive(tz, temp,
998 trip_temp, count); 998 trip_temp, count);
999 break; 999 break;
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
index 89299a5ce168..0a3dc5ece634 100644
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -11,7 +11,6 @@ obj-$(CONFIG_USB_MON) += mon/
11obj-$(CONFIG_PCI) += host/ 11obj-$(CONFIG_PCI) += host/
12obj-$(CONFIG_USB_EHCI_HCD) += host/ 12obj-$(CONFIG_USB_EHCI_HCD) += host/
13obj-$(CONFIG_USB_ISP116X_HCD) += host/ 13obj-$(CONFIG_USB_ISP116X_HCD) += host/
14obj-$(CONFIG_USB_ISP1760_HCD) += host/
15obj-$(CONFIG_USB_OHCI_HCD) += host/ 14obj-$(CONFIG_USB_OHCI_HCD) += host/
16obj-$(CONFIG_USB_UHCI_HCD) += host/ 15obj-$(CONFIG_USB_UHCI_HCD) += host/
17obj-$(CONFIG_USB_FHCI_HCD) += host/ 16obj-$(CONFIG_USB_FHCI_HCD) += host/
@@ -27,6 +26,8 @@ obj-$(CONFIG_USB_WUSB) += wusbcore/
27 26
28obj-$(CONFIG_USB_ACM) += class/ 27obj-$(CONFIG_USB_ACM) += class/
29obj-$(CONFIG_USB_PRINTER) += class/ 28obj-$(CONFIG_USB_PRINTER) += class/
29obj-$(CONFIG_USB_WDM) += class/
30obj-$(CONFIG_USB_TMC) += class/
30 31
31obj-$(CONFIG_USB_STORAGE) += storage/ 32obj-$(CONFIG_USB_STORAGE) += storage/
32obj-$(CONFIG_USB) += storage/ 33obj-$(CONFIG_USB) += storage/
diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
index 6789089e2461..56802d2e994b 100644
--- a/drivers/usb/atm/cxacru.c
+++ b/drivers/usb/atm/cxacru.c
@@ -227,8 +227,14 @@ static ssize_t cxacru_sysfs_showattr_s8(s8 value, char *buf)
227 227
228static ssize_t cxacru_sysfs_showattr_dB(s16 value, char *buf) 228static ssize_t cxacru_sysfs_showattr_dB(s16 value, char *buf)
229{ 229{
230 return snprintf(buf, PAGE_SIZE, "%d.%02u\n", 230 if (likely(value >= 0)) {
231 value / 100, abs(value) % 100); 231 return snprintf(buf, PAGE_SIZE, "%u.%02u\n",
232 value / 100, value % 100);
233 } else {
234 value = -value;
235 return snprintf(buf, PAGE_SIZE, "-%u.%02u\n",
236 value / 100, value % 100);
237 }
232} 238}
233 239
234static ssize_t cxacru_sysfs_showattr_bool(u32 value, char *buf) 240static ssize_t cxacru_sysfs_showattr_bool(u32 value, char *buf)
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 0a69c0977e3f..7a1164dd1d37 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1375,6 +1375,9 @@ static struct usb_device_id acm_ids[] = {
1375 { USB_DEVICE(0x0572, 0x1324), /* Conexant USB MODEM RD02-D400 */ 1375 { USB_DEVICE(0x0572, 0x1324), /* Conexant USB MODEM RD02-D400 */
1376 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ 1376 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */
1377 }, 1377 },
1378 { USB_DEVICE(0x0572, 0x1328), /* Shiro / Aztech USB MODEM UM-3100 */
1379 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */
1380 },
1378 { USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */ 1381 { USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */
1379 }, 1382 },
1380 { USB_DEVICE(0x0572, 0x1329), /* Hummingbird huc56s (Conexant) */ 1383 { USB_DEVICE(0x0572, 0x1329), /* Hummingbird huc56s (Conexant) */
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index 563d57275448..05c913cc3658 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -794,7 +794,8 @@ usba_ep_queue(struct usb_ep *_ep, struct usb_request *_req, gfp_t gfp_flags)
794 if (ep->desc) { 794 if (ep->desc) {
795 list_add_tail(&req->queue, &ep->queue); 795 list_add_tail(&req->queue, &ep->queue);
796 796
797 if (ep->is_in || (ep_is_control(ep) 797 if ((!ep_is_control(ep) && ep->is_in) ||
798 (ep_is_control(ep)
798 && (ep->state == DATA_STAGE_IN 799 && (ep->state == DATA_STAGE_IN
799 || ep->state == STATUS_STAGE_IN))) 800 || ep->state == STATUS_STAGE_IN)))
800 usba_ep_writel(ep, CTL_ENB, USBA_TX_PK_RDY); 801 usba_ep_writel(ep, CTL_ENB, USBA_TX_PK_RDY);
@@ -1940,7 +1941,7 @@ static int __init usba_udc_probe(struct platform_device *pdev)
1940 usba_writel(udc, CTRL, USBA_DISABLE_MASK); 1941 usba_writel(udc, CTRL, USBA_DISABLE_MASK);
1941 clk_disable(pclk); 1942 clk_disable(pclk);
1942 1943
1943 usba_ep = kmalloc(sizeof(struct usba_ep) * pdata->num_ep, 1944 usba_ep = kzalloc(sizeof(struct usba_ep) * pdata->num_ep,
1944 GFP_KERNEL); 1945 GFP_KERNEL);
1945 if (!usba_ep) 1946 if (!usba_ep)
1946 goto err_alloc_ep; 1947 goto err_alloc_ep;
diff --git a/drivers/usb/gadget/usbstring.c b/drivers/usb/gadget/usbstring.c
index 4154be375c7a..58c4d37d312a 100644
--- a/drivers/usb/gadget/usbstring.c
+++ b/drivers/usb/gadget/usbstring.c
@@ -38,7 +38,7 @@ static int utf8_to_utf16le(const char *s, __le16 *cp, unsigned len)
38 uchar = (c & 0x1f) << 6; 38 uchar = (c & 0x1f) << 6;
39 39
40 c = (u8) *s++; 40 c = (u8) *s++;
41 if ((c & 0xc0) != 0xc0) 41 if ((c & 0xc0) != 0x80)
42 goto fail; 42 goto fail;
43 c &= 0x3f; 43 c &= 0x3f;
44 uchar |= c; 44 uchar |= c;
@@ -49,13 +49,13 @@ static int utf8_to_utf16le(const char *s, __le16 *cp, unsigned len)
49 uchar = (c & 0x0f) << 12; 49 uchar = (c & 0x0f) << 12;
50 50
51 c = (u8) *s++; 51 c = (u8) *s++;
52 if ((c & 0xc0) != 0xc0) 52 if ((c & 0xc0) != 0x80)
53 goto fail; 53 goto fail;
54 c &= 0x3f; 54 c &= 0x3f;
55 uchar |= c << 6; 55 uchar |= c << 6;
56 56
57 c = (u8) *s++; 57 c = (u8) *s++;
58 if ((c & 0xc0) != 0xc0) 58 if ((c & 0xc0) != 0x80)
59 goto fail; 59 goto fail;
60 c &= 0x3f; 60 c &= 0x3f;
61 uchar |= c; 61 uchar |= c;
diff --git a/drivers/usb/host/isp1760-hcd.c b/drivers/usb/host/isp1760-hcd.c
index cd07ea3f0c63..15438469f21a 100644
--- a/drivers/usb/host/isp1760-hcd.c
+++ b/drivers/usb/host/isp1760-hcd.c
@@ -1658,6 +1658,7 @@ static int isp1760_urb_dequeue(struct usb_hcd *hcd, struct urb *urb,
1658 u32 reg_base, or_reg, skip_reg; 1658 u32 reg_base, or_reg, skip_reg;
1659 unsigned long flags; 1659 unsigned long flags;
1660 struct ptd ptd; 1660 struct ptd ptd;
1661 packet_enqueue *pe;
1661 1662
1662 switch (usb_pipetype(urb->pipe)) { 1663 switch (usb_pipetype(urb->pipe)) {
1663 case PIPE_ISOCHRONOUS: 1664 case PIPE_ISOCHRONOUS:
@@ -1669,6 +1670,7 @@ static int isp1760_urb_dequeue(struct usb_hcd *hcd, struct urb *urb,
1669 reg_base = INT_REGS_OFFSET; 1670 reg_base = INT_REGS_OFFSET;
1670 or_reg = HC_INT_IRQ_MASK_OR_REG; 1671 or_reg = HC_INT_IRQ_MASK_OR_REG;
1671 skip_reg = HC_INT_PTD_SKIPMAP_REG; 1672 skip_reg = HC_INT_PTD_SKIPMAP_REG;
1673 pe = enqueue_an_INT_packet;
1672 break; 1674 break;
1673 1675
1674 default: 1676 default:
@@ -1676,6 +1678,7 @@ static int isp1760_urb_dequeue(struct usb_hcd *hcd, struct urb *urb,
1676 reg_base = ATL_REGS_OFFSET; 1678 reg_base = ATL_REGS_OFFSET;
1677 or_reg = HC_ATL_IRQ_MASK_OR_REG; 1679 or_reg = HC_ATL_IRQ_MASK_OR_REG;
1678 skip_reg = HC_ATL_PTD_SKIPMAP_REG; 1680 skip_reg = HC_ATL_PTD_SKIPMAP_REG;
1681 pe = enqueue_an_ATL_packet;
1679 break; 1682 break;
1680 } 1683 }
1681 1684
@@ -1687,6 +1690,7 @@ static int isp1760_urb_dequeue(struct usb_hcd *hcd, struct urb *urb,
1687 u32 skip_map; 1690 u32 skip_map;
1688 u32 or_map; 1691 u32 or_map;
1689 struct isp1760_qtd *qtd; 1692 struct isp1760_qtd *qtd;
1693 struct isp1760_qh *qh = ints->qh;
1690 1694
1691 skip_map = isp1760_readl(hcd->regs + skip_reg); 1695 skip_map = isp1760_readl(hcd->regs + skip_reg);
1692 skip_map |= 1 << i; 1696 skip_map |= 1 << i;
@@ -1699,8 +1703,7 @@ static int isp1760_urb_dequeue(struct usb_hcd *hcd, struct urb *urb,
1699 priv_write_copy(priv, (u32 *)&ptd, hcd->regs + reg_base 1703 priv_write_copy(priv, (u32 *)&ptd, hcd->regs + reg_base
1700 + i * sizeof(ptd), sizeof(ptd)); 1704 + i * sizeof(ptd), sizeof(ptd));
1701 qtd = ints->qtd; 1705 qtd = ints->qtd;
1702 1706 qtd = clean_up_qtdlist(qtd);
1703 clean_up_qtdlist(qtd);
1704 1707
1705 free_mem(priv, ints->payload); 1708 free_mem(priv, ints->payload);
1706 1709
@@ -1711,7 +1714,24 @@ static int isp1760_urb_dequeue(struct usb_hcd *hcd, struct urb *urb,
1711 ints->payload = 0; 1714 ints->payload = 0;
1712 1715
1713 isp1760_urb_done(priv, urb, status); 1716 isp1760_urb_done(priv, urb, status);
1717 if (qtd)
1718 pe(hcd, qh, qtd);
1714 break; 1719 break;
1720
1721 } else if (ints->qtd) {
1722 struct isp1760_qtd *qtd, *prev_qtd = ints->qtd;
1723
1724 for (qtd = ints->qtd->hw_next; qtd; qtd = qtd->hw_next) {
1725 if (qtd->urb == urb) {
1726 prev_qtd->hw_next = clean_up_qtdlist(qtd);
1727 isp1760_urb_done(priv, urb, status);
1728 break;
1729 }
1730 prev_qtd = qtd;
1731 }
1732 /* we found the urb before the end of the list */
1733 if (qtd)
1734 break;
1715 } 1735 }
1716 ints++; 1736 ints++;
1717 } 1737 }
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 8100f1d25904..d9fcdaedf389 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -56,6 +56,7 @@ static __u16 vendor = FTDI_VID;
56static __u16 product; 56static __u16 product;
57 57
58struct ftdi_private { 58struct ftdi_private {
59 struct kref kref;
59 ftdi_chip_type_t chip_type; 60 ftdi_chip_type_t chip_type;
60 /* type of device, either SIO or FT8U232AM */ 61 /* type of device, either SIO or FT8U232AM */
61 int baud_base; /* baud base clock for divisor setting */ 62 int baud_base; /* baud base clock for divisor setting */
@@ -669,6 +670,8 @@ static struct usb_device_id id_table_combined [] = {
669 { USB_DEVICE(ADI_VID, ADI_GNICE_PID), 670 { USB_DEVICE(ADI_VID, ADI_GNICE_PID),
670 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, 671 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
671 { USB_DEVICE(JETI_VID, JETI_SPC1201_PID) }, 672 { USB_DEVICE(JETI_VID, JETI_SPC1201_PID) },
673 { USB_DEVICE(MARVELL_VID, MARVELL_SHEEVAPLUG_PID),
674 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
672 { }, /* Optional parameter entry */ 675 { }, /* Optional parameter entry */
673 { } /* Terminating entry */ 676 { } /* Terminating entry */
674}; 677};
@@ -1352,6 +1355,7 @@ static int ftdi_sio_port_probe(struct usb_serial_port *port)
1352 return -ENOMEM; 1355 return -ENOMEM;
1353 } 1356 }
1354 1357
1358 kref_init(&priv->kref);
1355 spin_lock_init(&priv->rx_lock); 1359 spin_lock_init(&priv->rx_lock);
1356 spin_lock_init(&priv->tx_lock); 1360 spin_lock_init(&priv->tx_lock);
1357 init_waitqueue_head(&priv->delta_msr_wait); 1361 init_waitqueue_head(&priv->delta_msr_wait);
@@ -1468,6 +1472,13 @@ static void ftdi_shutdown(struct usb_serial *serial)
1468 dbg("%s", __func__); 1472 dbg("%s", __func__);
1469} 1473}
1470 1474
1475static void ftdi_sio_priv_release(struct kref *k)
1476{
1477 struct ftdi_private *priv = container_of(k, struct ftdi_private, kref);
1478
1479 kfree(priv);
1480}
1481
1471static int ftdi_sio_port_remove(struct usb_serial_port *port) 1482static int ftdi_sio_port_remove(struct usb_serial_port *port)
1472{ 1483{
1473 struct ftdi_private *priv = usb_get_serial_port_data(port); 1484 struct ftdi_private *priv = usb_get_serial_port_data(port);
@@ -1476,14 +1487,7 @@ static int ftdi_sio_port_remove(struct usb_serial_port *port)
1476 1487
1477 remove_sysfs_attrs(port); 1488 remove_sysfs_attrs(port);
1478 1489
1479 /* all open ports are closed at this point 1490 kref_put(&priv->kref, ftdi_sio_priv_release);
1480 * (by usbserial.c:__serial_close, which calls ftdi_close)
1481 */
1482
1483 if (priv) {
1484 usb_set_serial_port_data(port, NULL);
1485 kfree(priv);
1486 }
1487 1491
1488 return 0; 1492 return 0;
1489} 1493}
@@ -1547,7 +1551,8 @@ static int ftdi_open(struct tty_struct *tty,
1547 dev_err(&port->dev, 1551 dev_err(&port->dev,
1548 "%s - failed submitting read urb, error %d\n", 1552 "%s - failed submitting read urb, error %d\n",
1549 __func__, result); 1553 __func__, result);
1550 1554 else
1555 kref_get(&priv->kref);
1551 1556
1552 return result; 1557 return result;
1553} /* ftdi_open */ 1558} /* ftdi_open */
@@ -1589,11 +1594,11 @@ static void ftdi_close(struct tty_struct *tty,
1589 mutex_unlock(&port->serial->disc_mutex); 1594 mutex_unlock(&port->serial->disc_mutex);
1590 1595
1591 /* cancel any scheduled reading */ 1596 /* cancel any scheduled reading */
1592 cancel_delayed_work(&priv->rx_work); 1597 cancel_delayed_work_sync(&priv->rx_work);
1593 flush_scheduled_work();
1594 1598
1595 /* shutdown our bulk read */ 1599 /* shutdown our bulk read */
1596 usb_kill_urb(port->read_urb); 1600 usb_kill_urb(port->read_urb);
1601 kref_put(&priv->kref, ftdi_sio_priv_release);
1597} /* ftdi_close */ 1602} /* ftdi_close */
1598 1603
1599 1604
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h
index c09f658a448b..12330fa1c095 100644
--- a/drivers/usb/serial/ftdi_sio.h
+++ b/drivers/usb/serial/ftdi_sio.h
@@ -920,6 +920,12 @@
920#define JETI_SPC1201_PID 0x04b2 920#define JETI_SPC1201_PID 0x04b2
921 921
922/* 922/*
923 * Marvell SheevaPlug
924 */
925#define MARVELL_VID 0x9e88
926#define MARVELL_SHEEVAPLUG_PID 0x9e8f
927
928/*
923 * BmRequestType: 1100 0000b 929 * BmRequestType: 1100 0000b
924 * bRequest: FTDI_E2_READ 930 * bRequest: FTDI_E2_READ
925 * wValue: 0 931 * wValue: 0
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index 0a566eea49c0..f331e2bde88a 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -974,6 +974,7 @@ int usb_serial_probe(struct usb_interface *interface,
974 if (retval > 0) { 974 if (retval > 0) {
975 /* quietly accept this device, but don't bind to a 975 /* quietly accept this device, but don't bind to a
976 serial port as it's about to disappear */ 976 serial port as it's about to disappear */
977 serial->num_ports = 0;
977 goto exit; 978 goto exit;
978 } 979 }
979 } 980 }
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index fa65a3b08601..4b8b69045fe6 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -160,8 +160,9 @@ UNUSUAL_DEV( 0x0420, 0x0001, 0x0100, 0x0100,
160 US_SC_DEVICE, US_PR_DEVICE, NULL, 160 US_SC_DEVICE, US_PR_DEVICE, NULL,
161 US_FL_IGNORE_RESIDUE ), 161 US_FL_IGNORE_RESIDUE ),
162 162
163/* Reported by Andrew Nayenko <relan@bk.ru> */ 163/* Reported by Andrew Nayenko <relan@bk.ru>
164UNUSUAL_DEV( 0x0421, 0x0019, 0x0592, 0x0592, 164 * Updated for new firmware by Phillip Potter <phillipinda@hotmail.com> */
165UNUSUAL_DEV( 0x0421, 0x0019, 0x0592, 0x0610,
165 "Nokia", 166 "Nokia",
166 "Nokia 6288", 167 "Nokia 6288",
167 US_SC_DEVICE, US_PR_DEVICE, NULL, 168 US_SC_DEVICE, US_PR_DEVICE, NULL,
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 7826bdce4bbe..0048f1185a60 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -1128,13 +1128,6 @@ config FB_INTEL
1128 830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/965G/965GM chipsets. 1128 830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/965G/965GM chipsets.
1129 Say Y if you have and plan to use such a board. 1129 Say Y if you have and plan to use such a board.
1130 1130
1131 If you say Y here and want DDC/I2C support you must first say Y to
1132 "I2C support" and "I2C bit-banging support" in the character devices
1133 section.
1134
1135 If you say M here then "I2C support" and "I2C bit-banging support"
1136 can be build either as modules or built-in.
1137
1138 To compile this driver as a module, choose M here: the 1131 To compile this driver as a module, choose M here: the
1139 module will be called intelfb. 1132 module will be called intelfb.
1140 1133
@@ -1207,11 +1200,10 @@ config FB_MATROX_G
1207 pixel and 32 bpp packed pixel. You can also use font widths 1200 pixel and 32 bpp packed pixel. You can also use font widths
1208 different from 8. 1201 different from 8.
1209 1202
1210 If you need support for G400 secondary head, you must first say Y to 1203 If you need support for G400 secondary head, you must say Y to
1211 "I2C support" in the character devices section, and then to 1204 "Matrox I2C support" and "G400 second head support" right below.
1212 "Matrox I2C support" and "G400 second head support" here in the 1205 G450/G550 secondary head and digital output are supported without
1213 framebuffer section. G450/G550 secondary head and digital output 1206 additional modules.
1214 are supported without additional modules.
1215 1207
1216 The driver starts in monitor mode. You must use the matroxset tool 1208 The driver starts in monitor mode. You must use the matroxset tool
1217 (available at <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to 1209 (available at <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to
@@ -1310,13 +1302,6 @@ config FB_RADEON
1310 a framebuffer device. There are both PCI and AGP versions. You 1302 a framebuffer device. There are both PCI and AGP versions. You
1311 don't need to choose this to run the Radeon in plain VGA mode. 1303 don't need to choose this to run the Radeon in plain VGA mode.
1312 1304
1313 If you say Y here and want DDC/I2C support you must first say Y to
1314 "I2C support" and "I2C bit-banging support" in the character devices
1315 section.
1316
1317 If you say M here then "I2C support" and "I2C bit-banging support"
1318 can be build either as modules or built-in.
1319
1320 There is a product page at 1305 There is a product page at
1321 http://apps.ati.com/ATIcompare/ 1306 http://apps.ati.com/ATIcompare/
1322 1307
diff --git a/drivers/video/amba-clcd.c b/drivers/video/amba-clcd.c
index 61050ab14128..d1f80bac54f0 100644
--- a/drivers/video/amba-clcd.c
+++ b/drivers/video/amba-clcd.c
@@ -437,7 +437,7 @@ static int clcdfb_register(struct clcd_fb *fb)
437 return ret; 437 return ret;
438} 438}
439 439
440static int clcdfb_probe(struct amba_device *dev, void *id) 440static int clcdfb_probe(struct amba_device *dev, struct amba_id *id)
441{ 441{
442 struct clcd_board *board = dev->dev.platform_data; 442 struct clcd_board *board = dev->dev.platform_data;
443 struct clcd_fb *fb; 443 struct clcd_fb *fb;
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index 9a577a800db5..2fb63f6ea2f1 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -29,14 +29,8 @@
29 29
30/* configurable parameters */ 30/* configurable parameters */
31#define ATMEL_LCDC_CVAL_DEFAULT 0xc8 31#define ATMEL_LCDC_CVAL_DEFAULT 0xc8
32#define ATMEL_LCDC_DMA_BURST_LEN 8 32#define ATMEL_LCDC_DMA_BURST_LEN 8 /* words */
33 33#define ATMEL_LCDC_FIFO_SIZE 512 /* words */
34#if defined(CONFIG_ARCH_AT91SAM9263) || defined(CONFIG_ARCH_AT91CAP9) || \
35 defined(CONFIG_ARCH_AT91SAM9RL)
36#define ATMEL_LCDC_FIFO_SIZE 2048
37#else
38#define ATMEL_LCDC_FIFO_SIZE 512
39#endif
40 34
41#if defined(CONFIG_ARCH_AT91) 35#if defined(CONFIG_ARCH_AT91)
42#define ATMEL_LCDFB_FBINFO_DEFAULT (FBINFO_DEFAULT \ 36#define ATMEL_LCDFB_FBINFO_DEFAULT (FBINFO_DEFAULT \
diff --git a/drivers/video/gbefb.c b/drivers/video/gbefb.c
index fe5b519860b1..1a83709f9611 100644
--- a/drivers/video/gbefb.c
+++ b/drivers/video/gbefb.c
@@ -75,7 +75,7 @@ struct gbefb_par {
75static unsigned int gbe_mem_size = CONFIG_FB_GBE_MEM * 1024*1024; 75static unsigned int gbe_mem_size = CONFIG_FB_GBE_MEM * 1024*1024;
76static void *gbe_mem; 76static void *gbe_mem;
77static dma_addr_t gbe_dma_addr; 77static dma_addr_t gbe_dma_addr;
78unsigned long gbe_mem_phys; 78static unsigned long gbe_mem_phys;
79 79
80static struct { 80static struct {
81 uint16_t *cpu; 81 uint16_t *cpu;
@@ -185,8 +185,8 @@ static struct fb_videomode default_mode_LCD __initdata = {
185 .vmode = FB_VMODE_NONINTERLACED, 185 .vmode = FB_VMODE_NONINTERLACED,
186}; 186};
187 187
188struct fb_videomode *default_mode __initdata = &default_mode_CRT; 188static struct fb_videomode *default_mode __initdata = &default_mode_CRT;
189struct fb_var_screeninfo *default_var __initdata = &default_var_CRT; 189static struct fb_var_screeninfo *default_var __initdata = &default_var_CRT;
190 190
191static int flat_panel_enabled = 0; 191static int flat_panel_enabled = 0;
192 192
@@ -205,7 +205,7 @@ static void gbe_reset(void)
205 * console. 205 * console.
206 */ 206 */
207 207
208void gbe_turn_off(void) 208static void gbe_turn_off(void)
209{ 209{
210 int i; 210 int i;
211 unsigned int val, x, y, vpixen_off; 211 unsigned int val, x, y, vpixen_off;
@@ -1097,7 +1097,7 @@ static void gbefb_create_sysfs(struct device *dev)
1097 * Initialization 1097 * Initialization
1098 */ 1098 */
1099 1099
1100int __init gbefb_setup(char *options) 1100static int __init gbefb_setup(char *options)
1101{ 1101{
1102 char *this_opt; 1102 char *this_opt;
1103 1103
@@ -1283,7 +1283,7 @@ static struct platform_driver gbefb_driver = {
1283 1283
1284static struct platform_device *gbefb_device; 1284static struct platform_device *gbefb_device;
1285 1285
1286int __init gbefb_init(void) 1286static int __init gbefb_init(void)
1287{ 1287{
1288 int ret = platform_driver_register(&gbefb_driver); 1288 int ret = platform_driver_register(&gbefb_driver);
1289 if (!ret) { 1289 if (!ret) {
@@ -1301,7 +1301,7 @@ int __init gbefb_init(void)
1301 return ret; 1301 return ret;
1302} 1302}
1303 1303
1304void __exit gbefb_exit(void) 1304static void __exit gbefb_exit(void)
1305{ 1305{
1306 platform_device_unregister(gbefb_device); 1306 platform_device_unregister(gbefb_device);
1307 platform_driver_unregister(&gbefb_driver); 1307 platform_driver_unregister(&gbefb_driver);
diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c
index dfb72f5e4c96..148cbcc39602 100644
--- a/drivers/video/omap/dispc.c
+++ b/drivers/video/omap/dispc.c
@@ -880,20 +880,22 @@ static irqreturn_t omap_dispc_irq_handler(int irq, void *dev)
880 880
881static int get_dss_clocks(void) 881static int get_dss_clocks(void)
882{ 882{
883 if (IS_ERR((dispc.dss_ick = clk_get(dispc.fbdev->dev, "dss_ick")))) { 883 dispc.dss_ick = clk_get(dispc.fbdev->dev, "ick");
884 dev_err(dispc.fbdev->dev, "can't get dss_ick\n"); 884 if (IS_ERR(dispc.dss_ick)) {
885 dev_err(dispc.fbdev->dev, "can't get ick\n");
885 return PTR_ERR(dispc.dss_ick); 886 return PTR_ERR(dispc.dss_ick);
886 } 887 }
887 888
888 if (IS_ERR((dispc.dss1_fck = clk_get(dispc.fbdev->dev, "dss1_fck")))) { 889 dispc.dss1_fck = clk_get(dispc.fbdev->dev, "dss1_fck");
890 if (IS_ERR(dispc.dss1_fck)) {
889 dev_err(dispc.fbdev->dev, "can't get dss1_fck\n"); 891 dev_err(dispc.fbdev->dev, "can't get dss1_fck\n");
890 clk_put(dispc.dss_ick); 892 clk_put(dispc.dss_ick);
891 return PTR_ERR(dispc.dss1_fck); 893 return PTR_ERR(dispc.dss1_fck);
892 } 894 }
893 895
894 if (IS_ERR((dispc.dss_54m_fck = 896 dispc.dss_54m_fck = clk_get(dispc.fbdev->dev, "tv_fck");
895 clk_get(dispc.fbdev->dev, "dss_54m_fck")))) { 897 if (IS_ERR(dispc.dss_54m_fck)) {
896 dev_err(dispc.fbdev->dev, "can't get dss_54m_fck\n"); 898 dev_err(dispc.fbdev->dev, "can't get tv_fck\n");
897 clk_put(dispc.dss_ick); 899 clk_put(dispc.dss_ick);
898 clk_put(dispc.dss1_fck); 900 clk_put(dispc.dss1_fck);
899 return PTR_ERR(dispc.dss_54m_fck); 901 return PTR_ERR(dispc.dss_54m_fck);
diff --git a/drivers/video/omap/rfbi.c b/drivers/video/omap/rfbi.c
index a13c8dcad2a8..9332d6ca6456 100644
--- a/drivers/video/omap/rfbi.c
+++ b/drivers/video/omap/rfbi.c
@@ -83,12 +83,14 @@ static inline u32 rfbi_read_reg(int idx)
83 83
84static int rfbi_get_clocks(void) 84static int rfbi_get_clocks(void)
85{ 85{
86 if (IS_ERR((rfbi.dss_ick = clk_get(rfbi.fbdev->dev, "dss_ick")))) { 86 rfbi.dss_ick = clk_get(rfbi.fbdev->dev, "ick");
87 dev_err(rfbi.fbdev->dev, "can't get dss_ick\n"); 87 if (IS_ERR(rfbi.dss_ick)) {
88 dev_err(rfbi.fbdev->dev, "can't get ick\n");
88 return PTR_ERR(rfbi.dss_ick); 89 return PTR_ERR(rfbi.dss_ick);
89 } 90 }
90 91
91 if (IS_ERR((rfbi.dss1_fck = clk_get(rfbi.fbdev->dev, "dss1_fck")))) { 92 rfbi.dss1_fck = clk_get(rfbi.fbdev->dev, "dss1_fck");
93 if (IS_ERR(rfbi.dss1_fck)) {
92 dev_err(rfbi.fbdev->dev, "can't get dss1_fck\n"); 94 dev_err(rfbi.fbdev->dev, "can't get dss1_fck\n");
93 clk_put(rfbi.dss_ick); 95 clk_put(rfbi.dss_ick);
94 return PTR_ERR(rfbi.dss1_fck); 96 return PTR_ERR(rfbi.dss1_fck);
diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
index 5e9c6302433b..d3a568e6b169 100644
--- a/drivers/video/s3c-fb.c
+++ b/drivers/video/s3c-fb.c
@@ -947,7 +947,8 @@ static int __devexit s3c_fb_remove(struct platform_device *pdev)
947 int win; 947 int win;
948 948
949 for (win = 0; win <= S3C_FB_MAX_WIN; win++) 949 for (win = 0; win <= S3C_FB_MAX_WIN; win++)
950 s3c_fb_release_win(sfb, sfb->windows[win]); 950 if (sfb->windows[win])
951 s3c_fb_release_win(sfb, sfb->windows[win]);
951 952
952 iounmap(sfb->regs); 953 iounmap(sfb->regs);
953 954
@@ -985,11 +986,20 @@ static int s3c_fb_suspend(struct platform_device *pdev, pm_message_t state)
985static int s3c_fb_resume(struct platform_device *pdev) 986static int s3c_fb_resume(struct platform_device *pdev)
986{ 987{
987 struct s3c_fb *sfb = platform_get_drvdata(pdev); 988 struct s3c_fb *sfb = platform_get_drvdata(pdev);
989 struct s3c_fb_platdata *pd = sfb->pdata;
988 struct s3c_fb_win *win; 990 struct s3c_fb_win *win;
989 int win_no; 991 int win_no;
990 992
991 clk_enable(sfb->bus_clk); 993 clk_enable(sfb->bus_clk);
992 994
995 /* setup registers */
996 writel(pd->vidcon1, sfb->regs + VIDCON1);
997
998 /* zero all windows before we do anything */
999 for (win_no = 0; win_no < S3C_FB_MAX_WIN; win_no++)
1000 s3c_fb_clear_win(sfb, win_no);
1001
1002 /* restore framebuffers */
993 for (win_no = 0; win_no < S3C_FB_MAX_WIN; win_no++) { 1003 for (win_no = 0; win_no < S3C_FB_MAX_WIN; win_no++) {
994 win = sfb->windows[win_no]; 1004 win = sfb->windows[win_no];
995 if (!win) 1005 if (!win)
diff --git a/drivers/video/sh_mobile_lcdcfb.c b/drivers/video/sh_mobile_lcdcfb.c
index 92ea0ab44ce2..f10d2fbeda06 100644
--- a/drivers/video/sh_mobile_lcdcfb.c
+++ b/drivers/video/sh_mobile_lcdcfb.c
@@ -47,6 +47,7 @@ struct sh_mobile_lcdc_priv {
47#endif 47#endif
48 unsigned long lddckr; 48 unsigned long lddckr;
49 struct sh_mobile_lcdc_chan ch[2]; 49 struct sh_mobile_lcdc_chan ch[2];
50 int started;
50}; 51};
51 52
52/* shared registers */ 53/* shared registers */
@@ -451,6 +452,7 @@ static int sh_mobile_lcdc_start(struct sh_mobile_lcdc_priv *priv)
451 452
452 /* start the lcdc */ 453 /* start the lcdc */
453 sh_mobile_lcdc_start_stop(priv, 1); 454 sh_mobile_lcdc_start_stop(priv, 1);
455 priv->started = 1;
454 456
455 /* tell the board code to enable the panel */ 457 /* tell the board code to enable the panel */
456 for (k = 0; k < ARRAY_SIZE(priv->ch); k++) { 458 for (k = 0; k < ARRAY_SIZE(priv->ch); k++) {
@@ -493,7 +495,10 @@ static void sh_mobile_lcdc_stop(struct sh_mobile_lcdc_priv *priv)
493 } 495 }
494 496
495 /* stop the lcdc */ 497 /* stop the lcdc */
496 sh_mobile_lcdc_start_stop(priv, 0); 498 if (priv->started) {
499 sh_mobile_lcdc_start_stop(priv, 0);
500 priv->started = 0;
501 }
497 502
498 /* stop clocks */ 503 /* stop clocks */
499 for (k = 0; k < ARRAY_SIZE(priv->ch); k++) 504 for (k = 0; k < ARRAY_SIZE(priv->ch); k++)
diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c
index e327b84820d2..a0fec298216e 100644
--- a/drivers/video/via/viafbdev.c
+++ b/drivers/video/via/viafbdev.c
@@ -2103,7 +2103,7 @@ static void viafb_remove_proc(struct proc_dir_entry *viafb_entry)
2103 2103
2104static int __devinit via_pci_probe(void) 2104static int __devinit via_pci_probe(void)
2105{ 2105{
2106 unsigned int default_xres, default_yres; 2106 unsigned long default_xres, default_yres;
2107 char *tmpc, *tmpm; 2107 char *tmpc, *tmpm;
2108 char *tmpc_sec, *tmpm_sec; 2108 char *tmpc_sec, *tmpm_sec;
2109 int vmode_index; 2109 int vmode_index;
@@ -2196,8 +2196,8 @@ static int __devinit via_pci_probe(void)
2196 viafb_FB_MM = viaparinfo->fbmem_virt; 2196 viafb_FB_MM = viaparinfo->fbmem_virt;
2197 tmpm = viafb_mode; 2197 tmpm = viafb_mode;
2198 tmpc = strsep(&tmpm, "x"); 2198 tmpc = strsep(&tmpm, "x");
2199 strict_strtoul(tmpc, 0, (unsigned long *)&default_xres); 2199 strict_strtoul(tmpc, 0, &default_xres);
2200 strict_strtoul(tmpm, 0, (unsigned long *)&default_yres); 2200 strict_strtoul(tmpm, 0, &default_yres);
2201 2201
2202 vmode_index = viafb_get_mode_index(default_xres, default_yres, 0); 2202 vmode_index = viafb_get_mode_index(default_xres, default_yres, 0);
2203 DEBUG_MSG(KERN_INFO "0->index=%d\n", vmode_index); 2203 DEBUG_MSG(KERN_INFO "0->index=%d\n", vmode_index);
diff --git a/firmware/cis/.gitignore b/firmware/cis/.gitignore
new file mode 100644
index 000000000000..1de39847f261
--- /dev/null
+++ b/firmware/cis/.gitignore
@@ -0,0 +1 @@
*.cis
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index 5f8ab8adb5f5..ab5547ff29a1 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -37,6 +37,7 @@
37#include <linux/mount.h> 37#include <linux/mount.h>
38#include <linux/idr.h> 38#include <linux/idr.h>
39#include <linux/sched.h> 39#include <linux/sched.h>
40#include <linux/smp_lock.h>
40#include <net/9p/9p.h> 41#include <net/9p/9p.h>
41#include <net/9p/client.h> 42#include <net/9p/client.h>
42 43
@@ -155,6 +156,7 @@ static int v9fs_get_sb(struct file_system_type *fs_type, int flags,
155 156
156 root = d_alloc_root(inode); 157 root = d_alloc_root(inode);
157 if (!root) { 158 if (!root) {
159 iput(inode);
158 retval = -ENOMEM; 160 retval = -ENOMEM;
159 goto release_sb; 161 goto release_sb;
160 } 162 }
@@ -173,10 +175,7 @@ P9_DPRINTK(P9_DEBUG_VFS, " simple set mount, return 0\n");
173 return 0; 175 return 0;
174 176
175release_sb: 177release_sb:
176 if (sb) { 178 deactivate_locked_super(sb);
177 up_write(&sb->s_umount);
178 deactivate_super(sb);
179 }
180 179
181free_stat: 180free_stat:
182 kfree(st); 181 kfree(st);
@@ -230,9 +229,12 @@ static int v9fs_show_options(struct seq_file *m, struct vfsmount *mnt)
230static void 229static void
231v9fs_umount_begin(struct super_block *sb) 230v9fs_umount_begin(struct super_block *sb)
232{ 231{
233 struct v9fs_session_info *v9ses = sb->s_fs_info; 232 struct v9fs_session_info *v9ses;
234 233
234 lock_kernel();
235 v9ses = sb->s_fs_info;
235 v9fs_session_cancel(v9ses); 236 v9fs_session_cancel(v9ses);
237 unlock_kernel();
236} 238}
237 239
238static const struct super_operations v9fs_super_ops = { 240static const struct super_operations v9fs_super_ops = {
diff --git a/fs/affs/super.c b/fs/affs/super.c
index 5ce695e707fe..63f5183f263b 100644
--- a/fs/affs/super.c
+++ b/fs/affs/super.c
@@ -507,8 +507,7 @@ affs_remount(struct super_block *sb, int *flags, char *data)
507 kfree(new_opts); 507 kfree(new_opts);
508 return -EINVAL; 508 return -EINVAL;
509 } 509 }
510 kfree(sb->s_options); 510 replace_mount_options(sb, new_opts);
511 sb->s_options = new_opts;
512 511
513 sbi->s_flags = mount_flags; 512 sbi->s_flags = mount_flags;
514 sbi->s_mode = mode; 513 sbi->s_mode = mode;
diff --git a/fs/afs/super.c b/fs/afs/super.c
index aee239a048cb..76828e5f8a39 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -405,21 +405,20 @@ static int afs_get_sb(struct file_system_type *fs_type,
405 sb->s_flags = flags; 405 sb->s_flags = flags;
406 ret = afs_fill_super(sb, &params); 406 ret = afs_fill_super(sb, &params);
407 if (ret < 0) { 407 if (ret < 0) {
408 up_write(&sb->s_umount); 408 deactivate_locked_super(sb);
409 deactivate_super(sb);
410 goto error; 409 goto error;
411 } 410 }
412 sb->s_options = new_opts; 411 save_mount_options(sb, new_opts);
413 sb->s_flags |= MS_ACTIVE; 412 sb->s_flags |= MS_ACTIVE;
414 } else { 413 } else {
415 _debug("reuse"); 414 _debug("reuse");
416 kfree(new_opts);
417 ASSERTCMP(sb->s_flags, &, MS_ACTIVE); 415 ASSERTCMP(sb->s_flags, &, MS_ACTIVE);
418 } 416 }
419 417
420 simple_set_mnt(mnt, sb); 418 simple_set_mnt(mnt, sb);
421 afs_put_volume(params.volume); 419 afs_put_volume(params.volume);
422 afs_put_cell(params.cell); 420 afs_put_cell(params.cell);
421 kfree(new_opts);
423 _leave(" = 0 [%p]", sb); 422 _leave(" = 0 [%p]", sb);
424 return 0; 423 return 0;
425 424
diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
index eeb246845909..2341375386f8 100644
--- a/fs/autofs4/waitq.c
+++ b/fs/autofs4/waitq.c
@@ -297,20 +297,14 @@ static int validate_request(struct autofs_wait_queue **wait,
297 */ 297 */
298 if (notify == NFY_MOUNT) { 298 if (notify == NFY_MOUNT) {
299 /* 299 /*
300 * If the dentry isn't hashed just go ahead and try the 300 * If the dentry was successfully mounted while we slept
301 * mount again with a new wait (not much else we can do). 301 * on the wait queue mutex we can return success. If it
302 */ 302 * isn't mounted (doesn't have submounts for the case of
303 if (!d_unhashed(dentry)) { 303 * a multi-mount with no mount at it's base) we can
304 /* 304 * continue on and create a new request.
305 * But if the dentry is hashed, that means that we 305 */
306 * got here through the revalidate path. Thus, we 306 if (have_submounts(dentry))
307 * need to check if the dentry has been mounted 307 return 0;
308 * while we waited on the wq_mutex. If it has,
309 * simply return success.
310 */
311 if (d_mountpoint(dentry))
312 return 0;
313 }
314 } 308 }
315 309
316 return 1; 310 return 1;
diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c
index 5cebf0b37798..697f6b5f1313 100644
--- a/fs/binfmt_flat.c
+++ b/fs/binfmt_flat.c
@@ -41,6 +41,7 @@
41#include <asm/uaccess.h> 41#include <asm/uaccess.h>
42#include <asm/unaligned.h> 42#include <asm/unaligned.h>
43#include <asm/cacheflush.h> 43#include <asm/cacheflush.h>
44#include <asm/page.h>
44 45
45/****************************************************************************/ 46/****************************************************************************/
46 47
@@ -54,6 +55,18 @@
54#define DBG_FLT(a...) 55#define DBG_FLT(a...)
55#endif 56#endif
56 57
58/*
59 * User data (stack, data section and bss) needs to be aligned
60 * for the same reasons as SLAB memory is, and to the same amount.
61 * Avoid duplicating architecture specific code by using the same
62 * macro as with SLAB allocation:
63 */
64#ifdef ARCH_SLAB_MINALIGN
65#define FLAT_DATA_ALIGN (ARCH_SLAB_MINALIGN)
66#else
67#define FLAT_DATA_ALIGN (sizeof(void *))
68#endif
69
57#define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */ 70#define RELOC_FAILED 0xff00ff01 /* Relocation incorrect somewhere */
58#define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */ 71#define UNLOADED_LIB 0x7ff000ff /* Placeholder for unused library */
59 72
@@ -114,20 +127,18 @@ static unsigned long create_flat_tables(
114 int envc = bprm->envc; 127 int envc = bprm->envc;
115 char uninitialized_var(dummy); 128 char uninitialized_var(dummy);
116 129
117 sp = (unsigned long *) ((-(unsigned long)sizeof(char *))&(unsigned long) p); 130 sp = (unsigned long *)p;
131 sp -= (envc + argc + 2) + 1 + (flat_argvp_envp_on_stack() ? 2 : 0);
132 sp = (unsigned long *) ((unsigned long)sp & -FLAT_DATA_ALIGN);
133 argv = sp + 1 + (flat_argvp_envp_on_stack() ? 2 : 0);
134 envp = argv + (argc + 1);
118 135
119 sp -= envc+1;
120 envp = sp;
121 sp -= argc+1;
122 argv = sp;
123
124 flat_stack_align(sp);
125 if (flat_argvp_envp_on_stack()) { 136 if (flat_argvp_envp_on_stack()) {
126 --sp; put_user((unsigned long) envp, sp); 137 put_user((unsigned long) envp, sp + 2);
127 --sp; put_user((unsigned long) argv, sp); 138 put_user((unsigned long) argv, sp + 1);
128 } 139 }
129 140
130 put_user(argc,--sp); 141 put_user(argc, sp);
131 current->mm->arg_start = (unsigned long) p; 142 current->mm->arg_start = (unsigned long) p;
132 while (argc-->0) { 143 while (argc-->0) {
133 put_user((unsigned long) p, argv++); 144 put_user((unsigned long) p, argv++);
@@ -558,7 +569,9 @@ static int load_flat_file(struct linux_binprm * bprm,
558 ret = realdatastart; 569 ret = realdatastart;
559 goto err; 570 goto err;
560 } 571 }
561 datapos = realdatastart + MAX_SHARED_LIBS * sizeof(unsigned long); 572 datapos = ALIGN(realdatastart +
573 MAX_SHARED_LIBS * sizeof(unsigned long),
574 FLAT_DATA_ALIGN);
562 575
563 DBG_FLT("BINFMT_FLAT: Allocated data+bss+stack (%d bytes): %x\n", 576 DBG_FLT("BINFMT_FLAT: Allocated data+bss+stack (%d bytes): %x\n",
564 (int)(data_len + bss_len + stack_len), (int)datapos); 577 (int)(data_len + bss_len + stack_len), (int)datapos);
@@ -604,9 +617,12 @@ static int load_flat_file(struct linux_binprm * bprm,
604 } 617 }
605 618
606 realdatastart = textpos + ntohl(hdr->data_start); 619 realdatastart = textpos + ntohl(hdr->data_start);
607 datapos = realdatastart + MAX_SHARED_LIBS * sizeof(unsigned long); 620 datapos = ALIGN(realdatastart +
608 reloc = (unsigned long *) (textpos + ntohl(hdr->reloc_start) + 621 MAX_SHARED_LIBS * sizeof(unsigned long),
609 MAX_SHARED_LIBS * sizeof(unsigned long)); 622 FLAT_DATA_ALIGN);
623
624 reloc = (unsigned long *)
625 (datapos + (ntohl(hdr->reloc_start) - text_len));
610 memp = textpos; 626 memp = textpos;
611 memp_size = len; 627 memp_size = len;
612#ifdef CONFIG_BINFMT_ZFLAT 628#ifdef CONFIG_BINFMT_ZFLAT
@@ -854,7 +870,7 @@ static int load_flat_binary(struct linux_binprm * bprm, struct pt_regs * regs)
854 stack_len = TOP_OF_ARGS - bprm->p; /* the strings */ 870 stack_len = TOP_OF_ARGS - bprm->p; /* the strings */
855 stack_len += (bprm->argc + 1) * sizeof(char *); /* the argv array */ 871 stack_len += (bprm->argc + 1) * sizeof(char *); /* the argv array */
856 stack_len += (bprm->envc + 1) * sizeof(char *); /* the envp array */ 872 stack_len += (bprm->envc + 1) * sizeof(char *); /* the envp array */
857 873 stack_len += FLAT_DATA_ALIGN - 1; /* reserve for upcoming alignment */
858 874
859 res = load_flat_file(bprm, &libinfo, 0, &stack_len); 875 res = load_flat_file(bprm, &libinfo, 0, &stack_len);
860 if (res > (unsigned long)-4096) 876 if (res > (unsigned long)-4096)
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index a99f1c2a710d..fedf8b9f03a2 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1469,6 +1469,7 @@ read_block_for_search(struct btrfs_trans_handle *trans,
1469 u32 blocksize; 1469 u32 blocksize;
1470 struct extent_buffer *b = *eb_ret; 1470 struct extent_buffer *b = *eb_ret;
1471 struct extent_buffer *tmp; 1471 struct extent_buffer *tmp;
1472 int ret;
1472 1473
1473 blocknr = btrfs_node_blockptr(b, slot); 1474 blocknr = btrfs_node_blockptr(b, slot);
1474 gen = btrfs_node_ptr_generation(b, slot); 1475 gen = btrfs_node_ptr_generation(b, slot);
@@ -1476,6 +1477,10 @@ read_block_for_search(struct btrfs_trans_handle *trans,
1476 1477
1477 tmp = btrfs_find_tree_block(root, blocknr, blocksize); 1478 tmp = btrfs_find_tree_block(root, blocknr, blocksize);
1478 if (tmp && btrfs_buffer_uptodate(tmp, gen)) { 1479 if (tmp && btrfs_buffer_uptodate(tmp, gen)) {
1480 /*
1481 * we found an up to date block without sleeping, return
1482 * right away
1483 */
1479 *eb_ret = tmp; 1484 *eb_ret = tmp;
1480 return 0; 1485 return 0;
1481 } 1486 }
@@ -1483,7 +1488,9 @@ read_block_for_search(struct btrfs_trans_handle *trans,
1483 /* 1488 /*
1484 * reduce lock contention at high levels 1489 * reduce lock contention at high levels
1485 * of the btree by dropping locks before 1490 * of the btree by dropping locks before
1486 * we read. 1491 * we read. Don't release the lock on the current
1492 * level because we need to walk this node to figure
1493 * out which blocks to read.
1487 */ 1494 */
1488 btrfs_unlock_up_safe(p, level + 1); 1495 btrfs_unlock_up_safe(p, level + 1);
1489 btrfs_set_path_blocking(p); 1496 btrfs_set_path_blocking(p);
@@ -1494,10 +1501,21 @@ read_block_for_search(struct btrfs_trans_handle *trans,
1494 reada_for_search(root, p, level, slot, key->objectid); 1501 reada_for_search(root, p, level, slot, key->objectid);
1495 1502
1496 btrfs_release_path(NULL, p); 1503 btrfs_release_path(NULL, p);
1504
1505 ret = -EAGAIN;
1497 tmp = read_tree_block(root, blocknr, blocksize, gen); 1506 tmp = read_tree_block(root, blocknr, blocksize, gen);
1498 if (tmp) 1507 if (tmp) {
1508 /*
1509 * If the read above didn't mark this buffer up to date,
1510 * it will never end up being up to date. Set ret to EIO now
1511 * and give up so that our caller doesn't loop forever
1512 * on our EAGAINs.
1513 */
1514 if (!btrfs_buffer_uptodate(tmp, 0))
1515 ret = -EIO;
1499 free_extent_buffer(tmp); 1516 free_extent_buffer(tmp);
1500 return -EAGAIN; 1517 }
1518 return ret;
1501} 1519}
1502 1520
1503/* 1521/*
@@ -1696,6 +1714,9 @@ cow_done:
1696 if (ret == -EAGAIN) 1714 if (ret == -EAGAIN)
1697 goto again; 1715 goto again;
1698 1716
1717 if (ret == -EIO)
1718 goto done;
1719
1699 if (!p->skip_locking) { 1720 if (!p->skip_locking) {
1700 int lret; 1721 int lret;
1701 1722
@@ -1738,6 +1759,8 @@ done:
1738 */ 1759 */
1739 if (!p->leave_spinning) 1760 if (!p->leave_spinning)
1740 btrfs_set_path_blocking(p); 1761 btrfs_set_path_blocking(p);
1762 if (ret < 0)
1763 btrfs_release_path(root, p);
1741 return ret; 1764 return ret;
1742} 1765}
1743 1766
@@ -4212,6 +4235,11 @@ again:
4212 if (ret == -EAGAIN) 4235 if (ret == -EAGAIN)
4213 goto again; 4236 goto again;
4214 4237
4238 if (ret < 0) {
4239 btrfs_release_path(root, path);
4240 goto done;
4241 }
4242
4215 if (!path->skip_locking) { 4243 if (!path->skip_locking) {
4216 ret = btrfs_try_spin_lock(next); 4244 ret = btrfs_try_spin_lock(next);
4217 if (!ret) { 4245 if (!ret) {
@@ -4246,6 +4274,11 @@ again:
4246 if (ret == -EAGAIN) 4274 if (ret == -EAGAIN)
4247 goto again; 4275 goto again;
4248 4276
4277 if (ret < 0) {
4278 btrfs_release_path(root, path);
4279 goto done;
4280 }
4281
4249 if (!path->skip_locking) { 4282 if (!path->skip_locking) {
4250 btrfs_assert_tree_locked(path->nodes[level]); 4283 btrfs_assert_tree_locked(path->nodes[level]);
4251 ret = btrfs_try_spin_lock(next); 4284 ret = btrfs_try_spin_lock(next);
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 0ff16d3331da..4b0ea0b80c23 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -848,8 +848,6 @@ struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr,
848 848
849 if (ret == 0) 849 if (ret == 0)
850 set_bit(EXTENT_BUFFER_UPTODATE, &buf->bflags); 850 set_bit(EXTENT_BUFFER_UPTODATE, &buf->bflags);
851 else
852 WARN_ON(1);
853 return buf; 851 return buf;
854 852
855} 853}
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index e4966444811b..35af93355063 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -312,7 +312,7 @@ btrfs_lookup_first_block_group(struct btrfs_fs_info *info, u64 bytenr)
312} 312}
313 313
314/* 314/*
315 * return the block group that contains teh given bytenr 315 * return the block group that contains the given bytenr
316 */ 316 */
317struct btrfs_block_group_cache *btrfs_lookup_block_group( 317struct btrfs_block_group_cache *btrfs_lookup_block_group(
318 struct btrfs_fs_info *info, 318 struct btrfs_fs_info *info,
@@ -2622,7 +2622,18 @@ static noinline int find_free_extent(struct btrfs_trans_handle *trans,
2622 search_start); 2622 search_start);
2623 if (block_group && block_group_bits(block_group, data)) { 2623 if (block_group && block_group_bits(block_group, data)) {
2624 down_read(&space_info->groups_sem); 2624 down_read(&space_info->groups_sem);
2625 goto have_block_group; 2625 if (list_empty(&block_group->list) ||
2626 block_group->ro) {
2627 /*
2628 * someone is removing this block group,
2629 * we can't jump into the have_block_group
2630 * target because our list pointers are not
2631 * valid
2632 */
2633 btrfs_put_block_group(block_group);
2634 up_read(&space_info->groups_sem);
2635 } else
2636 goto have_block_group;
2626 } else if (block_group) { 2637 } else if (block_group) {
2627 btrfs_put_block_group(block_group); 2638 btrfs_put_block_group(block_group);
2628 } 2639 }
@@ -2656,6 +2667,13 @@ have_block_group:
2656 * people trying to start a new cluster 2667 * people trying to start a new cluster
2657 */ 2668 */
2658 spin_lock(&last_ptr->refill_lock); 2669 spin_lock(&last_ptr->refill_lock);
2670 if (last_ptr->block_group &&
2671 (last_ptr->block_group->ro ||
2672 !block_group_bits(last_ptr->block_group, data))) {
2673 offset = 0;
2674 goto refill_cluster;
2675 }
2676
2659 offset = btrfs_alloc_from_cluster(block_group, last_ptr, 2677 offset = btrfs_alloc_from_cluster(block_group, last_ptr,
2660 num_bytes, search_start); 2678 num_bytes, search_start);
2661 if (offset) { 2679 if (offset) {
@@ -2681,10 +2699,17 @@ have_block_group:
2681 2699
2682 last_ptr_loop = 1; 2700 last_ptr_loop = 1;
2683 search_start = block_group->key.objectid; 2701 search_start = block_group->key.objectid;
2702 /*
2703 * we know this block group is properly
2704 * in the list because
2705 * btrfs_remove_block_group, drops the
2706 * cluster before it removes the block
2707 * group from the list
2708 */
2684 goto have_block_group; 2709 goto have_block_group;
2685 } 2710 }
2686 spin_unlock(&last_ptr->lock); 2711 spin_unlock(&last_ptr->lock);
2687 2712refill_cluster:
2688 /* 2713 /*
2689 * this cluster didn't work out, free it and 2714 * this cluster didn't work out, free it and
2690 * start over 2715 * start over
@@ -5968,6 +5993,7 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans,
5968{ 5993{
5969 struct btrfs_path *path; 5994 struct btrfs_path *path;
5970 struct btrfs_block_group_cache *block_group; 5995 struct btrfs_block_group_cache *block_group;
5996 struct btrfs_free_cluster *cluster;
5971 struct btrfs_key key; 5997 struct btrfs_key key;
5972 int ret; 5998 int ret;
5973 5999
@@ -5979,6 +6005,21 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans,
5979 6005
5980 memcpy(&key, &block_group->key, sizeof(key)); 6006 memcpy(&key, &block_group->key, sizeof(key));
5981 6007
6008 /* make sure this block group isn't part of an allocation cluster */
6009 cluster = &root->fs_info->data_alloc_cluster;
6010 spin_lock(&cluster->refill_lock);
6011 btrfs_return_cluster_to_free_space(block_group, cluster);
6012 spin_unlock(&cluster->refill_lock);
6013
6014 /*
6015 * make sure this block group isn't part of a metadata
6016 * allocation cluster
6017 */
6018 cluster = &root->fs_info->meta_alloc_cluster;
6019 spin_lock(&cluster->refill_lock);
6020 btrfs_return_cluster_to_free_space(block_group, cluster);
6021 spin_unlock(&cluster->refill_lock);
6022
5982 path = btrfs_alloc_path(); 6023 path = btrfs_alloc_path();
5983 BUG_ON(!path); 6024 BUG_ON(!path);
5984 6025
@@ -5988,7 +6029,11 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans,
5988 spin_unlock(&root->fs_info->block_group_cache_lock); 6029 spin_unlock(&root->fs_info->block_group_cache_lock);
5989 btrfs_remove_free_space_cache(block_group); 6030 btrfs_remove_free_space_cache(block_group);
5990 down_write(&block_group->space_info->groups_sem); 6031 down_write(&block_group->space_info->groups_sem);
5991 list_del(&block_group->list); 6032 /*
6033 * we must use list_del_init so people can check to see if they
6034 * are still on the list after taking the semaphore
6035 */
6036 list_del_init(&block_group->list);
5992 up_write(&block_group->space_info->groups_sem); 6037 up_write(&block_group->space_info->groups_sem);
5993 6038
5994 spin_lock(&block_group->space_info->lock); 6039 spin_lock(&block_group->space_info->lock);
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 90c23eb28829..1c8b0190d031 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -3122,6 +3122,7 @@ static noinline void init_btrfs_i(struct inode *inode)
3122 bi->flags = 0; 3122 bi->flags = 0;
3123 bi->index_cnt = (u64)-1; 3123 bi->index_cnt = (u64)-1;
3124 bi->last_unlink_trans = 0; 3124 bi->last_unlink_trans = 0;
3125 bi->ordered_data_close = 0;
3125 extent_map_tree_init(&BTRFS_I(inode)->extent_tree, GFP_NOFS); 3126 extent_map_tree_init(&BTRFS_I(inode)->extent_tree, GFP_NOFS);
3126 extent_io_tree_init(&BTRFS_I(inode)->io_tree, 3127 extent_io_tree_init(&BTRFS_I(inode)->io_tree,
3127 inode->i_mapping, GFP_NOFS); 3128 inode->i_mapping, GFP_NOFS);
@@ -4295,7 +4296,6 @@ out:
4295 } 4296 }
4296 if (err) { 4297 if (err) {
4297 free_extent_map(em); 4298 free_extent_map(em);
4298 WARN_ON(1);
4299 return ERR_PTR(err); 4299 return ERR_PTR(err);
4300 } 4300 }
4301 return em; 4301 return em;
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 5e94ea6e1cbe..2624b53ea783 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -437,10 +437,6 @@ out_unlock:
437 return 0; 437 return 0;
438} 438}
439 439
440/*
441 * Called inside transaction, so use GFP_NOFS
442 */
443
444static int btrfs_ioctl_resize(struct btrfs_root *root, void __user *arg) 440static int btrfs_ioctl_resize(struct btrfs_root *root, void __user *arg)
445{ 441{
446 u64 new_size; 442 u64 new_size;
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 3536bdb2d7cb..2ff7cd2db25f 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -436,9 +436,9 @@ static int btrfs_show_options(struct seq_file *seq, struct vfsmount *vfs)
436 if (btrfs_test_opt(root, SSD)) 436 if (btrfs_test_opt(root, SSD))
437 seq_puts(seq, ",ssd"); 437 seq_puts(seq, ",ssd");
438 if (btrfs_test_opt(root, NOTREELOG)) 438 if (btrfs_test_opt(root, NOTREELOG))
439 seq_puts(seq, ",no-treelog"); 439 seq_puts(seq, ",notreelog");
440 if (btrfs_test_opt(root, FLUSHONCOMMIT)) 440 if (btrfs_test_opt(root, FLUSHONCOMMIT))
441 seq_puts(seq, ",flush-on-commit"); 441 seq_puts(seq, ",flushoncommit");
442 if (!(root->fs_info->sb->s_flags & MS_POSIXACL)) 442 if (!(root->fs_info->sb->s_flags & MS_POSIXACL))
443 seq_puts(seq, ",noacl"); 443 seq_puts(seq, ",noacl");
444 return 0; 444 return 0;
@@ -502,8 +502,7 @@ static int btrfs_get_sb(struct file_system_type *fs_type, int flags,
502 502
503 if (s->s_root) { 503 if (s->s_root) {
504 if ((flags ^ s->s_flags) & MS_RDONLY) { 504 if ((flags ^ s->s_flags) & MS_RDONLY) {
505 up_write(&s->s_umount); 505 deactivate_locked_super(s);
506 deactivate_super(s);
507 error = -EBUSY; 506 error = -EBUSY;
508 goto error_close_devices; 507 goto error_close_devices;
509 } 508 }
@@ -517,8 +516,7 @@ static int btrfs_get_sb(struct file_system_type *fs_type, int flags,
517 error = btrfs_fill_super(s, fs_devices, data, 516 error = btrfs_fill_super(s, fs_devices, data,
518 flags & MS_SILENT ? 1 : 0); 517 flags & MS_SILENT ? 1 : 0);
519 if (error) { 518 if (error) {
520 up_write(&s->s_umount); 519 deactivate_locked_super(s);
521 deactivate_super(s);
522 goto error_free_subvol_name; 520 goto error_free_subvol_name;
523 } 521 }
524 522
@@ -535,15 +533,13 @@ static int btrfs_get_sb(struct file_system_type *fs_type, int flags,
535 mutex_unlock(&s->s_root->d_inode->i_mutex); 533 mutex_unlock(&s->s_root->d_inode->i_mutex);
536 534
537 if (IS_ERR(root)) { 535 if (IS_ERR(root)) {
538 up_write(&s->s_umount); 536 deactivate_locked_super(s);
539 deactivate_super(s);
540 error = PTR_ERR(root); 537 error = PTR_ERR(root);
541 goto error_free_subvol_name; 538 goto error_free_subvol_name;
542 } 539 }
543 if (!root->d_inode) { 540 if (!root->d_inode) {
544 dput(root); 541 dput(root);
545 up_write(&s->s_umount); 542 deactivate_locked_super(s);
546 deactivate_super(s);
547 error = -ENXIO; 543 error = -ENXIO;
548 goto error_free_subvol_name; 544 goto error_free_subvol_name;
549 } 545 }
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 5f01dad4b696..a6d35b0054ca 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -1440,6 +1440,7 @@ int btrfs_init_new_device(struct btrfs_root *root, char *device_path)
1440 device->io_align = root->sectorsize; 1440 device->io_align = root->sectorsize;
1441 device->sector_size = root->sectorsize; 1441 device->sector_size = root->sectorsize;
1442 device->total_bytes = i_size_read(bdev->bd_inode); 1442 device->total_bytes = i_size_read(bdev->bd_inode);
1443 device->disk_total_bytes = device->total_bytes;
1443 device->dev_root = root->fs_info->dev_root; 1444 device->dev_root = root->fs_info->dev_root;
1444 device->bdev = bdev; 1445 device->bdev = bdev;
1445 device->in_fs_metadata = 1; 1446 device->in_fs_metadata = 1;
diff --git a/fs/buffer.c b/fs/buffer.c
index aed297739eb0..49106127a4aa 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -2736,6 +2736,8 @@ has_buffers:
2736 pos += blocksize; 2736 pos += blocksize;
2737 } 2737 }
2738 2738
2739 map_bh.b_size = blocksize;
2740 map_bh.b_state = 0;
2739 err = get_block(inode, iblock, &map_bh, 0); 2741 err = get_block(inode, iblock, &map_bh, 0);
2740 if (err) 2742 if (err)
2741 goto unlock; 2743 goto unlock;
diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h
index 19218e1463d6..f7c255f9c624 100644
--- a/fs/cachefiles/internal.h
+++ b/fs/cachefiles/internal.h
@@ -122,13 +122,13 @@ static inline void cachefiles_state_changed(struct cachefiles_cache *cache)
122} 122}
123 123
124/* 124/*
125 * cf-bind.c 125 * bind.c
126 */ 126 */
127extern int cachefiles_daemon_bind(struct cachefiles_cache *cache, char *args); 127extern int cachefiles_daemon_bind(struct cachefiles_cache *cache, char *args);
128extern void cachefiles_daemon_unbind(struct cachefiles_cache *cache); 128extern void cachefiles_daemon_unbind(struct cachefiles_cache *cache);
129 129
130/* 130/*
131 * cf-daemon.c 131 * daemon.c
132 */ 132 */
133extern const struct file_operations cachefiles_daemon_fops; 133extern const struct file_operations cachefiles_daemon_fops;
134 134
@@ -136,17 +136,17 @@ extern int cachefiles_has_space(struct cachefiles_cache *cache,
136 unsigned fnr, unsigned bnr); 136 unsigned fnr, unsigned bnr);
137 137
138/* 138/*
139 * cf-interface.c 139 * interface.c
140 */ 140 */
141extern const struct fscache_cache_ops cachefiles_cache_ops; 141extern const struct fscache_cache_ops cachefiles_cache_ops;
142 142
143/* 143/*
144 * cf-key.c 144 * key.c
145 */ 145 */
146extern char *cachefiles_cook_key(const u8 *raw, int keylen, uint8_t type); 146extern char *cachefiles_cook_key(const u8 *raw, int keylen, uint8_t type);
147 147
148/* 148/*
149 * cf-namei.c 149 * namei.c
150 */ 150 */
151extern int cachefiles_delete_object(struct cachefiles_cache *cache, 151extern int cachefiles_delete_object(struct cachefiles_cache *cache,
152 struct cachefiles_object *object); 152 struct cachefiles_object *object);
@@ -165,7 +165,7 @@ extern int cachefiles_check_in_use(struct cachefiles_cache *cache,
165 struct dentry *dir, char *filename); 165 struct dentry *dir, char *filename);
166 166
167/* 167/*
168 * cf-proc.c 168 * proc.c
169 */ 169 */
170#ifdef CONFIG_CACHEFILES_HISTOGRAM 170#ifdef CONFIG_CACHEFILES_HISTOGRAM
171extern atomic_t cachefiles_lookup_histogram[HZ]; 171extern atomic_t cachefiles_lookup_histogram[HZ];
@@ -190,7 +190,7 @@ void cachefiles_hist(atomic_t histogram[], unsigned long start_jif)
190#endif 190#endif
191 191
192/* 192/*
193 * cf-rdwr.c 193 * rdwr.c
194 */ 194 */
195extern int cachefiles_read_or_alloc_page(struct fscache_retrieval *, 195extern int cachefiles_read_or_alloc_page(struct fscache_retrieval *,
196 struct page *, gfp_t); 196 struct page *, gfp_t);
@@ -205,7 +205,7 @@ extern int cachefiles_write_page(struct fscache_storage *, struct page *);
205extern void cachefiles_uncache_page(struct fscache_object *, struct page *); 205extern void cachefiles_uncache_page(struct fscache_object *, struct page *);
206 206
207/* 207/*
208 * cf-security.c 208 * security.c
209 */ 209 */
210extern int cachefiles_get_security_ID(struct cachefiles_cache *cache); 210extern int cachefiles_get_security_ID(struct cachefiles_cache *cache);
211extern int cachefiles_determine_cache_security(struct cachefiles_cache *cache, 211extern int cachefiles_determine_cache_security(struct cachefiles_cache *cache,
@@ -225,7 +225,7 @@ static inline void cachefiles_end_secure(struct cachefiles_cache *cache,
225} 225}
226 226
227/* 227/*
228 * cf-xattr.c 228 * xattr.c
229 */ 229 */
230extern int cachefiles_check_object_type(struct cachefiles_object *object); 230extern int cachefiles_check_object_type(struct cachefiles_object *object);
231extern int cachefiles_set_object_xattr(struct cachefiles_object *object, 231extern int cachefiles_set_object_xattr(struct cachefiles_object *object,
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 0d6d8b573652..5e6d35804d73 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -35,6 +35,7 @@
35#include <linux/delay.h> 35#include <linux/delay.h>
36#include <linux/kthread.h> 36#include <linux/kthread.h>
37#include <linux/freezer.h> 37#include <linux/freezer.h>
38#include <linux/smp_lock.h>
38#include "cifsfs.h" 39#include "cifsfs.h"
39#include "cifspdu.h" 40#include "cifspdu.h"
40#define DECLARE_GLOBALS_HERE 41#define DECLARE_GLOBALS_HERE
@@ -530,6 +531,7 @@ static void cifs_umount_begin(struct super_block *sb)
530 if (tcon == NULL) 531 if (tcon == NULL)
531 return; 532 return;
532 533
534 lock_kernel();
533 read_lock(&cifs_tcp_ses_lock); 535 read_lock(&cifs_tcp_ses_lock);
534 if (tcon->tc_count == 1) 536 if (tcon->tc_count == 1)
535 tcon->tidStatus = CifsExiting; 537 tcon->tidStatus = CifsExiting;
@@ -548,6 +550,7 @@ static void cifs_umount_begin(struct super_block *sb)
548 } 550 }
549/* BB FIXME - finish add checks for tidStatus BB */ 551/* BB FIXME - finish add checks for tidStatus BB */
550 552
553 unlock_kernel();
551 return; 554 return;
552} 555}
553 556
@@ -599,8 +602,7 @@ cifs_get_sb(struct file_system_type *fs_type,
599 602
600 rc = cifs_read_super(sb, data, dev_name, flags & MS_SILENT ? 1 : 0); 603 rc = cifs_read_super(sb, data, dev_name, flags & MS_SILENT ? 1 : 0);
601 if (rc) { 604 if (rc) {
602 up_write(&sb->s_umount); 605 deactivate_locked_super(sb);
603 deactivate_super(sb);
604 return rc; 606 return rc;
605 } 607 }
606 sb->s_flags |= MS_ACTIVE; 608 sb->s_flags |= MS_ACTIVE;
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index 75e6623a8635..d06260251c30 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -2475,7 +2475,7 @@ querySymLinkRetry:
2475 /* BB FIXME investigate remapping reserved chars here */ 2475 /* BB FIXME investigate remapping reserved chars here */
2476 *symlinkinfo = cifs_strndup_from_ucs(data_start, count, 2476 *symlinkinfo = cifs_strndup_from_ucs(data_start, count,
2477 is_unicode, nls_codepage); 2477 is_unicode, nls_codepage);
2478 if (!symlinkinfo) 2478 if (!*symlinkinfo)
2479 rc = -ENOMEM; 2479 rc = -ENOMEM;
2480 } 2480 }
2481 } 2481 }
@@ -3976,9 +3976,8 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
3976 max_len = data_end - temp; 3976 max_len = data_end - temp;
3977 node->path_name = cifs_strndup_from_ucs(temp, max_len, 3977 node->path_name = cifs_strndup_from_ucs(temp, max_len,
3978 is_unicode, nls_codepage); 3978 is_unicode, nls_codepage);
3979 if (IS_ERR(node->path_name)) { 3979 if (!node->path_name) {
3980 rc = PTR_ERR(node->path_name); 3980 rc = -ENOMEM;
3981 node->path_name = NULL;
3982 goto parse_DFS_referrals_exit; 3981 goto parse_DFS_referrals_exit;
3983 } 3982 }
3984 3983
@@ -3987,11 +3986,8 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
3987 max_len = data_end - temp; 3986 max_len = data_end - temp;
3988 node->node_name = cifs_strndup_from_ucs(temp, max_len, 3987 node->node_name = cifs_strndup_from_ucs(temp, max_len,
3989 is_unicode, nls_codepage); 3988 is_unicode, nls_codepage);
3990 if (IS_ERR(node->node_name)) { 3989 if (!node->node_name)
3991 rc = PTR_ERR(node->node_name); 3990 rc = -ENOMEM;
3992 node->node_name = NULL;
3993 goto parse_DFS_referrals_exit;
3994 }
3995 } 3991 }
3996 3992
3997parse_DFS_referrals_exit: 3993parse_DFS_referrals_exit:
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 11431ed72a7f..3758965d73d5 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -225,6 +225,7 @@ int cifs_posix_open(char *full_path, struct inode **pinode,
225 if (!(oflags & FMODE_READ)) 225 if (!(oflags & FMODE_READ))
226 write_only = true; 226 write_only = true;
227 227
228 mode &= ~current_umask();
228 rc = CIFSPOSIXCreate(xid, cifs_sb->tcon, posix_flags, mode, 229 rc = CIFSPOSIXCreate(xid, cifs_sb->tcon, posix_flags, mode,
229 pnetfid, presp_data, &oplock, full_path, 230 pnetfid, presp_data, &oplock, full_path,
230 cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & 231 cifs_sb->local_nls, cifs_sb->mnt_cifs_flags &
@@ -310,7 +311,6 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
310 return -ENOMEM; 311 return -ENOMEM;
311 } 312 }
312 313
313 mode &= ~current_umask();
314 if (oplockEnabled) 314 if (oplockEnabled)
315 oplock = REQ_OPLOCK; 315 oplock = REQ_OPLOCK;
316 316
@@ -336,7 +336,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
336 else /* success, no need to query */ 336 else /* success, no need to query */
337 goto cifs_create_set_dentry; 337 goto cifs_create_set_dentry;
338 } else if ((rc != -EIO) && (rc != -EREMOTE) && 338 } else if ((rc != -EIO) && (rc != -EREMOTE) &&
339 (rc != -EOPNOTSUPP)) /* path not found or net err */ 339 (rc != -EOPNOTSUPP) && (rc != -EINVAL))
340 goto cifs_create_out; 340 goto cifs_create_out;
341 /* else fallthrough to retry, using older open call, this is 341 /* else fallthrough to retry, using older open call, this is
342 case where server does not support this SMB level, and 342 case where server does not support this SMB level, and
@@ -609,7 +609,6 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
609 int xid; 609 int xid;
610 int rc = 0; /* to get around spurious gcc warning, set to zero here */ 610 int rc = 0; /* to get around spurious gcc warning, set to zero here */
611 int oplock = 0; 611 int oplock = 0;
612 int mode;
613 __u16 fileHandle = 0; 612 __u16 fileHandle = 0;
614 bool posix_open = false; 613 bool posix_open = false;
615 struct cifs_sb_info *cifs_sb; 614 struct cifs_sb_info *cifs_sb;
@@ -658,30 +657,36 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
658 } 657 }
659 cFYI(1, ("Full path: %s inode = 0x%p", full_path, direntry->d_inode)); 658 cFYI(1, ("Full path: %s inode = 0x%p", full_path, direntry->d_inode));
660 659
660 /* Posix open is only called (at lookup time) for file create now.
661 * For opens (rather than creates), because we do not know if it
662 * is a file or directory yet, and current Samba no longer allows
663 * us to do posix open on dirs, we could end up wasting an open call
664 * on what turns out to be a dir. For file opens, we wait to call posix
665 * open till cifs_open. It could be added here (lookup) in the future
666 * but the performance tradeoff of the extra network request when EISDIR
667 * or EACCES is returned would have to be weighed against the 50%
668 * reduction in network traffic in the other paths.
669 */
661 if (pTcon->unix_ext) { 670 if (pTcon->unix_ext) {
662 if (!(nd->flags & (LOOKUP_PARENT | LOOKUP_DIRECTORY)) && 671 if (!(nd->flags & (LOOKUP_PARENT | LOOKUP_DIRECTORY)) &&
663 (nd->flags & LOOKUP_OPEN)) { 672 (nd->flags & LOOKUP_OPEN) && !pTcon->broken_posix_open &&
664 if (!((nd->intent.open.flags & O_CREAT) && 673 (nd->intent.open.flags & O_CREAT)) {
665 (nd->intent.open.flags & O_EXCL))) { 674 rc = cifs_posix_open(full_path, &newInode,
666 mode = nd->intent.open.create_mode & 675 parent_dir_inode->i_sb,
667 ~current_umask(); 676 nd->intent.open.create_mode,
668 rc = cifs_posix_open(full_path, &newInode,
669 parent_dir_inode->i_sb, mode,
670 nd->intent.open.flags, &oplock, 677 nd->intent.open.flags, &oplock,
671 &fileHandle, xid); 678 &fileHandle, xid);
672 /* 679 /*
673 * This code works around a bug in 680 * The check below works around a bug in POSIX
674 * samba posix open in samba versions 3.3.1 681 * open in samba versions 3.3.1 and earlier where
675 * and earlier where create works 682 * open could incorrectly fail with invalid parameter.
676 * but open fails with invalid parameter. 683 * If either that or op not supported returned, follow
677 * If either of these error codes are 684 * the normal lookup.
678 * returned, follow the normal lookup. 685 */
679 * Otherwise, the error during posix open 686 if ((rc == 0) || (rc == -ENOENT))
680 * is handled. 687 posix_open = true;
681 */ 688 else if ((rc == -EINVAL) || (rc != -EOPNOTSUPP))
682 if ((rc != -EINVAL) && (rc != -EOPNOTSUPP)) 689 pTcon->broken_posix_open = true;
683 posix_open = true;
684 }
685 } 690 }
686 if (!posix_open) 691 if (!posix_open)
687 rc = cifs_get_inode_info_unix(&newInode, full_path, 692 rc = cifs_get_inode_info_unix(&newInode, full_path,
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 38c06f826575..302ea15f02e6 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -130,10 +130,6 @@ static inline int cifs_posix_open_inode_helper(struct inode *inode,
130 struct cifsFileInfo *pCifsFile, int oplock, u16 netfid) 130 struct cifsFileInfo *pCifsFile, int oplock, u16 netfid)
131{ 131{
132 132
133 file->private_data = kmalloc(sizeof(struct cifsFileInfo), GFP_KERNEL);
134 if (file->private_data == NULL)
135 return -ENOMEM;
136 pCifsFile = cifs_init_private(file->private_data, inode, file, netfid);
137 write_lock(&GlobalSMBSeslock); 133 write_lock(&GlobalSMBSeslock);
138 134
139 pCifsInode = CIFS_I(file->f_path.dentry->d_inode); 135 pCifsInode = CIFS_I(file->f_path.dentry->d_inode);
@@ -184,6 +180,38 @@ psx_client_can_cache:
184 return 0; 180 return 0;
185} 181}
186 182
183static struct cifsFileInfo *
184cifs_fill_filedata(struct file *file)
185{
186 struct list_head *tmp;
187 struct cifsFileInfo *pCifsFile = NULL;
188 struct cifsInodeInfo *pCifsInode = NULL;
189
190 /* search inode for this file and fill in file->private_data */
191 pCifsInode = CIFS_I(file->f_path.dentry->d_inode);
192 read_lock(&GlobalSMBSeslock);
193 list_for_each(tmp, &pCifsInode->openFileList) {
194 pCifsFile = list_entry(tmp, struct cifsFileInfo, flist);
195 if ((pCifsFile->pfile == NULL) &&
196 (pCifsFile->pid == current->tgid)) {
197 /* mode set in cifs_create */
198
199 /* needed for writepage */
200 pCifsFile->pfile = file;
201 file->private_data = pCifsFile;
202 break;
203 }
204 }
205 read_unlock(&GlobalSMBSeslock);
206
207 if (file->private_data != NULL) {
208 return pCifsFile;
209 } else if ((file->f_flags & O_CREAT) && (file->f_flags & O_EXCL))
210 cERROR(1, ("could not find file instance for "
211 "new file %p", file));
212 return NULL;
213}
214
187/* all arguments to this function must be checked for validity in caller */ 215/* all arguments to this function must be checked for validity in caller */
188static inline int cifs_open_inode_helper(struct inode *inode, struct file *file, 216static inline int cifs_open_inode_helper(struct inode *inode, struct file *file,
189 struct cifsInodeInfo *pCifsInode, struct cifsFileInfo *pCifsFile, 217 struct cifsInodeInfo *pCifsInode, struct cifsFileInfo *pCifsFile,
@@ -258,7 +286,6 @@ int cifs_open(struct inode *inode, struct file *file)
258 struct cifsTconInfo *tcon; 286 struct cifsTconInfo *tcon;
259 struct cifsFileInfo *pCifsFile; 287 struct cifsFileInfo *pCifsFile;
260 struct cifsInodeInfo *pCifsInode; 288 struct cifsInodeInfo *pCifsInode;
261 struct list_head *tmp;
262 char *full_path = NULL; 289 char *full_path = NULL;
263 int desiredAccess; 290 int desiredAccess;
264 int disposition; 291 int disposition;
@@ -270,32 +297,12 @@ int cifs_open(struct inode *inode, struct file *file)
270 cifs_sb = CIFS_SB(inode->i_sb); 297 cifs_sb = CIFS_SB(inode->i_sb);
271 tcon = cifs_sb->tcon; 298 tcon = cifs_sb->tcon;
272 299
273 /* search inode for this file and fill in file->private_data */
274 pCifsInode = CIFS_I(file->f_path.dentry->d_inode); 300 pCifsInode = CIFS_I(file->f_path.dentry->d_inode);
275 read_lock(&GlobalSMBSeslock); 301 pCifsFile = cifs_fill_filedata(file);
276 list_for_each(tmp, &pCifsInode->openFileList) { 302 if (pCifsFile) {
277 pCifsFile = list_entry(tmp, struct cifsFileInfo,
278 flist);
279 if ((pCifsFile->pfile == NULL) &&
280 (pCifsFile->pid == current->tgid)) {
281 /* mode set in cifs_create */
282
283 /* needed for writepage */
284 pCifsFile->pfile = file;
285
286 file->private_data = pCifsFile;
287 break;
288 }
289 }
290 read_unlock(&GlobalSMBSeslock);
291
292 if (file->private_data != NULL) {
293 rc = 0;
294 FreeXid(xid); 303 FreeXid(xid);
295 return rc; 304 return 0;
296 } else if ((file->f_flags & O_CREAT) && (file->f_flags & O_EXCL)) 305 }
297 cERROR(1, ("could not find file instance for "
298 "new file %p", file));
299 306
300 full_path = build_path_from_dentry(file->f_path.dentry); 307 full_path = build_path_from_dentry(file->f_path.dentry);
301 if (full_path == NULL) { 308 if (full_path == NULL) {
@@ -325,6 +332,7 @@ int cifs_open(struct inode *inode, struct file *file)
325 /* no need for special case handling of setting mode 332 /* no need for special case handling of setting mode
326 on read only files needed here */ 333 on read only files needed here */
327 334
335 pCifsFile = cifs_fill_filedata(file);
328 cifs_posix_open_inode_helper(inode, file, pCifsInode, 336 cifs_posix_open_inode_helper(inode, file, pCifsInode,
329 pCifsFile, oplock, netfid); 337 pCifsFile, oplock, netfid);
330 goto out; 338 goto out;
diff --git a/fs/cifs/link.c b/fs/cifs/link.c
index ea9d11e3dcbb..cd83c53fcbb5 100644
--- a/fs/cifs/link.c
+++ b/fs/cifs/link.c
@@ -107,48 +107,48 @@ void *
107cifs_follow_link(struct dentry *direntry, struct nameidata *nd) 107cifs_follow_link(struct dentry *direntry, struct nameidata *nd)
108{ 108{
109 struct inode *inode = direntry->d_inode; 109 struct inode *inode = direntry->d_inode;
110 int rc = -EACCES; 110 int rc = -ENOMEM;
111 int xid; 111 int xid;
112 char *full_path = NULL; 112 char *full_path = NULL;
113 char *target_path = ERR_PTR(-ENOMEM); 113 char *target_path = NULL;
114 struct cifs_sb_info *cifs_sb; 114 struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
115 struct cifsTconInfo *pTcon; 115 struct cifsTconInfo *tcon = cifs_sb->tcon;
116 116
117 xid = GetXid(); 117 xid = GetXid();
118 118
119 full_path = build_path_from_dentry(direntry); 119 /*
120 * For now, we just handle symlinks with unix extensions enabled.
121 * Eventually we should handle NTFS reparse points, and MacOS
122 * symlink support. For instance...
123 *
124 * rc = CIFSSMBQueryReparseLinkInfo(...)
125 *
126 * For now, just return -EACCES when the server doesn't support posix
127 * extensions. Note that we still allow querying symlinks when posix
128 * extensions are manually disabled. We could disable these as well
129 * but there doesn't seem to be any harm in allowing the client to
130 * read them.
131 */
132 if (!(tcon->ses->capabilities & CAP_UNIX)) {
133 rc = -EACCES;
134 goto out;
135 }
120 136
137 full_path = build_path_from_dentry(direntry);
121 if (!full_path) 138 if (!full_path)
122 goto out; 139 goto out;
123 140
124 cFYI(1, ("Full path: %s inode = 0x%p", full_path, inode)); 141 cFYI(1, ("Full path: %s inode = 0x%p", full_path, inode));
125 cifs_sb = CIFS_SB(inode->i_sb);
126 pTcon = cifs_sb->tcon;
127
128 /* We could change this to:
129 if (pTcon->unix_ext)
130 but there does not seem any point in refusing to
131 get symlink info if we can, even if unix extensions
132 turned off for this mount */
133
134 if (pTcon->ses->capabilities & CAP_UNIX)
135 rc = CIFSSMBUnixQuerySymLink(xid, pTcon, full_path,
136 &target_path,
137 cifs_sb->local_nls);
138 else {
139 /* BB add read reparse point symlink code here */
140 /* rc = CIFSSMBQueryReparseLinkInfo */
141 /* BB Add code to Query ReparsePoint info */
142 /* BB Add MAC style xsymlink check here if enabled */
143 }
144 142
143 rc = CIFSSMBUnixQuerySymLink(xid, tcon, full_path, &target_path,
144 cifs_sb->local_nls);
145 kfree(full_path);
146out:
145 if (rc != 0) { 147 if (rc != 0) {
146 kfree(target_path); 148 kfree(target_path);
147 target_path = ERR_PTR(rc); 149 target_path = ERR_PTR(rc);
148 } 150 }
149 151
150 kfree(full_path);
151out:
152 FreeXid(xid); 152 FreeXid(xid);
153 nd_set_link(nd, target_path); 153 nd_set_link(nd, target_path);
154 return NULL; 154 return NULL;
diff --git a/fs/dcache.c b/fs/dcache.c
index 1fcffebfb44f..75659a6fd1f8 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -481,7 +481,7 @@ restart:
481 if ((flags & DCACHE_REFERENCED) 481 if ((flags & DCACHE_REFERENCED)
482 && (dentry->d_flags & DCACHE_REFERENCED)) { 482 && (dentry->d_flags & DCACHE_REFERENCED)) {
483 dentry->d_flags &= ~DCACHE_REFERENCED; 483 dentry->d_flags &= ~DCACHE_REFERENCED;
484 list_move_tail(&dentry->d_lru, &referenced); 484 list_move(&dentry->d_lru, &referenced);
485 spin_unlock(&dentry->d_lock); 485 spin_unlock(&dentry->d_lock);
486 } else { 486 } else {
487 list_move_tail(&dentry->d_lru, &tmp); 487 list_move_tail(&dentry->d_lru, &tmp);
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
index 63a4a59e4148..c68edb969441 100644
--- a/fs/devpts/inode.c
+++ b/fs/devpts/inode.c
@@ -90,6 +90,15 @@ static inline struct super_block *pts_sb_from_inode(struct inode *inode)
90#define PARSE_MOUNT 0 90#define PARSE_MOUNT 0
91#define PARSE_REMOUNT 1 91#define PARSE_REMOUNT 1
92 92
93/*
94 * parse_mount_options():
95 * Set @opts to mount options specified in @data. If an option is not
96 * specified in @data, set it to its default value. The exception is
97 * 'newinstance' option which can only be set/cleared on a mount (i.e.
98 * cannot be changed during remount).
99 *
100 * Note: @data may be NULL (in which case all options are set to default).
101 */
93static int parse_mount_options(char *data, int op, struct pts_mount_opts *opts) 102static int parse_mount_options(char *data, int op, struct pts_mount_opts *opts)
94{ 103{
95 char *p; 104 char *p;
@@ -355,12 +364,9 @@ static int devpts_get_sb(struct file_system_type *fs_type,
355 struct pts_mount_opts opts; 364 struct pts_mount_opts opts;
356 struct super_block *s; 365 struct super_block *s;
357 366
358 memset(&opts, 0, sizeof(opts)); 367 error = parse_mount_options(data, PARSE_MOUNT, &opts);
359 if (data) { 368 if (error)
360 error = parse_mount_options(data, PARSE_MOUNT, &opts); 369 return error;
361 if (error)
362 return error;
363 }
364 370
365 if (opts.newinstance) 371 if (opts.newinstance)
366 s = sget(fs_type, NULL, set_anon_super, NULL); 372 s = sget(fs_type, NULL, set_anon_super, NULL);
@@ -389,11 +395,10 @@ static int devpts_get_sb(struct file_system_type *fs_type,
389 return 0; 395 return 0;
390 396
391out_dput: 397out_dput:
392 dput(s->s_root); 398 dput(s->s_root); /* undo dget() in simple_set_mnt() */
393 399
394out_undo_sget: 400out_undo_sget:
395 up_write(&s->s_umount); 401 deactivate_locked_super(s);
396 deactivate_super(s);
397 return error; 402 return error;
398} 403}
399 404
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
index ccabd5faa04d..9f0aa9883c28 100644
--- a/fs/ecryptfs/main.c
+++ b/fs/ecryptfs/main.c
@@ -614,9 +614,8 @@ static int ecryptfs_get_sb(struct file_system_type *fs_type, int flags,
614 } 614 }
615 goto out; 615 goto out;
616out_abort: 616out_abort:
617 dput(sb->s_root); 617 dput(sb->s_root); /* aka mnt->mnt_root, as set by get_sb_nodev() */
618 up_write(&sb->s_umount); 618 deactivate_locked_super(sb);
619 deactivate_super(sb);
620out: 619out:
621 return rc; 620 return rc;
622} 621}
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index a89f370fadb5..5458e80fc558 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -1212,7 +1212,7 @@ SYSCALL_DEFINE1(epoll_create1, int, flags)
1212 1212
1213SYSCALL_DEFINE1(epoll_create, int, size) 1213SYSCALL_DEFINE1(epoll_create, int, size)
1214{ 1214{
1215 if (size < 0) 1215 if (size <= 0)
1216 return -EINVAL; 1216 return -EINVAL;
1217 1217
1218 return sys_epoll_create1(0); 1218 return sys_epoll_create1(0);
diff --git a/fs/exec.c b/fs/exec.c
index 639177b0eeac..895823d0149d 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -105,40 +105,28 @@ static inline void put_binfmt(struct linux_binfmt * fmt)
105SYSCALL_DEFINE1(uselib, const char __user *, library) 105SYSCALL_DEFINE1(uselib, const char __user *, library)
106{ 106{
107 struct file *file; 107 struct file *file;
108 struct nameidata nd;
109 char *tmp = getname(library); 108 char *tmp = getname(library);
110 int error = PTR_ERR(tmp); 109 int error = PTR_ERR(tmp);
111 110
112 if (!IS_ERR(tmp)) { 111 if (IS_ERR(tmp))
113 error = path_lookup_open(AT_FDCWD, tmp, 112 goto out;
114 LOOKUP_FOLLOW, &nd, 113
115 FMODE_READ|FMODE_EXEC); 114 file = do_filp_open(AT_FDCWD, tmp,
116 putname(tmp); 115 O_LARGEFILE | O_RDONLY | FMODE_EXEC, 0,
117 } 116 MAY_READ | MAY_EXEC | MAY_OPEN);
118 if (error) 117 putname(tmp);
118 error = PTR_ERR(file);
119 if (IS_ERR(file))
119 goto out; 120 goto out;
120 121
121 error = -EINVAL; 122 error = -EINVAL;
122 if (!S_ISREG(nd.path.dentry->d_inode->i_mode)) 123 if (!S_ISREG(file->f_path.dentry->d_inode->i_mode))
123 goto exit; 124 goto exit;
124 125
125 error = -EACCES; 126 error = -EACCES;
126 if (nd.path.mnt->mnt_flags & MNT_NOEXEC) 127 if (file->f_path.mnt->mnt_flags & MNT_NOEXEC)
127 goto exit;
128
129 error = inode_permission(nd.path.dentry->d_inode,
130 MAY_READ | MAY_EXEC | MAY_OPEN);
131 if (error)
132 goto exit;
133 error = ima_path_check(&nd.path, MAY_READ | MAY_EXEC | MAY_OPEN);
134 if (error)
135 goto exit; 128 goto exit;
136 129
137 file = nameidata_to_filp(&nd, O_RDONLY|O_LARGEFILE);
138 error = PTR_ERR(file);
139 if (IS_ERR(file))
140 goto out;
141
142 fsnotify_open(file->f_path.dentry); 130 fsnotify_open(file->f_path.dentry);
143 131
144 error = -ENOEXEC; 132 error = -ENOEXEC;
@@ -160,13 +148,10 @@ SYSCALL_DEFINE1(uselib, const char __user *, library)
160 } 148 }
161 read_unlock(&binfmt_lock); 149 read_unlock(&binfmt_lock);
162 } 150 }
151exit:
163 fput(file); 152 fput(file);
164out: 153out:
165 return error; 154 return error;
166exit:
167 release_open_intent(&nd);
168 path_put(&nd.path);
169 goto out;
170} 155}
171 156
172#ifdef CONFIG_MMU 157#ifdef CONFIG_MMU
@@ -661,47 +646,33 @@ EXPORT_SYMBOL(setup_arg_pages);
661 646
662struct file *open_exec(const char *name) 647struct file *open_exec(const char *name)
663{ 648{
664 struct nameidata nd;
665 struct file *file; 649 struct file *file;
666 int err; 650 int err;
667 651
668 err = path_lookup_open(AT_FDCWD, name, LOOKUP_FOLLOW, &nd, 652 file = do_filp_open(AT_FDCWD, name,
669 FMODE_READ|FMODE_EXEC); 653 O_LARGEFILE | O_RDONLY | FMODE_EXEC, 0,
670 if (err) 654 MAY_EXEC | MAY_OPEN);
655 if (IS_ERR(file))
671 goto out; 656 goto out;
672 657
673 err = -EACCES; 658 err = -EACCES;
674 if (!S_ISREG(nd.path.dentry->d_inode->i_mode)) 659 if (!S_ISREG(file->f_path.dentry->d_inode->i_mode))
675 goto out_path_put; 660 goto exit;
676
677 if (nd.path.mnt->mnt_flags & MNT_NOEXEC)
678 goto out_path_put;
679
680 err = inode_permission(nd.path.dentry->d_inode, MAY_EXEC | MAY_OPEN);
681 if (err)
682 goto out_path_put;
683 err = ima_path_check(&nd.path, MAY_EXEC | MAY_OPEN);
684 if (err)
685 goto out_path_put;
686 661
687 file = nameidata_to_filp(&nd, O_RDONLY|O_LARGEFILE); 662 if (file->f_path.mnt->mnt_flags & MNT_NOEXEC)
688 if (IS_ERR(file)) 663 goto exit;
689 return file;
690 664
691 fsnotify_open(file->f_path.dentry); 665 fsnotify_open(file->f_path.dentry);
692 666
693 err = deny_write_access(file); 667 err = deny_write_access(file);
694 if (err) { 668 if (err)
695 fput(file); 669 goto exit;
696 goto out;
697 }
698 670
671out:
699 return file; 672 return file;
700 673
701 out_path_put: 674exit:
702 release_open_intent(&nd); 675 fput(file);
703 path_put(&nd.path);
704 out:
705 return ERR_PTR(err); 676 return ERR_PTR(err);
706} 677}
707EXPORT_SYMBOL(open_exec); 678EXPORT_SYMBOL(open_exec);
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index e40332158340..e3a55eb8b26a 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -1841,11 +1841,13 @@ ext4_ext_put_in_cache(struct inode *inode, ext4_lblk_t block,
1841{ 1841{
1842 struct ext4_ext_cache *cex; 1842 struct ext4_ext_cache *cex;
1843 BUG_ON(len == 0); 1843 BUG_ON(len == 0);
1844 spin_lock(&EXT4_I(inode)->i_block_reservation_lock);
1844 cex = &EXT4_I(inode)->i_cached_extent; 1845 cex = &EXT4_I(inode)->i_cached_extent;
1845 cex->ec_type = type; 1846 cex->ec_type = type;
1846 cex->ec_block = block; 1847 cex->ec_block = block;
1847 cex->ec_len = len; 1848 cex->ec_len = len;
1848 cex->ec_start = start; 1849 cex->ec_start = start;
1850 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
1849} 1851}
1850 1852
1851/* 1853/*
@@ -1902,12 +1904,17 @@ ext4_ext_in_cache(struct inode *inode, ext4_lblk_t block,
1902 struct ext4_extent *ex) 1904 struct ext4_extent *ex)
1903{ 1905{
1904 struct ext4_ext_cache *cex; 1906 struct ext4_ext_cache *cex;
1907 int ret = EXT4_EXT_CACHE_NO;
1905 1908
1909 /*
1910 * We borrow i_block_reservation_lock to protect i_cached_extent
1911 */
1912 spin_lock(&EXT4_I(inode)->i_block_reservation_lock);
1906 cex = &EXT4_I(inode)->i_cached_extent; 1913 cex = &EXT4_I(inode)->i_cached_extent;
1907 1914
1908 /* has cache valid data? */ 1915 /* has cache valid data? */
1909 if (cex->ec_type == EXT4_EXT_CACHE_NO) 1916 if (cex->ec_type == EXT4_EXT_CACHE_NO)
1910 return EXT4_EXT_CACHE_NO; 1917 goto errout;
1911 1918
1912 BUG_ON(cex->ec_type != EXT4_EXT_CACHE_GAP && 1919 BUG_ON(cex->ec_type != EXT4_EXT_CACHE_GAP &&
1913 cex->ec_type != EXT4_EXT_CACHE_EXTENT); 1920 cex->ec_type != EXT4_EXT_CACHE_EXTENT);
@@ -1918,11 +1925,11 @@ ext4_ext_in_cache(struct inode *inode, ext4_lblk_t block,
1918 ext_debug("%u cached by %u:%u:%llu\n", 1925 ext_debug("%u cached by %u:%u:%llu\n",
1919 block, 1926 block,
1920 cex->ec_block, cex->ec_len, cex->ec_start); 1927 cex->ec_block, cex->ec_len, cex->ec_start);
1921 return cex->ec_type; 1928 ret = cex->ec_type;
1922 } 1929 }
1923 1930errout:
1924 /* not in cache */ 1931 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
1925 return EXT4_EXT_CACHE_NO; 1932 return ret;
1926} 1933}
1927 1934
1928/* 1935/*
@@ -2875,6 +2882,8 @@ int ext4_ext_get_blocks(handle_t *handle, struct inode *inode,
2875 if (allocated > max_blocks) 2882 if (allocated > max_blocks)
2876 allocated = max_blocks; 2883 allocated = max_blocks;
2877 set_buffer_unwritten(bh_result); 2884 set_buffer_unwritten(bh_result);
2885 bh_result->b_bdev = inode->i_sb->s_bdev;
2886 bh_result->b_blocknr = newblock;
2878 goto out2; 2887 goto out2;
2879 } 2888 }
2880 2889
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index e91f978c7f12..2a9ffd528dd1 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -1149,6 +1149,7 @@ int ext4_get_blocks_wrap(handle_t *handle, struct inode *inode, sector_t block,
1149 int retval; 1149 int retval;
1150 1150
1151 clear_buffer_mapped(bh); 1151 clear_buffer_mapped(bh);
1152 clear_buffer_unwritten(bh);
1152 1153
1153 /* 1154 /*
1154 * Try to see if we can get the block without requesting 1155 * Try to see if we can get the block without requesting
@@ -1179,6 +1180,18 @@ int ext4_get_blocks_wrap(handle_t *handle, struct inode *inode, sector_t block,
1179 return retval; 1180 return retval;
1180 1181
1181 /* 1182 /*
1183 * When we call get_blocks without the create flag, the
1184 * BH_Unwritten flag could have gotten set if the blocks
1185 * requested were part of a uninitialized extent. We need to
1186 * clear this flag now that we are committed to convert all or
1187 * part of the uninitialized extent to be an initialized
1188 * extent. This is because we need to avoid the combination
1189 * of BH_Unwritten and BH_Mapped flags being simultaneously
1190 * set on the buffer_head.
1191 */
1192 clear_buffer_unwritten(bh);
1193
1194 /*
1182 * New blocks allocate and/or writing to uninitialized extent 1195 * New blocks allocate and/or writing to uninitialized extent
1183 * will possibly result in updating i_data, so we take 1196 * will possibly result in updating i_data, so we take
1184 * the write lock of i_data_sem, and call get_blocks() 1197 * the write lock of i_data_sem, and call get_blocks()
@@ -2297,6 +2310,10 @@ static int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
2297 struct buffer_head *bh_result, int create) 2310 struct buffer_head *bh_result, int create)
2298{ 2311{
2299 int ret = 0; 2312 int ret = 0;
2313 sector_t invalid_block = ~((sector_t) 0xffff);
2314
2315 if (invalid_block < ext4_blocks_count(EXT4_SB(inode->i_sb)->s_es))
2316 invalid_block = ~0;
2300 2317
2301 BUG_ON(create == 0); 2318 BUG_ON(create == 0);
2302 BUG_ON(bh_result->b_size != inode->i_sb->s_blocksize); 2319 BUG_ON(bh_result->b_size != inode->i_sb->s_blocksize);
@@ -2318,11 +2335,18 @@ static int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
2318 /* not enough space to reserve */ 2335 /* not enough space to reserve */
2319 return ret; 2336 return ret;
2320 2337
2321 map_bh(bh_result, inode->i_sb, 0); 2338 map_bh(bh_result, inode->i_sb, invalid_block);
2322 set_buffer_new(bh_result); 2339 set_buffer_new(bh_result);
2323 set_buffer_delay(bh_result); 2340 set_buffer_delay(bh_result);
2324 } else if (ret > 0) { 2341 } else if (ret > 0) {
2325 bh_result->b_size = (ret << inode->i_blkbits); 2342 bh_result->b_size = (ret << inode->i_blkbits);
2343 /*
2344 * With sub-block writes into unwritten extents
2345 * we also need to mark the buffer as new so that
2346 * the unwritten parts of the buffer gets correctly zeroed.
2347 */
2348 if (buffer_unwritten(bh_result))
2349 set_buffer_new(bh_result);
2326 ret = 0; 2350 ret = 0;
2327 } 2351 }
2328 2352
diff --git a/fs/fcntl.c b/fs/fcntl.c
index cc8e4de2fee5..1ad703150dee 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -117,11 +117,13 @@ SYSCALL_DEFINE2(dup2, unsigned int, oldfd, unsigned int, newfd)
117{ 117{
118 if (unlikely(newfd == oldfd)) { /* corner case */ 118 if (unlikely(newfd == oldfd)) { /* corner case */
119 struct files_struct *files = current->files; 119 struct files_struct *files = current->files;
120 int retval = oldfd;
121
120 rcu_read_lock(); 122 rcu_read_lock();
121 if (!fcheck_files(files, oldfd)) 123 if (!fcheck_files(files, oldfd))
122 oldfd = -EBADF; 124 retval = -EBADF;
123 rcu_read_unlock(); 125 rcu_read_unlock();
124 return oldfd; 126 return retval;
125 } 127 }
126 return sys_dup3(oldfd, newfd, 0); 128 return sys_dup3(oldfd, newfd, 0);
127} 129}
diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
index e0cbd16f6dc9..1c341304621f 100644
--- a/fs/fscache/internal.h
+++ b/fs/fscache/internal.h
@@ -28,7 +28,7 @@
28#define FSCACHE_MAX_THREADS 32 28#define FSCACHE_MAX_THREADS 32
29 29
30/* 30/*
31 * fsc-cache.c 31 * cache.c
32 */ 32 */
33extern struct list_head fscache_cache_list; 33extern struct list_head fscache_cache_list;
34extern struct rw_semaphore fscache_addremove_sem; 34extern struct rw_semaphore fscache_addremove_sem;
@@ -37,7 +37,7 @@ extern struct fscache_cache *fscache_select_cache_for_object(
37 struct fscache_cookie *); 37 struct fscache_cookie *);
38 38
39/* 39/*
40 * fsc-cookie.c 40 * cookie.c
41 */ 41 */
42extern struct kmem_cache *fscache_cookie_jar; 42extern struct kmem_cache *fscache_cookie_jar;
43 43
@@ -45,13 +45,13 @@ extern void fscache_cookie_init_once(void *);
45extern void __fscache_cookie_put(struct fscache_cookie *); 45extern void __fscache_cookie_put(struct fscache_cookie *);
46 46
47/* 47/*
48 * fsc-fsdef.c 48 * fsdef.c
49 */ 49 */
50extern struct fscache_cookie fscache_fsdef_index; 50extern struct fscache_cookie fscache_fsdef_index;
51extern struct fscache_cookie_def fscache_fsdef_netfs_def; 51extern struct fscache_cookie_def fscache_fsdef_netfs_def;
52 52
53/* 53/*
54 * fsc-histogram.c 54 * histogram.c
55 */ 55 */
56#ifdef CONFIG_FSCACHE_HISTOGRAM 56#ifdef CONFIG_FSCACHE_HISTOGRAM
57extern atomic_t fscache_obj_instantiate_histogram[HZ]; 57extern atomic_t fscache_obj_instantiate_histogram[HZ];
@@ -75,7 +75,7 @@ extern const struct file_operations fscache_histogram_fops;
75#endif 75#endif
76 76
77/* 77/*
78 * fsc-main.c 78 * main.c
79 */ 79 */
80extern unsigned fscache_defer_lookup; 80extern unsigned fscache_defer_lookup;
81extern unsigned fscache_defer_create; 81extern unsigned fscache_defer_create;
@@ -86,14 +86,14 @@ extern int fscache_wait_bit(void *);
86extern int fscache_wait_bit_interruptible(void *); 86extern int fscache_wait_bit_interruptible(void *);
87 87
88/* 88/*
89 * fsc-object.c 89 * object.c
90 */ 90 */
91extern void fscache_withdrawing_object(struct fscache_cache *, 91extern void fscache_withdrawing_object(struct fscache_cache *,
92 struct fscache_object *); 92 struct fscache_object *);
93extern void fscache_enqueue_object(struct fscache_object *); 93extern void fscache_enqueue_object(struct fscache_object *);
94 94
95/* 95/*
96 * fsc-operation.c 96 * operation.c
97 */ 97 */
98extern int fscache_submit_exclusive_op(struct fscache_object *, 98extern int fscache_submit_exclusive_op(struct fscache_object *,
99 struct fscache_operation *); 99 struct fscache_operation *);
@@ -104,7 +104,7 @@ extern void fscache_start_operations(struct fscache_object *);
104extern void fscache_operation_gc(struct work_struct *); 104extern void fscache_operation_gc(struct work_struct *);
105 105
106/* 106/*
107 * fsc-proc.c 107 * proc.c
108 */ 108 */
109#ifdef CONFIG_PROC_FS 109#ifdef CONFIG_PROC_FS
110extern int __init fscache_proc_init(void); 110extern int __init fscache_proc_init(void);
@@ -115,7 +115,7 @@ extern void fscache_proc_cleanup(void);
115#endif 115#endif
116 116
117/* 117/*
118 * fsc-stats.c 118 * stats.c
119 */ 119 */
120#ifdef CONFIG_FSCACHE_STATS 120#ifdef CONFIG_FSCACHE_STATS
121extern atomic_t fscache_n_ops_processed[FSCACHE_MAX_THREADS]; 121extern atomic_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 459b73dd45e1..91f7c85f1ffd 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -19,6 +19,7 @@
19#include <linux/random.h> 19#include <linux/random.h>
20#include <linux/sched.h> 20#include <linux/sched.h>
21#include <linux/exportfs.h> 21#include <linux/exportfs.h>
22#include <linux/smp_lock.h>
22 23
23MODULE_AUTHOR("Miklos Szeredi <miklos@szeredi.hu>"); 24MODULE_AUTHOR("Miklos Szeredi <miklos@szeredi.hu>");
24MODULE_DESCRIPTION("Filesystem in Userspace"); 25MODULE_DESCRIPTION("Filesystem in Userspace");
@@ -259,7 +260,9 @@ struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
259 260
260static void fuse_umount_begin(struct super_block *sb) 261static void fuse_umount_begin(struct super_block *sb)
261{ 262{
263 lock_kernel();
262 fuse_abort_conn(get_fuse_conn_super(sb)); 264 fuse_abort_conn(get_fuse_conn_super(sb));
265 unlock_kernel();
263} 266}
264 267
265static void fuse_send_destroy(struct fuse_conn *fc) 268static void fuse_send_destroy(struct fuse_conn *fc)
@@ -908,6 +911,7 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
908 err_put_root: 911 err_put_root:
909 dput(root_dentry); 912 dput(root_dentry);
910 err_put_conn: 913 err_put_conn:
914 bdi_destroy(&fc->bdi);
911 fuse_conn_put(fc); 915 fuse_conn_put(fc);
912 err_fput: 916 err_fput:
913 fput(file); 917 fput(file);
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index 1afd9f26bcb1..ff4981090489 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -1304,6 +1304,7 @@ static int gfs2_shrink_glock_memory(int nr, gfp_t gfp_mask)
1304 nr--; 1304 nr--;
1305 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0) 1305 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
1306 gfs2_glock_put(gl); 1306 gfs2_glock_put(gl);
1307 got_ref = 0;
1307 } 1308 }
1308 spin_lock(&lru_lock); 1309 spin_lock(&lru_lock);
1309 if (may_demote) 1310 if (may_demote)
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 650a730707b7..1ff9473ea753 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -1282,21 +1282,21 @@ static int gfs2_get_sb(struct file_system_type *fs_type, int flags,
1282static struct super_block *get_gfs2_sb(const char *dev_name) 1282static struct super_block *get_gfs2_sb(const char *dev_name)
1283{ 1283{
1284 struct super_block *sb; 1284 struct super_block *sb;
1285 struct nameidata nd; 1285 struct path path;
1286 int error; 1286 int error;
1287 1287
1288 error = path_lookup(dev_name, LOOKUP_FOLLOW, &nd); 1288 error = kern_path(dev_name, LOOKUP_FOLLOW, &path);
1289 if (error) { 1289 if (error) {
1290 printk(KERN_WARNING "GFS2: path_lookup on %s returned error %d\n", 1290 printk(KERN_WARNING "GFS2: path_lookup on %s returned error %d\n",
1291 dev_name, error); 1291 dev_name, error);
1292 return NULL; 1292 return NULL;
1293 } 1293 }
1294 sb = nd.path.dentry->d_inode->i_sb; 1294 sb = path.dentry->d_inode->i_sb;
1295 if (sb && (sb->s_type == &gfs2_fs_type)) 1295 if (sb && (sb->s_type == &gfs2_fs_type))
1296 atomic_inc(&sb->s_active); 1296 atomic_inc(&sb->s_active);
1297 else 1297 else
1298 sb = NULL; 1298 sb = NULL;
1299 path_put(&nd.path); 1299 path_put(&path);
1300 return sb; 1300 return sb;
1301} 1301}
1302 1302
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
index fecf402d7b8a..fc77965be841 100644
--- a/fs/hpfs/super.c
+++ b/fs/hpfs/super.c
@@ -423,8 +423,7 @@ static int hpfs_remount_fs(struct super_block *s, int *flags, char *data)
423 423
424 if (!(*flags & MS_RDONLY)) mark_dirty(s); 424 if (!(*flags & MS_RDONLY)) mark_dirty(s);
425 425
426 kfree(s->s_options); 426 replace_mount_options(s, new_opts);
427 s->s_options = new_opts;
428 427
429 return 0; 428 return 0;
430 429
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 153d9681192b..c1462d43e721 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -312,16 +312,6 @@ out:
312 return retval; 312 return retval;
313} 313}
314 314
315/*
316 * Read a page. Again trivial. If it didn't already exist
317 * in the page cache, it is zero-filled.
318 */
319static int hugetlbfs_readpage(struct file *file, struct page * page)
320{
321 unlock_page(page);
322 return -EINVAL;
323}
324
325static int hugetlbfs_write_begin(struct file *file, 315static int hugetlbfs_write_begin(struct file *file,
326 struct address_space *mapping, 316 struct address_space *mapping,
327 loff_t pos, unsigned len, unsigned flags, 317 loff_t pos, unsigned len, unsigned flags,
@@ -701,7 +691,6 @@ static void hugetlbfs_destroy_inode(struct inode *inode)
701} 691}
702 692
703static const struct address_space_operations hugetlbfs_aops = { 693static const struct address_space_operations hugetlbfs_aops = {
704 .readpage = hugetlbfs_readpage,
705 .write_begin = hugetlbfs_write_begin, 694 .write_begin = hugetlbfs_write_begin,
706 .write_end = hugetlbfs_write_end, 695 .write_end = hugetlbfs_write_end,
707 .set_page_dirty = hugetlbfs_set_page_dirty, 696 .set_page_dirty = hugetlbfs_set_page_dirty,
diff --git a/fs/inode.c b/fs/inode.c
index 6ad14a1cd8c9..bca0c618fdb3 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -99,7 +99,7 @@ static DEFINE_MUTEX(iprune_mutex);
99 */ 99 */
100struct inodes_stat_t inodes_stat; 100struct inodes_stat_t inodes_stat;
101 101
102static struct kmem_cache * inode_cachep __read_mostly; 102static struct kmem_cache *inode_cachep __read_mostly;
103 103
104static void wake_up_inode(struct inode *inode) 104static void wake_up_inode(struct inode *inode)
105{ 105{
@@ -124,7 +124,7 @@ struct inode *inode_init_always(struct super_block *sb, struct inode *inode)
124 static struct inode_operations empty_iops; 124 static struct inode_operations empty_iops;
125 static const struct file_operations empty_fops; 125 static const struct file_operations empty_fops;
126 126
127 struct address_space * const mapping = &inode->i_data; 127 struct address_space *const mapping = &inode->i_data;
128 128
129 inode->i_sb = sb; 129 inode->i_sb = sb;
130 inode->i_blkbits = sb->s_blocksize_bits; 130 inode->i_blkbits = sb->s_blocksize_bits;
@@ -216,9 +216,10 @@ static struct inode *alloc_inode(struct super_block *sb)
216 return NULL; 216 return NULL;
217} 217}
218 218
219void destroy_inode(struct inode *inode) 219void destroy_inode(struct inode *inode)
220{ 220{
221 BUG_ON(inode_has_buffers(inode)); 221 BUG_ON(inode_has_buffers(inode));
222 ima_inode_free(inode);
222 security_inode_free(inode); 223 security_inode_free(inode);
223 if (inode->i_sb->s_op->destroy_inode) 224 if (inode->i_sb->s_op->destroy_inode)
224 inode->i_sb->s_op->destroy_inode(inode); 225 inode->i_sb->s_op->destroy_inode(inode);
@@ -252,12 +253,11 @@ void inode_init_once(struct inode *inode)
252 mutex_init(&inode->inotify_mutex); 253 mutex_init(&inode->inotify_mutex);
253#endif 254#endif
254} 255}
255
256EXPORT_SYMBOL(inode_init_once); 256EXPORT_SYMBOL(inode_init_once);
257 257
258static void init_once(void *foo) 258static void init_once(void *foo)
259{ 259{
260 struct inode * inode = (struct inode *) foo; 260 struct inode *inode = (struct inode *) foo;
261 261
262 inode_init_once(inode); 262 inode_init_once(inode);
263} 263}
@@ -265,7 +265,7 @@ static void init_once(void *foo)
265/* 265/*
266 * inode_lock must be held 266 * inode_lock must be held
267 */ 267 */
268void __iget(struct inode * inode) 268void __iget(struct inode *inode)
269{ 269{
270 if (atomic_read(&inode->i_count)) { 270 if (atomic_read(&inode->i_count)) {
271 atomic_inc(&inode->i_count); 271 atomic_inc(&inode->i_count);
@@ -289,7 +289,7 @@ void clear_inode(struct inode *inode)
289{ 289{
290 might_sleep(); 290 might_sleep();
291 invalidate_inode_buffers(inode); 291 invalidate_inode_buffers(inode);
292 292
293 BUG_ON(inode->i_data.nrpages); 293 BUG_ON(inode->i_data.nrpages);
294 BUG_ON(!(inode->i_state & I_FREEING)); 294 BUG_ON(!(inode->i_state & I_FREEING));
295 BUG_ON(inode->i_state & I_CLEAR); 295 BUG_ON(inode->i_state & I_CLEAR);
@@ -303,7 +303,6 @@ void clear_inode(struct inode *inode)
303 cd_forget(inode); 303 cd_forget(inode);
304 inode->i_state = I_CLEAR; 304 inode->i_state = I_CLEAR;
305} 305}
306
307EXPORT_SYMBOL(clear_inode); 306EXPORT_SYMBOL(clear_inode);
308 307
309/* 308/*
@@ -351,8 +350,8 @@ static int invalidate_list(struct list_head *head, struct list_head *dispose)
351 350
352 next = head->next; 351 next = head->next;
353 for (;;) { 352 for (;;) {
354 struct list_head * tmp = next; 353 struct list_head *tmp = next;
355 struct inode * inode; 354 struct inode *inode;
356 355
357 /* 356 /*
358 * We can reschedule here without worrying about the list's 357 * We can reschedule here without worrying about the list's
@@ -391,7 +390,7 @@ static int invalidate_list(struct list_head *head, struct list_head *dispose)
391 * fails because there are busy inodes then a non zero value is returned. 390 * fails because there are busy inodes then a non zero value is returned.
392 * If the discard is successful all the inodes have been discarded. 391 * If the discard is successful all the inodes have been discarded.
393 */ 392 */
394int invalidate_inodes(struct super_block * sb) 393int invalidate_inodes(struct super_block *sb)
395{ 394{
396 int busy; 395 int busy;
397 LIST_HEAD(throw_away); 396 LIST_HEAD(throw_away);
@@ -407,7 +406,6 @@ int invalidate_inodes(struct super_block * sb)
407 406
408 return busy; 407 return busy;
409} 408}
410
411EXPORT_SYMBOL(invalidate_inodes); 409EXPORT_SYMBOL(invalidate_inodes);
412 410
413static int can_unuse(struct inode *inode) 411static int can_unuse(struct inode *inode)
@@ -504,7 +502,7 @@ static int shrink_icache_memory(int nr, gfp_t gfp_mask)
504 * Nasty deadlock avoidance. We may hold various FS locks, 502 * Nasty deadlock avoidance. We may hold various FS locks,
505 * and we don't want to recurse into the FS that called us 503 * and we don't want to recurse into the FS that called us
506 * in clear_inode() and friends.. 504 * in clear_inode() and friends..
507 */ 505 */
508 if (!(gfp_mask & __GFP_FS)) 506 if (!(gfp_mask & __GFP_FS))
509 return -1; 507 return -1;
510 prune_icache(nr); 508 prune_icache(nr);
@@ -524,10 +522,13 @@ static void __wait_on_freeing_inode(struct inode *inode);
524 * by hand after calling find_inode now! This simplifies iunique and won't 522 * by hand after calling find_inode now! This simplifies iunique and won't
525 * add any additional branch in the common code. 523 * add any additional branch in the common code.
526 */ 524 */
527static struct inode * find_inode(struct super_block * sb, struct hlist_head *head, int (*test)(struct inode *, void *), void *data) 525static struct inode *find_inode(struct super_block *sb,
526 struct hlist_head *head,
527 int (*test)(struct inode *, void *),
528 void *data)
528{ 529{
529 struct hlist_node *node; 530 struct hlist_node *node;
530 struct inode * inode = NULL; 531 struct inode *inode = NULL;
531 532
532repeat: 533repeat:
533 hlist_for_each_entry(inode, node, head, i_hash) { 534 hlist_for_each_entry(inode, node, head, i_hash) {
@@ -548,10 +549,11 @@ repeat:
548 * find_inode_fast is the fast path version of find_inode, see the comment at 549 * find_inode_fast is the fast path version of find_inode, see the comment at
549 * iget_locked for details. 550 * iget_locked for details.
550 */ 551 */
551static struct inode * find_inode_fast(struct super_block * sb, struct hlist_head *head, unsigned long ino) 552static struct inode *find_inode_fast(struct super_block *sb,
553 struct hlist_head *head, unsigned long ino)
552{ 554{
553 struct hlist_node *node; 555 struct hlist_node *node;
554 struct inode * inode = NULL; 556 struct inode *inode = NULL;
555 557
556repeat: 558repeat:
557 hlist_for_each_entry(inode, node, head, i_hash) { 559 hlist_for_each_entry(inode, node, head, i_hash) {
@@ -631,10 +633,10 @@ struct inode *new_inode(struct super_block *sb)
631 * here to attempt to avoid that. 633 * here to attempt to avoid that.
632 */ 634 */
633 static unsigned int last_ino; 635 static unsigned int last_ino;
634 struct inode * inode; 636 struct inode *inode;
635 637
636 spin_lock_prefetch(&inode_lock); 638 spin_lock_prefetch(&inode_lock);
637 639
638 inode = alloc_inode(sb); 640 inode = alloc_inode(sb);
639 if (inode) { 641 if (inode) {
640 spin_lock(&inode_lock); 642 spin_lock(&inode_lock);
@@ -645,7 +647,6 @@ struct inode *new_inode(struct super_block *sb)
645 } 647 }
646 return inode; 648 return inode;
647} 649}
648
649EXPORT_SYMBOL(new_inode); 650EXPORT_SYMBOL(new_inode);
650 651
651void unlock_new_inode(struct inode *inode) 652void unlock_new_inode(struct inode *inode)
@@ -674,7 +675,6 @@ void unlock_new_inode(struct inode *inode)
674 inode->i_state &= ~(I_LOCK|I_NEW); 675 inode->i_state &= ~(I_LOCK|I_NEW);
675 wake_up_inode(inode); 676 wake_up_inode(inode);
676} 677}
677
678EXPORT_SYMBOL(unlock_new_inode); 678EXPORT_SYMBOL(unlock_new_inode);
679 679
680/* 680/*
@@ -683,13 +683,17 @@ EXPORT_SYMBOL(unlock_new_inode);
683 * We no longer cache the sb_flags in i_flags - see fs.h 683 * We no longer cache the sb_flags in i_flags - see fs.h
684 * -- rmk@arm.uk.linux.org 684 * -- rmk@arm.uk.linux.org
685 */ 685 */
686static struct inode * get_new_inode(struct super_block *sb, struct hlist_head *head, int (*test)(struct inode *, void *), int (*set)(struct inode *, void *), void *data) 686static struct inode *get_new_inode(struct super_block *sb,
687 struct hlist_head *head,
688 int (*test)(struct inode *, void *),
689 int (*set)(struct inode *, void *),
690 void *data)
687{ 691{
688 struct inode * inode; 692 struct inode *inode;
689 693
690 inode = alloc_inode(sb); 694 inode = alloc_inode(sb);
691 if (inode) { 695 if (inode) {
692 struct inode * old; 696 struct inode *old;
693 697
694 spin_lock(&inode_lock); 698 spin_lock(&inode_lock);
695 /* We released the lock, so.. */ 699 /* We released the lock, so.. */
@@ -731,13 +735,14 @@ set_failed:
731 * get_new_inode_fast is the fast path version of get_new_inode, see the 735 * get_new_inode_fast is the fast path version of get_new_inode, see the
732 * comment at iget_locked for details. 736 * comment at iget_locked for details.
733 */ 737 */
734static struct inode * get_new_inode_fast(struct super_block *sb, struct hlist_head *head, unsigned long ino) 738static struct inode *get_new_inode_fast(struct super_block *sb,
739 struct hlist_head *head, unsigned long ino)
735{ 740{
736 struct inode * inode; 741 struct inode *inode;
737 742
738 inode = alloc_inode(sb); 743 inode = alloc_inode(sb);
739 if (inode) { 744 if (inode) {
740 struct inode * old; 745 struct inode *old;
741 746
742 spin_lock(&inode_lock); 747 spin_lock(&inode_lock);
743 /* We released the lock, so.. */ 748 /* We released the lock, so.. */
@@ -823,7 +828,6 @@ struct inode *igrab(struct inode *inode)
823 spin_unlock(&inode_lock); 828 spin_unlock(&inode_lock);
824 return inode; 829 return inode;
825} 830}
826
827EXPORT_SYMBOL(igrab); 831EXPORT_SYMBOL(igrab);
828 832
829/** 833/**
@@ -924,7 +928,6 @@ struct inode *ilookup5_nowait(struct super_block *sb, unsigned long hashval,
924 928
925 return ifind(sb, head, test, data, 0); 929 return ifind(sb, head, test, data, 0);
926} 930}
927
928EXPORT_SYMBOL(ilookup5_nowait); 931EXPORT_SYMBOL(ilookup5_nowait);
929 932
930/** 933/**
@@ -953,7 +956,6 @@ struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
953 956
954 return ifind(sb, head, test, data, 1); 957 return ifind(sb, head, test, data, 1);
955} 958}
956
957EXPORT_SYMBOL(ilookup5); 959EXPORT_SYMBOL(ilookup5);
958 960
959/** 961/**
@@ -976,7 +978,6 @@ struct inode *ilookup(struct super_block *sb, unsigned long ino)
976 978
977 return ifind_fast(sb, head, ino); 979 return ifind_fast(sb, head, ino);
978} 980}
979
980EXPORT_SYMBOL(ilookup); 981EXPORT_SYMBOL(ilookup);
981 982
982/** 983/**
@@ -1015,7 +1016,6 @@ struct inode *iget5_locked(struct super_block *sb, unsigned long hashval,
1015 */ 1016 */
1016 return get_new_inode(sb, head, test, set, data); 1017 return get_new_inode(sb, head, test, set, data);
1017} 1018}
1018
1019EXPORT_SYMBOL(iget5_locked); 1019EXPORT_SYMBOL(iget5_locked);
1020 1020
1021/** 1021/**
@@ -1047,7 +1047,6 @@ struct inode *iget_locked(struct super_block *sb, unsigned long ino)
1047 */ 1047 */
1048 return get_new_inode_fast(sb, head, ino); 1048 return get_new_inode_fast(sb, head, ino);
1049} 1049}
1050
1051EXPORT_SYMBOL(iget_locked); 1050EXPORT_SYMBOL(iget_locked);
1052 1051
1053int insert_inode_locked(struct inode *inode) 1052int insert_inode_locked(struct inode *inode)
@@ -1055,13 +1054,22 @@ int insert_inode_locked(struct inode *inode)
1055 struct super_block *sb = inode->i_sb; 1054 struct super_block *sb = inode->i_sb;
1056 ino_t ino = inode->i_ino; 1055 ino_t ino = inode->i_ino;
1057 struct hlist_head *head = inode_hashtable + hash(sb, ino); 1056 struct hlist_head *head = inode_hashtable + hash(sb, ino);
1058 struct inode *old;
1059 1057
1060 inode->i_state |= I_LOCK|I_NEW; 1058 inode->i_state |= I_LOCK|I_NEW;
1061 while (1) { 1059 while (1) {
1060 struct hlist_node *node;
1061 struct inode *old = NULL;
1062 spin_lock(&inode_lock); 1062 spin_lock(&inode_lock);
1063 old = find_inode_fast(sb, head, ino); 1063 hlist_for_each_entry(old, node, head, i_hash) {
1064 if (likely(!old)) { 1064 if (old->i_ino != ino)
1065 continue;
1066 if (old->i_sb != sb)
1067 continue;
1068 if (old->i_state & (I_FREEING|I_CLEAR|I_WILL_FREE))
1069 continue;
1070 break;
1071 }
1072 if (likely(!node)) {
1065 hlist_add_head(&inode->i_hash, head); 1073 hlist_add_head(&inode->i_hash, head);
1066 spin_unlock(&inode_lock); 1074 spin_unlock(&inode_lock);
1067 return 0; 1075 return 0;
@@ -1076,7 +1084,6 @@ int insert_inode_locked(struct inode *inode)
1076 iput(old); 1084 iput(old);
1077 } 1085 }
1078} 1086}
1079
1080EXPORT_SYMBOL(insert_inode_locked); 1087EXPORT_SYMBOL(insert_inode_locked);
1081 1088
1082int insert_inode_locked4(struct inode *inode, unsigned long hashval, 1089int insert_inode_locked4(struct inode *inode, unsigned long hashval,
@@ -1084,14 +1091,24 @@ int insert_inode_locked4(struct inode *inode, unsigned long hashval,
1084{ 1091{
1085 struct super_block *sb = inode->i_sb; 1092 struct super_block *sb = inode->i_sb;
1086 struct hlist_head *head = inode_hashtable + hash(sb, hashval); 1093 struct hlist_head *head = inode_hashtable + hash(sb, hashval);
1087 struct inode *old;
1088 1094
1089 inode->i_state |= I_LOCK|I_NEW; 1095 inode->i_state |= I_LOCK|I_NEW;
1090 1096
1091 while (1) { 1097 while (1) {
1098 struct hlist_node *node;
1099 struct inode *old = NULL;
1100
1092 spin_lock(&inode_lock); 1101 spin_lock(&inode_lock);
1093 old = find_inode(sb, head, test, data); 1102 hlist_for_each_entry(old, node, head, i_hash) {
1094 if (likely(!old)) { 1103 if (old->i_sb != sb)
1104 continue;
1105 if (!test(old, data))
1106 continue;
1107 if (old->i_state & (I_FREEING|I_CLEAR|I_WILL_FREE))
1108 continue;
1109 break;
1110 }
1111 if (likely(!node)) {
1095 hlist_add_head(&inode->i_hash, head); 1112 hlist_add_head(&inode->i_hash, head);
1096 spin_unlock(&inode_lock); 1113 spin_unlock(&inode_lock);
1097 return 0; 1114 return 0;
@@ -1106,7 +1123,6 @@ int insert_inode_locked4(struct inode *inode, unsigned long hashval,
1106 iput(old); 1123 iput(old);
1107 } 1124 }
1108} 1125}
1109
1110EXPORT_SYMBOL(insert_inode_locked4); 1126EXPORT_SYMBOL(insert_inode_locked4);
1111 1127
1112/** 1128/**
@@ -1124,7 +1140,6 @@ void __insert_inode_hash(struct inode *inode, unsigned long hashval)
1124 hlist_add_head(&inode->i_hash, head); 1140 hlist_add_head(&inode->i_hash, head);
1125 spin_unlock(&inode_lock); 1141 spin_unlock(&inode_lock);
1126} 1142}
1127
1128EXPORT_SYMBOL(__insert_inode_hash); 1143EXPORT_SYMBOL(__insert_inode_hash);
1129 1144
1130/** 1145/**
@@ -1139,7 +1154,6 @@ void remove_inode_hash(struct inode *inode)
1139 hlist_del_init(&inode->i_hash); 1154 hlist_del_init(&inode->i_hash);
1140 spin_unlock(&inode_lock); 1155 spin_unlock(&inode_lock);
1141} 1156}
1142
1143EXPORT_SYMBOL(remove_inode_hash); 1157EXPORT_SYMBOL(remove_inode_hash);
1144 1158
1145/* 1159/*
@@ -1187,7 +1201,6 @@ void generic_delete_inode(struct inode *inode)
1187 BUG_ON(inode->i_state != I_CLEAR); 1201 BUG_ON(inode->i_state != I_CLEAR);
1188 destroy_inode(inode); 1202 destroy_inode(inode);
1189} 1203}
1190
1191EXPORT_SYMBOL(generic_delete_inode); 1204EXPORT_SYMBOL(generic_delete_inode);
1192 1205
1193static void generic_forget_inode(struct inode *inode) 1206static void generic_forget_inode(struct inode *inode)
@@ -1237,12 +1250,11 @@ void generic_drop_inode(struct inode *inode)
1237 else 1250 else
1238 generic_forget_inode(inode); 1251 generic_forget_inode(inode);
1239} 1252}
1240
1241EXPORT_SYMBOL_GPL(generic_drop_inode); 1253EXPORT_SYMBOL_GPL(generic_drop_inode);
1242 1254
1243/* 1255/*
1244 * Called when we're dropping the last reference 1256 * Called when we're dropping the last reference
1245 * to an inode. 1257 * to an inode.
1246 * 1258 *
1247 * Call the FS "drop()" function, defaulting to 1259 * Call the FS "drop()" function, defaulting to
1248 * the legacy UNIX filesystem behaviour.. 1260 * the legacy UNIX filesystem behaviour..
@@ -1262,7 +1274,7 @@ static inline void iput_final(struct inode *inode)
1262} 1274}
1263 1275
1264/** 1276/**
1265 * iput - put an inode 1277 * iput - put an inode
1266 * @inode: inode to put 1278 * @inode: inode to put
1267 * 1279 *
1268 * Puts an inode, dropping its usage count. If the inode use count hits 1280 * Puts an inode, dropping its usage count. If the inode use count hits
@@ -1279,7 +1291,6 @@ void iput(struct inode *inode)
1279 iput_final(inode); 1291 iput_final(inode);
1280 } 1292 }
1281} 1293}
1282
1283EXPORT_SYMBOL(iput); 1294EXPORT_SYMBOL(iput);
1284 1295
1285/** 1296/**
@@ -1290,10 +1301,10 @@ EXPORT_SYMBOL(iput);
1290 * Returns the block number on the device holding the inode that 1301 * Returns the block number on the device holding the inode that
1291 * is the disk block number for the block of the file requested. 1302 * is the disk block number for the block of the file requested.
1292 * That is, asked for block 4 of inode 1 the function will return the 1303 * That is, asked for block 4 of inode 1 the function will return the
1293 * disk block relative to the disk start that holds that block of the 1304 * disk block relative to the disk start that holds that block of the
1294 * file. 1305 * file.
1295 */ 1306 */
1296sector_t bmap(struct inode * inode, sector_t block) 1307sector_t bmap(struct inode *inode, sector_t block)
1297{ 1308{
1298 sector_t res = 0; 1309 sector_t res = 0;
1299 if (inode->i_mapping->a_ops->bmap) 1310 if (inode->i_mapping->a_ops->bmap)
@@ -1425,7 +1436,6 @@ void file_update_time(struct file *file)
1425 mark_inode_dirty_sync(inode); 1436 mark_inode_dirty_sync(inode);
1426 mnt_drop_write(file->f_path.mnt); 1437 mnt_drop_write(file->f_path.mnt);
1427} 1438}
1428
1429EXPORT_SYMBOL(file_update_time); 1439EXPORT_SYMBOL(file_update_time);
1430 1440
1431int inode_needs_sync(struct inode *inode) 1441int inode_needs_sync(struct inode *inode)
@@ -1436,7 +1446,6 @@ int inode_needs_sync(struct inode *inode)
1436 return 1; 1446 return 1;
1437 return 0; 1447 return 0;
1438} 1448}
1439
1440EXPORT_SYMBOL(inode_needs_sync); 1449EXPORT_SYMBOL(inode_needs_sync);
1441 1450
1442int inode_wait(void *word) 1451int inode_wait(void *word)
diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c
index 06560c520f49..618e21c0b7a3 100644
--- a/fs/jbd/commit.c
+++ b/fs/jbd/commit.c
@@ -241,7 +241,7 @@ write_out_data:
241 spin_lock(&journal->j_list_lock); 241 spin_lock(&journal->j_list_lock);
242 } 242 }
243 /* Someone already cleaned up the buffer? */ 243 /* Someone already cleaned up the buffer? */
244 if (!buffer_jbd(bh) 244 if (!buffer_jbd(bh) || bh2jh(bh) != jh
245 || jh->b_transaction != commit_transaction 245 || jh->b_transaction != commit_transaction
246 || jh->b_jlist != BJ_SyncData) { 246 || jh->b_jlist != BJ_SyncData) {
247 jbd_unlock_bh_state(bh); 247 jbd_unlock_bh_state(bh);
@@ -478,7 +478,9 @@ void journal_commit_transaction(journal_t *journal)
478 spin_lock(&journal->j_list_lock); 478 spin_lock(&journal->j_list_lock);
479 continue; 479 continue;
480 } 480 }
481 if (buffer_jbd(bh) && jh->b_jlist == BJ_Locked) { 481 if (buffer_jbd(bh) && bh2jh(bh) == jh &&
482 jh->b_transaction == commit_transaction &&
483 jh->b_jlist == BJ_Locked) {
482 __journal_unfile_buffer(jh); 484 __journal_unfile_buffer(jh);
483 jbd_unlock_bh_state(bh); 485 jbd_unlock_bh_state(bh);
484 journal_remove_journal_head(bh); 486 journal_remove_journal_head(bh);
diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
index c32b4a1ad6cf..a0244740b75a 100644
--- a/fs/jffs2/erase.c
+++ b/fs/jffs2/erase.c
@@ -480,13 +480,6 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
480 return; 480 return;
481 481
482filebad: 482filebad:
483 mutex_lock(&c->erase_free_sem);
484 spin_lock(&c->erase_completion_lock);
485 /* Stick it on a list (any list) so erase_failed can take it
486 right off again. Silly, but shouldn't happen often. */
487 list_move(&jeb->list, &c->erasing_list);
488 spin_unlock(&c->erase_completion_lock);
489 mutex_unlock(&c->erase_free_sem);
490 jffs2_erase_failed(c, jeb, bad_offset); 483 jffs2_erase_failed(c, jeb, bad_offset);
491 return; 484 return;
492 485
diff --git a/fs/libfs.c b/fs/libfs.c
index cd223190c4e9..80046ddf5063 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -246,8 +246,7 @@ int get_sb_pseudo(struct file_system_type *fs_type, char *name,
246 return 0; 246 return 0;
247 247
248Enomem: 248Enomem:
249 up_write(&s->s_umount); 249 deactivate_locked_super(s);
250 deactivate_super(s);
251 return -ENOMEM; 250 return -ENOMEM;
252} 251}
253 252
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index abf83881f68a..1a54ae14a192 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -104,6 +104,16 @@ static void set_grace_period(void)
104 schedule_delayed_work(&grace_period_end, grace_period); 104 schedule_delayed_work(&grace_period_end, grace_period);
105} 105}
106 106
107static void restart_grace(void)
108{
109 if (nlmsvc_ops) {
110 cancel_delayed_work_sync(&grace_period_end);
111 locks_end_grace(&lockd_manager);
112 nlmsvc_invalidate_all();
113 set_grace_period();
114 }
115}
116
107/* 117/*
108 * This is the lockd kernel thread 118 * This is the lockd kernel thread
109 */ 119 */
@@ -149,10 +159,7 @@ lockd(void *vrqstp)
149 159
150 if (signalled()) { 160 if (signalled()) {
151 flush_signals(current); 161 flush_signals(current);
152 if (nlmsvc_ops) { 162 restart_grace();
153 nlmsvc_invalidate_all();
154 set_grace_period();
155 }
156 continue; 163 continue;
157 } 164 }
158 165
diff --git a/fs/namei.c b/fs/namei.c
index 78f253cd2d4f..967c3db92724 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1130,8 +1130,8 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
1130 * @nd: pointer to nameidata 1130 * @nd: pointer to nameidata
1131 * @open_flags: open intent flags 1131 * @open_flags: open intent flags
1132 */ 1132 */
1133int path_lookup_open(int dfd, const char *name, unsigned int lookup_flags, 1133static int path_lookup_open(int dfd, const char *name,
1134 struct nameidata *nd, int open_flags) 1134 unsigned int lookup_flags, struct nameidata *nd, int open_flags)
1135{ 1135{
1136 struct file *filp = get_empty_filp(); 1136 struct file *filp = get_empty_filp();
1137 int err; 1137 int err;
@@ -1637,18 +1637,19 @@ static int open_will_write_to_fs(int flag, struct inode *inode)
1637 * open_to_namei_flags() for more details. 1637 * open_to_namei_flags() for more details.
1638 */ 1638 */
1639struct file *do_filp_open(int dfd, const char *pathname, 1639struct file *do_filp_open(int dfd, const char *pathname,
1640 int open_flag, int mode) 1640 int open_flag, int mode, int acc_mode)
1641{ 1641{
1642 struct file *filp; 1642 struct file *filp;
1643 struct nameidata nd; 1643 struct nameidata nd;
1644 int acc_mode, error; 1644 int error;
1645 struct path path; 1645 struct path path;
1646 struct dentry *dir; 1646 struct dentry *dir;
1647 int count = 0; 1647 int count = 0;
1648 int will_write; 1648 int will_write;
1649 int flag = open_to_namei_flags(open_flag); 1649 int flag = open_to_namei_flags(open_flag);
1650 1650
1651 acc_mode = MAY_OPEN | ACC_MODE(flag); 1651 if (!acc_mode)
1652 acc_mode = MAY_OPEN | ACC_MODE(flag);
1652 1653
1653 /* O_TRUNC implies we need access checks for write permissions */ 1654 /* O_TRUNC implies we need access checks for write permissions */
1654 if (flag & O_TRUNC) 1655 if (flag & O_TRUNC)
@@ -1869,7 +1870,7 @@ do_link:
1869 */ 1870 */
1870struct file *filp_open(const char *filename, int flags, int mode) 1871struct file *filp_open(const char *filename, int flags, int mode)
1871{ 1872{
1872 return do_filp_open(AT_FDCWD, filename, flags, mode); 1873 return do_filp_open(AT_FDCWD, filename, flags, mode, 0);
1873} 1874}
1874EXPORT_SYMBOL(filp_open); 1875EXPORT_SYMBOL(filp_open);
1875 1876
diff --git a/fs/namespace.c b/fs/namespace.c
index 41196209a906..134d494158d9 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -695,12 +695,16 @@ static inline void mangle(struct seq_file *m, const char *s)
695 */ 695 */
696int generic_show_options(struct seq_file *m, struct vfsmount *mnt) 696int generic_show_options(struct seq_file *m, struct vfsmount *mnt)
697{ 697{
698 const char *options = mnt->mnt_sb->s_options; 698 const char *options;
699
700 rcu_read_lock();
701 options = rcu_dereference(mnt->mnt_sb->s_options);
699 702
700 if (options != NULL && options[0]) { 703 if (options != NULL && options[0]) {
701 seq_putc(m, ','); 704 seq_putc(m, ',');
702 mangle(m, options); 705 mangle(m, options);
703 } 706 }
707 rcu_read_unlock();
704 708
705 return 0; 709 return 0;
706} 710}
@@ -721,11 +725,22 @@ EXPORT_SYMBOL(generic_show_options);
721 */ 725 */
722void save_mount_options(struct super_block *sb, char *options) 726void save_mount_options(struct super_block *sb, char *options)
723{ 727{
724 kfree(sb->s_options); 728 BUG_ON(sb->s_options);
725 sb->s_options = kstrdup(options, GFP_KERNEL); 729 rcu_assign_pointer(sb->s_options, kstrdup(options, GFP_KERNEL));
726} 730}
727EXPORT_SYMBOL(save_mount_options); 731EXPORT_SYMBOL(save_mount_options);
728 732
733void replace_mount_options(struct super_block *sb, char *options)
734{
735 char *old = sb->s_options;
736 rcu_assign_pointer(sb->s_options, options);
737 if (old) {
738 synchronize_rcu();
739 kfree(old);
740 }
741}
742EXPORT_SYMBOL(replace_mount_options);
743
729#ifdef CONFIG_PROC_FS 744#ifdef CONFIG_PROC_FS
730/* iterator */ 745/* iterator */
731static void *m_start(struct seq_file *m, loff_t *pos) 746static void *m_start(struct seq_file *m, loff_t *pos)
@@ -1073,9 +1088,7 @@ static int do_umount(struct vfsmount *mnt, int flags)
1073 */ 1088 */
1074 1089
1075 if (flags & MNT_FORCE && sb->s_op->umount_begin) { 1090 if (flags & MNT_FORCE && sb->s_op->umount_begin) {
1076 lock_kernel();
1077 sb->s_op->umount_begin(sb); 1091 sb->s_op->umount_begin(sb);
1078 unlock_kernel();
1079 } 1092 }
1080 1093
1081 /* 1094 /*
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index 370b190a09d1..89f98e9a024b 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -1943,7 +1943,8 @@ int nfs_permission(struct inode *inode, int mask)
1943 case S_IFREG: 1943 case S_IFREG:
1944 /* NFSv4 has atomic_open... */ 1944 /* NFSv4 has atomic_open... */
1945 if (nfs_server_capable(inode, NFS_CAP_ATOMIC_OPEN) 1945 if (nfs_server_capable(inode, NFS_CAP_ATOMIC_OPEN)
1946 && (mask & MAY_OPEN)) 1946 && (mask & MAY_OPEN)
1947 && !(mask & MAY_EXEC))
1947 goto out; 1948 goto out;
1948 break; 1949 break;
1949 case S_IFDIR: 1950 case S_IFDIR:
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index a4d242680299..4674f8092da8 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2594,12 +2594,9 @@ static void nfs4_renew_done(struct rpc_task *task, void *data)
2594 unsigned long timestamp = (unsigned long)data; 2594 unsigned long timestamp = (unsigned long)data;
2595 2595
2596 if (task->tk_status < 0) { 2596 if (task->tk_status < 0) {
2597 switch (task->tk_status) { 2597 /* Unless we're shutting down, schedule state recovery! */
2598 case -NFS4ERR_STALE_CLIENTID: 2598 if (test_bit(NFS_CS_RENEWD, &clp->cl_res_state) != 0)
2599 case -NFS4ERR_EXPIRED: 2599 nfs4_schedule_state_recovery(clp);
2600 case -NFS4ERR_CB_PATH_DOWN:
2601 nfs4_schedule_state_recovery(clp);
2602 }
2603 return; 2600 return;
2604 } 2601 }
2605 spin_lock(&clp->cl_lock); 2602 spin_lock(&clp->cl_lock);
diff --git a/fs/nfs/nfsroot.c b/fs/nfs/nfsroot.c
index d9ef602fbc5a..e3ed5908820b 100644
--- a/fs/nfs/nfsroot.c
+++ b/fs/nfs/nfsroot.c
@@ -129,7 +129,7 @@ enum {
129 Opt_err 129 Opt_err
130}; 130};
131 131
132static match_table_t __initconst tokens = { 132static const match_table_t tokens __initconst = {
133 {Opt_port, "port=%u"}, 133 {Opt_port, "port=%u"},
134 {Opt_rsize, "rsize=%u"}, 134 {Opt_rsize, "rsize=%u"},
135 {Opt_wsize, "wsize=%u"}, 135 {Opt_wsize, "wsize=%u"},
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 6717200923fe..d2d67781c579 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -683,9 +683,12 @@ static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt)
683 */ 683 */
684static void nfs_umount_begin(struct super_block *sb) 684static void nfs_umount_begin(struct super_block *sb)
685{ 685{
686 struct nfs_server *server = NFS_SB(sb); 686 struct nfs_server *server;
687 struct rpc_clnt *rpc; 687 struct rpc_clnt *rpc;
688 688
689 lock_kernel();
690
691 server = NFS_SB(sb);
689 /* -EIO all pending I/O */ 692 /* -EIO all pending I/O */
690 rpc = server->client_acl; 693 rpc = server->client_acl;
691 if (!IS_ERR(rpc)) 694 if (!IS_ERR(rpc))
@@ -693,6 +696,8 @@ static void nfs_umount_begin(struct super_block *sb)
693 rpc = server->client; 696 rpc = server->client;
694 if (!IS_ERR(rpc)) 697 if (!IS_ERR(rpc))
695 rpc_killall_tasks(rpc); 698 rpc_killall_tasks(rpc);
699
700 unlock_kernel();
696} 701}
697 702
698/* 703/*
@@ -2106,8 +2111,7 @@ out_err_nosb:
2106error_splat_root: 2111error_splat_root:
2107 dput(mntroot); 2112 dput(mntroot);
2108error_splat_super: 2113error_splat_super:
2109 up_write(&s->s_umount); 2114 deactivate_locked_super(s);
2110 deactivate_super(s);
2111 goto out; 2115 goto out;
2112} 2116}
2113 2117
@@ -2203,8 +2207,7 @@ out_err_noserver:
2203 return error; 2207 return error;
2204 2208
2205error_splat_super: 2209error_splat_super:
2206 up_write(&s->s_umount); 2210 deactivate_locked_super(s);
2207 deactivate_super(s);
2208 dprintk("<-- nfs_xdev_get_sb() = %d [splat]\n", error); 2211 dprintk("<-- nfs_xdev_get_sb() = %d [splat]\n", error);
2209 return error; 2212 return error;
2210} 2213}
@@ -2464,8 +2467,7 @@ out_free:
2464error_splat_root: 2467error_splat_root:
2465 dput(mntroot); 2468 dput(mntroot);
2466error_splat_super: 2469error_splat_super:
2467 up_write(&s->s_umount); 2470 deactivate_locked_super(s);
2468 deactivate_super(s);
2469 goto out; 2471 goto out;
2470} 2472}
2471 2473
@@ -2559,8 +2561,7 @@ out_err_noserver:
2559 return error; 2561 return error;
2560 2562
2561error_splat_super: 2563error_splat_super:
2562 up_write(&s->s_umount); 2564 deactivate_locked_super(s);
2563 deactivate_super(s);
2564 dprintk("<-- nfs4_xdev_get_sb() = %d [splat]\n", error); 2565 dprintk("<-- nfs4_xdev_get_sb() = %d [splat]\n", error);
2565 return error; 2566 return error;
2566} 2567}
@@ -2644,8 +2645,7 @@ out_err_noserver:
2644 return error; 2645 return error;
2645 2646
2646error_splat_super: 2647error_splat_super:
2647 up_write(&s->s_umount); 2648 deactivate_locked_super(s);
2648 deactivate_super(s);
2649 dprintk("<-- nfs4_referral_get_sb() = %d [splat]\n", error); 2649 dprintk("<-- nfs4_referral_get_sb() = %d [splat]\n", error);
2650 return error; 2650 return error;
2651} 2651}
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index 5275097a7565..b5348405046b 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -229,7 +229,7 @@ nfsd4_list_rec_dir(struct dentry *dir, recdir_func *f)
229 goto out; 229 goto out;
230 status = vfs_readdir(filp, nfsd4_build_namelist, &names); 230 status = vfs_readdir(filp, nfsd4_build_namelist, &names);
231 fput(filp); 231 fput(filp);
232 mutex_lock(&dir->d_inode->i_mutex); 232 mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT);
233 while (!list_empty(&names)) { 233 while (!list_empty(&names)) {
234 entry = list_entry(names.next, struct name_list, list); 234 entry = list_entry(names.next, struct name_list, list);
235 235
@@ -264,7 +264,7 @@ nfsd4_unlink_clid_dir(char *name, int namlen)
264 264
265 dprintk("NFSD: nfsd4_unlink_clid_dir. name %.*s\n", namlen, name); 265 dprintk("NFSD: nfsd4_unlink_clid_dir. name %.*s\n", namlen, name);
266 266
267 mutex_lock(&rec_dir.dentry->d_inode->i_mutex); 267 mutex_lock_nested(&rec_dir.dentry->d_inode->i_mutex, I_MUTEX_PARENT);
268 dentry = lookup_one_len(name, rec_dir.dentry, namlen); 268 dentry = lookup_one_len(name, rec_dir.dentry, namlen);
269 if (IS_ERR(dentry)) { 269 if (IS_ERR(dentry)) {
270 status = PTR_ERR(dentry); 270 status = PTR_ERR(dentry);
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index c65a27b76a9d..3b711f5147a7 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -580,7 +580,6 @@ free_session(struct kref *kref)
580 struct nfsd4_cache_entry *e = &ses->se_slots[i].sl_cache_entry; 580 struct nfsd4_cache_entry *e = &ses->se_slots[i].sl_cache_entry;
581 nfsd4_release_respages(e->ce_respages, e->ce_resused); 581 nfsd4_release_respages(e->ce_respages, e->ce_resused);
582 } 582 }
583 kfree(ses->se_slots);
584 kfree(ses); 583 kfree(ses);
585} 584}
586 585
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index b820c311931c..b73549d293be 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -2214,6 +2214,15 @@ nfsd4_encode_dirent_fattr(struct nfsd4_readdir *cd,
2214 dentry = lookup_one_len(name, cd->rd_fhp->fh_dentry, namlen); 2214 dentry = lookup_one_len(name, cd->rd_fhp->fh_dentry, namlen);
2215 if (IS_ERR(dentry)) 2215 if (IS_ERR(dentry))
2216 return nfserrno(PTR_ERR(dentry)); 2216 return nfserrno(PTR_ERR(dentry));
2217 if (!dentry->d_inode) {
2218 /*
2219 * nfsd_buffered_readdir drops the i_mutex between
2220 * readdir and calling this callback, leaving a window
2221 * where this directory entry could have gone away.
2222 */
2223 dput(dentry);
2224 return nfserr_noent;
2225 }
2217 2226
2218 exp_get(exp); 2227 exp_get(exp);
2219 /* 2228 /*
@@ -2276,6 +2285,7 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen,
2276 struct nfsd4_readdir *cd = container_of(ccd, struct nfsd4_readdir, common); 2285 struct nfsd4_readdir *cd = container_of(ccd, struct nfsd4_readdir, common);
2277 int buflen; 2286 int buflen;
2278 __be32 *p = cd->buffer; 2287 __be32 *p = cd->buffer;
2288 __be32 *cookiep;
2279 __be32 nfserr = nfserr_toosmall; 2289 __be32 nfserr = nfserr_toosmall;
2280 2290
2281 /* In nfsv4, "." and ".." never make it onto the wire.. */ 2291 /* In nfsv4, "." and ".." never make it onto the wire.. */
@@ -2292,7 +2302,7 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen,
2292 goto fail; 2302 goto fail;
2293 2303
2294 *p++ = xdr_one; /* mark entry present */ 2304 *p++ = xdr_one; /* mark entry present */
2295 cd->offset = p; /* remember pointer */ 2305 cookiep = p;
2296 p = xdr_encode_hyper(p, NFS_OFFSET_MAX); /* offset of next entry */ 2306 p = xdr_encode_hyper(p, NFS_OFFSET_MAX); /* offset of next entry */
2297 p = xdr_encode_array(p, name, namlen); /* name length & name */ 2307 p = xdr_encode_array(p, name, namlen); /* name length & name */
2298 2308
@@ -2306,6 +2316,8 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen,
2306 goto fail; 2316 goto fail;
2307 case nfserr_dropit: 2317 case nfserr_dropit:
2308 goto fail; 2318 goto fail;
2319 case nfserr_noent:
2320 goto skip_entry;
2309 default: 2321 default:
2310 /* 2322 /*
2311 * If the client requested the RDATTR_ERROR attribute, 2323 * If the client requested the RDATTR_ERROR attribute,
@@ -2324,6 +2336,8 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen,
2324 } 2336 }
2325 cd->buflen -= (p - cd->buffer); 2337 cd->buflen -= (p - cd->buffer);
2326 cd->buffer = p; 2338 cd->buffer = p;
2339 cd->offset = cookiep;
2340skip_entry:
2327 cd->common.err = nfs_ok; 2341 cd->common.err = nfs_ok;
2328 return 0; 2342 return 0;
2329fail: 2343fail:
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index 6c68ffd6b4bb..b660435978d2 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -1015,6 +1015,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
1015 host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &offset); 1015 host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &offset);
1016 set_fs(oldfs); 1016 set_fs(oldfs);
1017 if (host_err >= 0) { 1017 if (host_err >= 0) {
1018 *cnt = host_err;
1018 nfsdstats.io_write += host_err; 1019 nfsdstats.io_write += host_err;
1019 fsnotify_modify(file->f_path.dentry); 1020 fsnotify_modify(file->f_path.dentry);
1020 } 1021 }
@@ -1060,10 +1061,9 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
1060 } 1061 }
1061 1062
1062 dprintk("nfsd: write complete host_err=%d\n", host_err); 1063 dprintk("nfsd: write complete host_err=%d\n", host_err);
1063 if (host_err >= 0) { 1064 if (host_err >= 0)
1064 err = 0; 1065 err = 0;
1065 *cnt = host_err; 1066 else
1066 } else
1067 err = nfserrno(host_err); 1067 err = nfserrno(host_err);
1068out: 1068out:
1069 return err; 1069 return err;
diff --git a/fs/nilfs2/cpfile.c b/fs/nilfs2/cpfile.c
index e90b60dfced9..300f1cdfa862 100644
--- a/fs/nilfs2/cpfile.c
+++ b/fs/nilfs2/cpfile.c
@@ -311,7 +311,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
311 ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh); 311 ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh);
312 if (ret < 0) { 312 if (ret < 0) {
313 if (ret != -ENOENT) 313 if (ret != -ENOENT)
314 goto out_sem; 314 goto out_header;
315 /* skip hole */ 315 /* skip hole */
316 ret = 0; 316 ret = 0;
317 continue; 317 continue;
@@ -344,7 +344,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
344 continue; 344 continue;
345 printk(KERN_ERR "%s: cannot delete block\n", 345 printk(KERN_ERR "%s: cannot delete block\n",
346 __func__); 346 __func__);
347 goto out_sem; 347 goto out_header;
348 } 348 }
349 } 349 }
350 350
@@ -361,6 +361,8 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
361 nilfs_mdt_mark_dirty(cpfile); 361 nilfs_mdt_mark_dirty(cpfile);
362 kunmap_atomic(kaddr, KM_USER0); 362 kunmap_atomic(kaddr, KM_USER0);
363 } 363 }
364
365 out_header:
364 brelse(header_bh); 366 brelse(header_bh);
365 367
366 out_sem: 368 out_sem:
diff --git a/fs/nilfs2/ioctl.c b/fs/nilfs2/ioctl.c
index 108d281ebca5..d6759b92006f 100644
--- a/fs/nilfs2/ioctl.c
+++ b/fs/nilfs2/ioctl.c
@@ -25,6 +25,7 @@
25#include <linux/smp_lock.h> /* lock_kernel(), unlock_kernel() */ 25#include <linux/smp_lock.h> /* lock_kernel(), unlock_kernel() */
26#include <linux/capability.h> /* capable() */ 26#include <linux/capability.h> /* capable() */
27#include <linux/uaccess.h> /* copy_from_user(), copy_to_user() */ 27#include <linux/uaccess.h> /* copy_from_user(), copy_to_user() */
28#include <linux/vmalloc.h>
28#include <linux/nilfs2_fs.h> 29#include <linux/nilfs2_fs.h>
29#include "nilfs.h" 30#include "nilfs.h"
30#include "segment.h" 31#include "segment.h"
@@ -147,29 +148,12 @@ static ssize_t
147nilfs_ioctl_do_get_cpinfo(struct the_nilfs *nilfs, __u64 *posp, int flags, 148nilfs_ioctl_do_get_cpinfo(struct the_nilfs *nilfs, __u64 *posp, int flags,
148 void *buf, size_t size, size_t nmembs) 149 void *buf, size_t size, size_t nmembs)
149{ 150{
150 return nilfs_cpfile_get_cpinfo(nilfs->ns_cpfile, posp, flags, buf,
151 nmembs);
152}
153
154static int nilfs_ioctl_get_cpinfo(struct inode *inode, struct file *filp,
155 unsigned int cmd, void __user *argp)
156{
157 struct the_nilfs *nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
158 struct nilfs_argv argv;
159 int ret; 151 int ret;
160 152
161 if (copy_from_user(&argv, argp, sizeof(argv)))
162 return -EFAULT;
163
164 down_read(&nilfs->ns_segctor_sem); 153 down_read(&nilfs->ns_segctor_sem);
165 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), 154 ret = nilfs_cpfile_get_cpinfo(nilfs->ns_cpfile, posp, flags, buf,
166 nilfs_ioctl_do_get_cpinfo); 155 nmembs);
167 up_read(&nilfs->ns_segctor_sem); 156 up_read(&nilfs->ns_segctor_sem);
168 if (ret < 0)
169 return ret;
170
171 if (copy_to_user(argp, &argv, sizeof(argv)))
172 ret = -EFAULT;
173 return ret; 157 return ret;
174} 158}
175 159
@@ -195,28 +179,11 @@ static ssize_t
195nilfs_ioctl_do_get_suinfo(struct the_nilfs *nilfs, __u64 *posp, int flags, 179nilfs_ioctl_do_get_suinfo(struct the_nilfs *nilfs, __u64 *posp, int flags,
196 void *buf, size_t size, size_t nmembs) 180 void *buf, size_t size, size_t nmembs)
197{ 181{
198 return nilfs_sufile_get_suinfo(nilfs->ns_sufile, *posp, buf, nmembs);
199}
200
201static int nilfs_ioctl_get_suinfo(struct inode *inode, struct file *filp,
202 unsigned int cmd, void __user *argp)
203{
204 struct the_nilfs *nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
205 struct nilfs_argv argv;
206 int ret; 182 int ret;
207 183
208 if (copy_from_user(&argv, argp, sizeof(argv)))
209 return -EFAULT;
210
211 down_read(&nilfs->ns_segctor_sem); 184 down_read(&nilfs->ns_segctor_sem);
212 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), 185 ret = nilfs_sufile_get_suinfo(nilfs->ns_sufile, *posp, buf, nmembs);
213 nilfs_ioctl_do_get_suinfo);
214 up_read(&nilfs->ns_segctor_sem); 186 up_read(&nilfs->ns_segctor_sem);
215 if (ret < 0)
216 return ret;
217
218 if (copy_to_user(argp, &argv, sizeof(argv)))
219 ret = -EFAULT;
220 return ret; 187 return ret;
221} 188}
222 189
@@ -242,28 +209,11 @@ static ssize_t
242nilfs_ioctl_do_get_vinfo(struct the_nilfs *nilfs, __u64 *posp, int flags, 209nilfs_ioctl_do_get_vinfo(struct the_nilfs *nilfs, __u64 *posp, int flags,
243 void *buf, size_t size, size_t nmembs) 210 void *buf, size_t size, size_t nmembs)
244{ 211{
245 return nilfs_dat_get_vinfo(nilfs_dat_inode(nilfs), buf, nmembs);
246}
247
248static int nilfs_ioctl_get_vinfo(struct inode *inode, struct file *filp,
249 unsigned int cmd, void __user *argp)
250{
251 struct the_nilfs *nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
252 struct nilfs_argv argv;
253 int ret; 212 int ret;
254 213
255 if (copy_from_user(&argv, argp, sizeof(argv)))
256 return -EFAULT;
257
258 down_read(&nilfs->ns_segctor_sem); 214 down_read(&nilfs->ns_segctor_sem);
259 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), 215 ret = nilfs_dat_get_vinfo(nilfs_dat_inode(nilfs), buf, nmembs);
260 nilfs_ioctl_do_get_vinfo);
261 up_read(&nilfs->ns_segctor_sem); 216 up_read(&nilfs->ns_segctor_sem);
262 if (ret < 0)
263 return ret;
264
265 if (copy_to_user(argp, &argv, sizeof(argv)))
266 ret = -EFAULT;
267 return ret; 217 return ret;
268} 218}
269 219
@@ -276,17 +226,21 @@ nilfs_ioctl_do_get_bdescs(struct the_nilfs *nilfs, __u64 *posp, int flags,
276 struct nilfs_bdesc *bdescs = buf; 226 struct nilfs_bdesc *bdescs = buf;
277 int ret, i; 227 int ret, i;
278 228
229 down_read(&nilfs->ns_segctor_sem);
279 for (i = 0; i < nmembs; i++) { 230 for (i = 0; i < nmembs; i++) {
280 ret = nilfs_bmap_lookup_at_level(bmap, 231 ret = nilfs_bmap_lookup_at_level(bmap,
281 bdescs[i].bd_offset, 232 bdescs[i].bd_offset,
282 bdescs[i].bd_level + 1, 233 bdescs[i].bd_level + 1,
283 &bdescs[i].bd_blocknr); 234 &bdescs[i].bd_blocknr);
284 if (ret < 0) { 235 if (ret < 0) {
285 if (ret != -ENOENT) 236 if (ret != -ENOENT) {
237 up_read(&nilfs->ns_segctor_sem);
286 return ret; 238 return ret;
239 }
287 bdescs[i].bd_blocknr = 0; 240 bdescs[i].bd_blocknr = 0;
288 } 241 }
289 } 242 }
243 up_read(&nilfs->ns_segctor_sem);
290 return nmembs; 244 return nmembs;
291} 245}
292 246
@@ -300,10 +254,11 @@ static int nilfs_ioctl_get_bdescs(struct inode *inode, struct file *filp,
300 if (copy_from_user(&argv, argp, sizeof(argv))) 254 if (copy_from_user(&argv, argp, sizeof(argv)))
301 return -EFAULT; 255 return -EFAULT;
302 256
303 down_read(&nilfs->ns_segctor_sem); 257 if (argv.v_size != sizeof(struct nilfs_bdesc))
258 return -EINVAL;
259
304 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), 260 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd),
305 nilfs_ioctl_do_get_bdescs); 261 nilfs_ioctl_do_get_bdescs);
306 up_read(&nilfs->ns_segctor_sem);
307 if (ret < 0) 262 if (ret < 0)
308 return ret; 263 return ret;
309 264
@@ -346,10 +301,10 @@ static int nilfs_ioctl_move_inode_block(struct inode *inode,
346 return 0; 301 return 0;
347} 302}
348 303
349static ssize_t 304static int nilfs_ioctl_move_blocks(struct the_nilfs *nilfs,
350nilfs_ioctl_do_move_blocks(struct the_nilfs *nilfs, __u64 *posp, int flags, 305 struct nilfs_argv *argv, void *buf)
351 void *buf, size_t size, size_t nmembs)
352{ 306{
307 size_t nmembs = argv->v_nmembs;
353 struct inode *inode; 308 struct inode *inode;
354 struct nilfs_vdesc *vdesc; 309 struct nilfs_vdesc *vdesc;
355 struct buffer_head *bh, *n; 310 struct buffer_head *bh, *n;
@@ -410,19 +365,10 @@ nilfs_ioctl_do_move_blocks(struct the_nilfs *nilfs, __u64 *posp, int flags,
410 return ret; 365 return ret;
411} 366}
412 367
413static inline int nilfs_ioctl_move_blocks(struct the_nilfs *nilfs, 368static int nilfs_ioctl_delete_checkpoints(struct the_nilfs *nilfs,
414 struct nilfs_argv *argv, 369 struct nilfs_argv *argv, void *buf)
415 int dir)
416{
417 return nilfs_ioctl_wrap_copy(nilfs, argv, dir,
418 nilfs_ioctl_do_move_blocks);
419}
420
421static ssize_t
422nilfs_ioctl_do_delete_checkpoints(struct the_nilfs *nilfs, __u64 *posp,
423 int flags, void *buf, size_t size,
424 size_t nmembs)
425{ 370{
371 size_t nmembs = argv->v_nmembs;
426 struct inode *cpfile = nilfs->ns_cpfile; 372 struct inode *cpfile = nilfs->ns_cpfile;
427 struct nilfs_period *periods = buf; 373 struct nilfs_period *periods = buf;
428 int ret, i; 374 int ret, i;
@@ -436,36 +382,21 @@ nilfs_ioctl_do_delete_checkpoints(struct the_nilfs *nilfs, __u64 *posp,
436 return nmembs; 382 return nmembs;
437} 383}
438 384
439static inline int nilfs_ioctl_delete_checkpoints(struct the_nilfs *nilfs, 385static int nilfs_ioctl_free_vblocknrs(struct the_nilfs *nilfs,
440 struct nilfs_argv *argv, 386 struct nilfs_argv *argv, void *buf)
441 int dir)
442{ 387{
443 return nilfs_ioctl_wrap_copy(nilfs, argv, dir, 388 size_t nmembs = argv->v_nmembs;
444 nilfs_ioctl_do_delete_checkpoints); 389 int ret;
445}
446 390
447static ssize_t 391 ret = nilfs_dat_freev(nilfs_dat_inode(nilfs), buf, nmembs);
448nilfs_ioctl_do_free_vblocknrs(struct the_nilfs *nilfs, __u64 *posp, int flags,
449 void *buf, size_t size, size_t nmembs)
450{
451 int ret = nilfs_dat_freev(nilfs_dat_inode(nilfs), buf, nmembs);
452 392
453 return (ret < 0) ? ret : nmembs; 393 return (ret < 0) ? ret : nmembs;
454} 394}
455 395
456static inline int nilfs_ioctl_free_vblocknrs(struct the_nilfs *nilfs, 396static int nilfs_ioctl_mark_blocks_dirty(struct the_nilfs *nilfs,
457 struct nilfs_argv *argv, 397 struct nilfs_argv *argv, void *buf)
458 int dir)
459{
460 return nilfs_ioctl_wrap_copy(nilfs, argv, dir,
461 nilfs_ioctl_do_free_vblocknrs);
462}
463
464static ssize_t
465nilfs_ioctl_do_mark_blocks_dirty(struct the_nilfs *nilfs, __u64 *posp,
466 int flags, void *buf, size_t size,
467 size_t nmembs)
468{ 398{
399 size_t nmembs = argv->v_nmembs;
469 struct inode *dat = nilfs_dat_inode(nilfs); 400 struct inode *dat = nilfs_dat_inode(nilfs);
470 struct nilfs_bmap *bmap = NILFS_I(dat)->i_bmap; 401 struct nilfs_bmap *bmap = NILFS_I(dat)->i_bmap;
471 struct nilfs_bdesc *bdescs = buf; 402 struct nilfs_bdesc *bdescs = buf;
@@ -504,55 +435,37 @@ nilfs_ioctl_do_mark_blocks_dirty(struct the_nilfs *nilfs, __u64 *posp,
504 return nmembs; 435 return nmembs;
505} 436}
506 437
507static inline int nilfs_ioctl_mark_blocks_dirty(struct the_nilfs *nilfs, 438static int nilfs_ioctl_free_segments(struct the_nilfs *nilfs,
508 struct nilfs_argv *argv, 439 struct nilfs_argv *argv, void *buf)
509 int dir)
510{ 440{
511 return nilfs_ioctl_wrap_copy(nilfs, argv, dir, 441 size_t nmembs = argv->v_nmembs;
512 nilfs_ioctl_do_mark_blocks_dirty); 442 struct nilfs_sb_info *sbi = nilfs->ns_writer;
513}
514
515static ssize_t
516nilfs_ioctl_do_free_segments(struct the_nilfs *nilfs, __u64 *posp, int flags,
517 void *buf, size_t size, size_t nmembs)
518{
519 struct nilfs_sb_info *sbi = nilfs_get_writer(nilfs);
520 int ret; 443 int ret;
521 444
522 if (unlikely(!sbi)) 445 if (unlikely(!sbi)) {
446 /* never happens because called for a writable mount */
447 WARN_ON(1);
523 return -EROFS; 448 return -EROFS;
449 }
524 ret = nilfs_segctor_add_segments_to_be_freed( 450 ret = nilfs_segctor_add_segments_to_be_freed(
525 NILFS_SC(sbi), buf, nmembs); 451 NILFS_SC(sbi), buf, nmembs);
526 nilfs_put_writer(nilfs);
527 452
528 return (ret < 0) ? ret : nmembs; 453 return (ret < 0) ? ret : nmembs;
529} 454}
530 455
531static inline int nilfs_ioctl_free_segments(struct the_nilfs *nilfs,
532 struct nilfs_argv *argv,
533 int dir)
534{
535 return nilfs_ioctl_wrap_copy(nilfs, argv, dir,
536 nilfs_ioctl_do_free_segments);
537}
538
539int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs, 456int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs,
540 void __user *argp) 457 struct nilfs_argv *argv, void **kbufs)
541{ 458{
542 struct nilfs_argv argv[5];
543 const char *msg; 459 const char *msg;
544 int dir, ret; 460 int ret;
545
546 if (copy_from_user(argv, argp, sizeof(argv)))
547 return -EFAULT;
548 461
549 dir = _IOC_WRITE; 462 ret = nilfs_ioctl_move_blocks(nilfs, &argv[0], kbufs[0]);
550 ret = nilfs_ioctl_move_blocks(nilfs, &argv[0], dir);
551 if (ret < 0) { 463 if (ret < 0) {
552 msg = "cannot read source blocks"; 464 msg = "cannot read source blocks";
553 goto failed; 465 goto failed;
554 } 466 }
555 ret = nilfs_ioctl_delete_checkpoints(nilfs, &argv[1], dir); 467
468 ret = nilfs_ioctl_delete_checkpoints(nilfs, &argv[1], kbufs[1]);
556 if (ret < 0) { 469 if (ret < 0) {
557 /* 470 /*
558 * can safely abort because checkpoints can be removed 471 * can safely abort because checkpoints can be removed
@@ -561,7 +474,7 @@ int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs,
561 msg = "cannot delete checkpoints"; 474 msg = "cannot delete checkpoints";
562 goto failed; 475 goto failed;
563 } 476 }
564 ret = nilfs_ioctl_free_vblocknrs(nilfs, &argv[2], dir); 477 ret = nilfs_ioctl_free_vblocknrs(nilfs, &argv[2], kbufs[2]);
565 if (ret < 0) { 478 if (ret < 0) {
566 /* 479 /*
567 * can safely abort because DAT file is updated atomically 480 * can safely abort because DAT file is updated atomically
@@ -570,7 +483,7 @@ int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs,
570 msg = "cannot delete virtual blocks from DAT file"; 483 msg = "cannot delete virtual blocks from DAT file";
571 goto failed; 484 goto failed;
572 } 485 }
573 ret = nilfs_ioctl_mark_blocks_dirty(nilfs, &argv[3], dir); 486 ret = nilfs_ioctl_mark_blocks_dirty(nilfs, &argv[3], kbufs[3]);
574 if (ret < 0) { 487 if (ret < 0) {
575 /* 488 /*
576 * can safely abort because the operation is nondestructive. 489 * can safely abort because the operation is nondestructive.
@@ -578,7 +491,7 @@ int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs,
578 msg = "cannot mark copying blocks dirty"; 491 msg = "cannot mark copying blocks dirty";
579 goto failed; 492 goto failed;
580 } 493 }
581 ret = nilfs_ioctl_free_segments(nilfs, &argv[4], dir); 494 ret = nilfs_ioctl_free_segments(nilfs, &argv[4], kbufs[4]);
582 if (ret < 0) { 495 if (ret < 0) {
583 /* 496 /*
584 * can safely abort because this operation is atomic. 497 * can safely abort because this operation is atomic.
@@ -598,9 +511,75 @@ int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs,
598static int nilfs_ioctl_clean_segments(struct inode *inode, struct file *filp, 511static int nilfs_ioctl_clean_segments(struct inode *inode, struct file *filp,
599 unsigned int cmd, void __user *argp) 512 unsigned int cmd, void __user *argp)
600{ 513{
514 struct nilfs_argv argv[5];
515 const static size_t argsz[5] = {
516 sizeof(struct nilfs_vdesc),
517 sizeof(struct nilfs_period),
518 sizeof(__u64),
519 sizeof(struct nilfs_bdesc),
520 sizeof(__u64),
521 };
522 void __user *base;
523 void *kbufs[5];
524 struct the_nilfs *nilfs;
525 size_t len, nsegs;
526 int n, ret;
527
601 if (!capable(CAP_SYS_ADMIN)) 528 if (!capable(CAP_SYS_ADMIN))
602 return -EPERM; 529 return -EPERM;
603 return nilfs_clean_segments(inode->i_sb, argp); 530
531 if (copy_from_user(argv, argp, sizeof(argv)))
532 return -EFAULT;
533
534 nsegs = argv[4].v_nmembs;
535 if (argv[4].v_size != argsz[4])
536 return -EINVAL;
537 /*
538 * argv[4] points to segment numbers this ioctl cleans. We
539 * use kmalloc() for its buffer because memory used for the
540 * segment numbers is enough small.
541 */
542 kbufs[4] = memdup_user((void __user *)(unsigned long)argv[4].v_base,
543 nsegs * sizeof(__u64));
544 if (IS_ERR(kbufs[4]))
545 return PTR_ERR(kbufs[4]);
546
547 nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
548
549 for (n = 0; n < 4; n++) {
550 ret = -EINVAL;
551 if (argv[n].v_size != argsz[n])
552 goto out_free;
553
554 if (argv[n].v_nmembs > nsegs * nilfs->ns_blocks_per_segment)
555 goto out_free;
556
557 len = argv[n].v_size * argv[n].v_nmembs;
558 base = (void __user *)(unsigned long)argv[n].v_base;
559 if (len == 0) {
560 kbufs[n] = NULL;
561 continue;
562 }
563
564 kbufs[n] = vmalloc(len);
565 if (!kbufs[n]) {
566 ret = -ENOMEM;
567 goto out_free;
568 }
569 if (copy_from_user(kbufs[n], base, len)) {
570 ret = -EFAULT;
571 vfree(kbufs[n]);
572 goto out_free;
573 }
574 }
575
576 ret = nilfs_clean_segments(inode->i_sb, argv, kbufs);
577
578 out_free:
579 while (--n >= 0)
580 vfree(kbufs[n]);
581 kfree(kbufs[4]);
582 return ret;
604} 583}
605 584
606static int nilfs_ioctl_sync(struct inode *inode, struct file *filp, 585static int nilfs_ioctl_sync(struct inode *inode, struct file *filp,
@@ -621,6 +600,33 @@ static int nilfs_ioctl_sync(struct inode *inode, struct file *filp,
621 return 0; 600 return 0;
622} 601}
623 602
603static int nilfs_ioctl_get_info(struct inode *inode, struct file *filp,
604 unsigned int cmd, void __user *argp,
605 size_t membsz,
606 ssize_t (*dofunc)(struct the_nilfs *,
607 __u64 *, int,
608 void *, size_t, size_t))
609
610{
611 struct the_nilfs *nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
612 struct nilfs_argv argv;
613 int ret;
614
615 if (copy_from_user(&argv, argp, sizeof(argv)))
616 return -EFAULT;
617
618 if (argv.v_size != membsz)
619 return -EINVAL;
620
621 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), dofunc);
622 if (ret < 0)
623 return ret;
624
625 if (copy_to_user(argp, &argv, sizeof(argv)))
626 ret = -EFAULT;
627 return ret;
628}
629
624long nilfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) 630long nilfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
625{ 631{
626 struct inode *inode = filp->f_dentry->d_inode; 632 struct inode *inode = filp->f_dentry->d_inode;
@@ -632,16 +638,21 @@ long nilfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
632 case NILFS_IOCTL_DELETE_CHECKPOINT: 638 case NILFS_IOCTL_DELETE_CHECKPOINT:
633 return nilfs_ioctl_delete_checkpoint(inode, filp, cmd, argp); 639 return nilfs_ioctl_delete_checkpoint(inode, filp, cmd, argp);
634 case NILFS_IOCTL_GET_CPINFO: 640 case NILFS_IOCTL_GET_CPINFO:
635 return nilfs_ioctl_get_cpinfo(inode, filp, cmd, argp); 641 return nilfs_ioctl_get_info(inode, filp, cmd, argp,
642 sizeof(struct nilfs_cpinfo),
643 nilfs_ioctl_do_get_cpinfo);
636 case NILFS_IOCTL_GET_CPSTAT: 644 case NILFS_IOCTL_GET_CPSTAT:
637 return nilfs_ioctl_get_cpstat(inode, filp, cmd, argp); 645 return nilfs_ioctl_get_cpstat(inode, filp, cmd, argp);
638 case NILFS_IOCTL_GET_SUINFO: 646 case NILFS_IOCTL_GET_SUINFO:
639 return nilfs_ioctl_get_suinfo(inode, filp, cmd, argp); 647 return nilfs_ioctl_get_info(inode, filp, cmd, argp,
648 sizeof(struct nilfs_suinfo),
649 nilfs_ioctl_do_get_suinfo);
640 case NILFS_IOCTL_GET_SUSTAT: 650 case NILFS_IOCTL_GET_SUSTAT:
641 return nilfs_ioctl_get_sustat(inode, filp, cmd, argp); 651 return nilfs_ioctl_get_sustat(inode, filp, cmd, argp);
642 case NILFS_IOCTL_GET_VINFO: 652 case NILFS_IOCTL_GET_VINFO:
643 /* XXX: rename to ??? */ 653 return nilfs_ioctl_get_info(inode, filp, cmd, argp,
644 return nilfs_ioctl_get_vinfo(inode, filp, cmd, argp); 654 sizeof(struct nilfs_vinfo),
655 nilfs_ioctl_do_get_vinfo);
645 case NILFS_IOCTL_GET_BDESCS: 656 case NILFS_IOCTL_GET_BDESCS:
646 return nilfs_ioctl_get_bdescs(inode, filp, cmd, argp); 657 return nilfs_ioctl_get_bdescs(inode, filp, cmd, argp);
647 case NILFS_IOCTL_CLEAN_SEGMENTS: 658 case NILFS_IOCTL_CLEAN_SEGMENTS:
diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c
index 47dd815433fd..bb78745a0e30 100644
--- a/fs/nilfs2/mdt.c
+++ b/fs/nilfs2/mdt.c
@@ -77,19 +77,22 @@ static int nilfs_mdt_create_block(struct inode *inode, unsigned long block,
77 void *)) 77 void *))
78{ 78{
79 struct the_nilfs *nilfs = NILFS_MDT(inode)->mi_nilfs; 79 struct the_nilfs *nilfs = NILFS_MDT(inode)->mi_nilfs;
80 struct nilfs_sb_info *writer = NULL;
81 struct super_block *sb = inode->i_sb; 80 struct super_block *sb = inode->i_sb;
82 struct nilfs_transaction_info ti; 81 struct nilfs_transaction_info ti;
83 struct buffer_head *bh; 82 struct buffer_head *bh;
84 int err; 83 int err;
85 84
86 if (!sb) { 85 if (!sb) {
87 writer = nilfs_get_writer(nilfs); 86 /*
88 if (!writer) { 87 * Make sure this function is not called from any
88 * read-only context.
89 */
90 if (!nilfs->ns_writer) {
91 WARN_ON(1);
89 err = -EROFS; 92 err = -EROFS;
90 goto out; 93 goto out;
91 } 94 }
92 sb = writer->s_super; 95 sb = nilfs->ns_writer->s_super;
93 } 96 }
94 97
95 nilfs_transaction_begin(sb, &ti, 0); 98 nilfs_transaction_begin(sb, &ti, 0);
@@ -127,8 +130,6 @@ static int nilfs_mdt_create_block(struct inode *inode, unsigned long block,
127 err = nilfs_transaction_commit(sb); 130 err = nilfs_transaction_commit(sb);
128 else 131 else
129 nilfs_transaction_abort(sb); 132 nilfs_transaction_abort(sb);
130 if (writer)
131 nilfs_put_writer(nilfs);
132 out: 133 out:
133 return err; 134 return err;
134} 135}
@@ -299,7 +300,7 @@ int nilfs_mdt_delete_block(struct inode *inode, unsigned long block)
299 int err; 300 int err;
300 301
301 err = nilfs_bmap_delete(ii->i_bmap, block); 302 err = nilfs_bmap_delete(ii->i_bmap, block);
302 if (likely(!err)) { 303 if (!err || err == -ENOENT) {
303 nilfs_mdt_mark_dirty(inode); 304 nilfs_mdt_mark_dirty(inode);
304 nilfs_mdt_forget_block(inode, block); 305 nilfs_mdt_forget_block(inode, block);
305 } 306 }
diff --git a/fs/nilfs2/nilfs.h b/fs/nilfs2/nilfs.h
index 3d0c18a16db1..da6fc0bba2e5 100644
--- a/fs/nilfs2/nilfs.h
+++ b/fs/nilfs2/nilfs.h
@@ -236,7 +236,8 @@ extern int nilfs_sync_file(struct file *, struct dentry *, int);
236 236
237/* ioctl.c */ 237/* ioctl.c */
238long nilfs_ioctl(struct file *, unsigned int, unsigned long); 238long nilfs_ioctl(struct file *, unsigned int, unsigned long);
239int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *, void __user *); 239int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *, struct nilfs_argv *,
240 void **);
240 241
241/* inode.c */ 242/* inode.c */
242extern struct inode *nilfs_new_inode(struct inode *, int); 243extern struct inode *nilfs_new_inode(struct inode *, int);
diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c
index 1bfbba9c0e9a..a2692bbc7b50 100644
--- a/fs/nilfs2/page.c
+++ b/fs/nilfs2/page.c
@@ -128,7 +128,8 @@ void nilfs_forget_buffer(struct buffer_head *bh)
128 128
129 lock_buffer(bh); 129 lock_buffer(bh);
130 clear_buffer_nilfs_volatile(bh); 130 clear_buffer_nilfs_volatile(bh);
131 if (test_clear_buffer_dirty(bh) && nilfs_page_buffers_clean(page)) 131 clear_buffer_dirty(bh);
132 if (nilfs_page_buffers_clean(page))
132 __nilfs_clear_page_dirty(page); 133 __nilfs_clear_page_dirty(page);
133 134
134 clear_buffer_uptodate(bh); 135 clear_buffer_uptodate(bh);
diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c
index 4fc081e47d70..57afa9d24061 100644
--- a/fs/nilfs2/recovery.c
+++ b/fs/nilfs2/recovery.c
@@ -407,6 +407,7 @@ void nilfs_dispose_segment_list(struct list_head *head)
407} 407}
408 408
409static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs, 409static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs,
410 struct nilfs_sb_info *sbi,
410 struct nilfs_recovery_info *ri) 411 struct nilfs_recovery_info *ri)
411{ 412{
412 struct list_head *head = &ri->ri_used_segments; 413 struct list_head *head = &ri->ri_used_segments;
@@ -421,6 +422,7 @@ static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs,
421 segnum[2] = ri->ri_segnum; 422 segnum[2] = ri->ri_segnum;
422 segnum[3] = ri->ri_nextnum; 423 segnum[3] = ri->ri_nextnum;
423 424
425 nilfs_attach_writer(nilfs, sbi);
424 /* 426 /*
425 * Releasing the next segment of the latest super root. 427 * Releasing the next segment of the latest super root.
426 * The next segment is invalidated by this recovery. 428 * The next segment is invalidated by this recovery.
@@ -459,10 +461,10 @@ static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs,
459 nilfs->ns_pseg_offset = 0; 461 nilfs->ns_pseg_offset = 0;
460 nilfs->ns_seg_seq = ri->ri_seq + 2; 462 nilfs->ns_seg_seq = ri->ri_seq + 2;
461 nilfs->ns_nextnum = nilfs->ns_segnum = segnum[0]; 463 nilfs->ns_nextnum = nilfs->ns_segnum = segnum[0];
462 return 0;
463 464
464 failed: 465 failed:
465 /* No need to recover sufile because it will be destroyed on error */ 466 /* No need to recover sufile because it will be destroyed on error */
467 nilfs_detach_writer(nilfs, sbi);
466 return err; 468 return err;
467} 469}
468 470
@@ -728,7 +730,7 @@ int nilfs_recover_logical_segments(struct the_nilfs *nilfs,
728 goto failed; 730 goto failed;
729 731
730 if (ri->ri_need_recovery == NILFS_RECOVERY_ROLLFORWARD_DONE) { 732 if (ri->ri_need_recovery == NILFS_RECOVERY_ROLLFORWARD_DONE) {
731 err = nilfs_prepare_segment_for_recovery(nilfs, ri); 733 err = nilfs_prepare_segment_for_recovery(nilfs, sbi, ri);
732 if (unlikely(err)) { 734 if (unlikely(err)) {
733 printk(KERN_ERR "NILFS: Error preparing segments for " 735 printk(KERN_ERR "NILFS: Error preparing segments for "
734 "recovery.\n"); 736 "recovery.\n");
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index fb70ec3be20e..22c7f65c2403 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -2589,7 +2589,8 @@ nilfs_remove_written_gcinodes(struct the_nilfs *nilfs, struct list_head *head)
2589 } 2589 }
2590} 2590}
2591 2591
2592int nilfs_clean_segments(struct super_block *sb, void __user *argp) 2592int nilfs_clean_segments(struct super_block *sb, struct nilfs_argv *argv,
2593 void **kbufs)
2593{ 2594{
2594 struct nilfs_sb_info *sbi = NILFS_SB(sb); 2595 struct nilfs_sb_info *sbi = NILFS_SB(sb);
2595 struct nilfs_sc_info *sci = NILFS_SC(sbi); 2596 struct nilfs_sc_info *sci = NILFS_SC(sbi);
@@ -2606,7 +2607,7 @@ int nilfs_clean_segments(struct super_block *sb, void __user *argp)
2606 err = nilfs_init_gcdat_inode(nilfs); 2607 err = nilfs_init_gcdat_inode(nilfs);
2607 if (unlikely(err)) 2608 if (unlikely(err))
2608 goto out_unlock; 2609 goto out_unlock;
2609 err = nilfs_ioctl_prepare_clean_segments(nilfs, argp); 2610 err = nilfs_ioctl_prepare_clean_segments(nilfs, argv, kbufs);
2610 if (unlikely(err)) 2611 if (unlikely(err))
2611 goto out_unlock; 2612 goto out_unlock;
2612 2613
diff --git a/fs/nilfs2/segment.h b/fs/nilfs2/segment.h
index a98fc1ed0bbb..476bdd5df5be 100644
--- a/fs/nilfs2/segment.h
+++ b/fs/nilfs2/segment.h
@@ -222,7 +222,8 @@ extern int nilfs_construct_segment(struct super_block *);
222extern int nilfs_construct_dsync_segment(struct super_block *, struct inode *, 222extern int nilfs_construct_dsync_segment(struct super_block *, struct inode *,
223 loff_t, loff_t); 223 loff_t, loff_t);
224extern void nilfs_flush_segment(struct super_block *, ino_t); 224extern void nilfs_flush_segment(struct super_block *, ino_t);
225extern int nilfs_clean_segments(struct super_block *, void __user *); 225extern int nilfs_clean_segments(struct super_block *, struct nilfs_argv *,
226 void **);
226 227
227extern int nilfs_segctor_add_segments_to_be_freed(struct nilfs_sc_info *, 228extern int nilfs_segctor_add_segments_to_be_freed(struct nilfs_sc_info *,
228 __u64 *, size_t); 229 __u64 *, size_t);
diff --git a/fs/ocfs2/symlink.c b/fs/ocfs2/symlink.c
index ed0a0cfd68d2..579dd1b1110f 100644
--- a/fs/ocfs2/symlink.c
+++ b/fs/ocfs2/symlink.c
@@ -39,6 +39,7 @@
39#include <linux/slab.h> 39#include <linux/slab.h>
40#include <linux/pagemap.h> 40#include <linux/pagemap.h>
41#include <linux/utsname.h> 41#include <linux/utsname.h>
42#include <linux/namei.h>
42 43
43#define MLOG_MASK_PREFIX ML_NAMEI 44#define MLOG_MASK_PREFIX ML_NAMEI
44#include <cluster/masklog.h> 45#include <cluster/masklog.h>
@@ -54,26 +55,6 @@
54 55
55#include "buffer_head_io.h" 56#include "buffer_head_io.h"
56 57
57static char *ocfs2_page_getlink(struct dentry * dentry,
58 struct page **ppage);
59static char *ocfs2_fast_symlink_getlink(struct inode *inode,
60 struct buffer_head **bh);
61
62/* get the link contents into pagecache */
63static char *ocfs2_page_getlink(struct dentry * dentry,
64 struct page **ppage)
65{
66 struct page * page;
67 struct address_space *mapping = dentry->d_inode->i_mapping;
68 page = read_mapping_page(mapping, 0, NULL);
69 if (IS_ERR(page))
70 goto sync_fail;
71 *ppage = page;
72 return kmap(page);
73
74sync_fail:
75 return (char*)page;
76}
77 58
78static char *ocfs2_fast_symlink_getlink(struct inode *inode, 59static char *ocfs2_fast_symlink_getlink(struct inode *inode,
79 struct buffer_head **bh) 60 struct buffer_head **bh)
@@ -128,40 +109,55 @@ out:
128 return ret; 109 return ret;
129} 110}
130 111
131static void *ocfs2_follow_link(struct dentry *dentry, 112static void *ocfs2_fast_follow_link(struct dentry *dentry,
132 struct nameidata *nd) 113 struct nameidata *nd)
133{ 114{
134 int status; 115 int status = 0;
135 char *link; 116 int len;
117 char *target, *link = ERR_PTR(-ENOMEM);
136 struct inode *inode = dentry->d_inode; 118 struct inode *inode = dentry->d_inode;
137 struct page *page = NULL;
138 struct buffer_head *bh = NULL; 119 struct buffer_head *bh = NULL;
139 120
140 if (ocfs2_inode_is_fast_symlink(inode)) 121 mlog_entry_void();
141 link = ocfs2_fast_symlink_getlink(inode, &bh); 122
142 else 123 BUG_ON(!ocfs2_inode_is_fast_symlink(inode));
143 link = ocfs2_page_getlink(dentry, &page); 124 target = ocfs2_fast_symlink_getlink(inode, &bh);
144 if (IS_ERR(link)) { 125 if (IS_ERR(target)) {
145 status = PTR_ERR(link); 126 status = PTR_ERR(target);
146 mlog_errno(status); 127 mlog_errno(status);
147 goto bail; 128 goto bail;
148 } 129 }
149 130
150 status = vfs_follow_link(nd, link); 131 /* Fast symlinks can't be large */
132 len = strlen(target);
133 link = kzalloc(len + 1, GFP_NOFS);
134 if (!link) {
135 status = -ENOMEM;
136 mlog_errno(status);
137 goto bail;
138 }
139
140 memcpy(link, target, len);
141 nd_set_link(nd, link);
151 142
152bail: 143bail:
153 if (page) {
154 kunmap(page);
155 page_cache_release(page);
156 }
157 brelse(bh); 144 brelse(bh);
158 145
159 return ERR_PTR(status); 146 mlog_exit(status);
147 return status ? ERR_PTR(status) : link;
148}
149
150static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
151{
152 char *link = cookie;
153
154 kfree(link);
160} 155}
161 156
162const struct inode_operations ocfs2_symlink_inode_operations = { 157const struct inode_operations ocfs2_symlink_inode_operations = {
163 .readlink = page_readlink, 158 .readlink = page_readlink,
164 .follow_link = ocfs2_follow_link, 159 .follow_link = page_follow_link_light,
160 .put_link = page_put_link,
165 .getattr = ocfs2_getattr, 161 .getattr = ocfs2_getattr,
166 .setattr = ocfs2_setattr, 162 .setattr = ocfs2_setattr,
167 .setxattr = generic_setxattr, 163 .setxattr = generic_setxattr,
@@ -171,7 +167,8 @@ const struct inode_operations ocfs2_symlink_inode_operations = {
171}; 167};
172const struct inode_operations ocfs2_fast_symlink_inode_operations = { 168const struct inode_operations ocfs2_fast_symlink_inode_operations = {
173 .readlink = ocfs2_readlink, 169 .readlink = ocfs2_readlink,
174 .follow_link = ocfs2_follow_link, 170 .follow_link = ocfs2_fast_follow_link,
171 .put_link = ocfs2_fast_put_link,
175 .getattr = ocfs2_getattr, 172 .getattr = ocfs2_getattr,
176 .setattr = ocfs2_setattr, 173 .setattr = ocfs2_setattr,
177 .setxattr = generic_setxattr, 174 .setxattr = generic_setxattr,
diff --git a/fs/open.c b/fs/open.c
index 377eb25b6abf..bdfbf03615a4 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -1033,7 +1033,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, int mode)
1033 if (!IS_ERR(tmp)) { 1033 if (!IS_ERR(tmp)) {
1034 fd = get_unused_fd_flags(flags); 1034 fd = get_unused_fd_flags(flags);
1035 if (fd >= 0) { 1035 if (fd >= 0) {
1036 struct file *f = do_filp_open(dfd, tmp, flags, mode); 1036 struct file *f = do_filp_open(dfd, tmp, flags, mode, 0);
1037 if (IS_ERR(f)) { 1037 if (IS_ERR(f)) {
1038 put_unused_fd(fd); 1038 put_unused_fd(fd);
1039 fd = PTR_ERR(f); 1039 fd = PTR_ERR(f);
diff --git a/fs/proc/base.c b/fs/proc/base.c
index fb45615943c2..3326bbf9ab95 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -1956,7 +1956,7 @@ static struct dentry *proc_pident_instantiate(struct inode *dir,
1956 const struct pid_entry *p = ptr; 1956 const struct pid_entry *p = ptr;
1957 struct inode *inode; 1957 struct inode *inode;
1958 struct proc_inode *ei; 1958 struct proc_inode *ei;
1959 struct dentry *error = ERR_PTR(-EINVAL); 1959 struct dentry *error = ERR_PTR(-ENOENT);
1960 1960
1961 inode = proc_pid_make_inode(dir->i_sb, task); 1961 inode = proc_pid_make_inode(dir->i_sb, task);
1962 if (!inode) 1962 if (!inode)
diff --git a/fs/proc/root.c b/fs/proc/root.c
index 1e15a2b176e8..b080b791d9e3 100644
--- a/fs/proc/root.c
+++ b/fs/proc/root.c
@@ -67,8 +67,7 @@ static int proc_get_sb(struct file_system_type *fs_type,
67 sb->s_flags = flags; 67 sb->s_flags = flags;
68 err = proc_fill_super(sb); 68 err = proc_fill_super(sb);
69 if (err) { 69 if (err) {
70 up_write(&sb->s_umount); 70 deactivate_locked_super(sb);
71 deactivate_super(sb);
72 return err; 71 return err;
73 } 72 }
74 73
diff --git a/fs/reiserfs/dir.c b/fs/reiserfs/dir.c
index 67a80d7e59e2..45ee3d357c70 100644
--- a/fs/reiserfs/dir.c
+++ b/fs/reiserfs/dir.c
@@ -41,6 +41,18 @@ static int reiserfs_dir_fsync(struct file *filp, struct dentry *dentry,
41 41
42#define store_ih(where,what) copy_item_head (where, what) 42#define store_ih(where,what) copy_item_head (where, what)
43 43
44static inline bool is_privroot_deh(struct dentry *dir,
45 struct reiserfs_de_head *deh)
46{
47 int ret = 0;
48#ifdef CONFIG_REISERFS_FS_XATTR
49 struct dentry *privroot = REISERFS_SB(dir->d_sb)->priv_root;
50 ret = (dir == dir->d_parent && privroot->d_inode &&
51 deh->deh_objectid == INODE_PKEY(privroot->d_inode)->k_objectid);
52#endif
53 return ret;
54}
55
44int reiserfs_readdir_dentry(struct dentry *dentry, void *dirent, 56int reiserfs_readdir_dentry(struct dentry *dentry, void *dirent,
45 filldir_t filldir, loff_t *pos) 57 filldir_t filldir, loff_t *pos)
46{ 58{
@@ -138,18 +150,8 @@ int reiserfs_readdir_dentry(struct dentry *dentry, void *dirent,
138 } 150 }
139 151
140 /* Ignore the .reiserfs_priv entry */ 152 /* Ignore the .reiserfs_priv entry */
141 if (reiserfs_xattrs(inode->i_sb) && 153 if (is_privroot_deh(dentry, deh))
142 !old_format_only(inode->i_sb) &&
143 dentry == inode->i_sb->s_root &&
144 REISERFS_SB(inode->i_sb)->priv_root &&
145 REISERFS_SB(inode->i_sb)->priv_root->d_inode
146 && deh_objectid(deh) ==
147 le32_to_cpu(INODE_PKEY
148 (REISERFS_SB(inode->i_sb)->
149 priv_root->d_inode)->
150 k_objectid)) {
151 continue; 154 continue;
152 }
153 155
154 d_off = deh_offset(deh); 156 d_off = deh_offset(deh);
155 *pos = d_off; 157 *pos = d_off;
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c
index efd4d720718e..271579128634 100644
--- a/fs/reiserfs/namei.c
+++ b/fs/reiserfs/namei.c
@@ -338,21 +338,8 @@ static struct dentry *reiserfs_lookup(struct inode *dir, struct dentry *dentry,
338 &path_to_entry, &de); 338 &path_to_entry, &de);
339 pathrelse(&path_to_entry); 339 pathrelse(&path_to_entry);
340 if (retval == NAME_FOUND) { 340 if (retval == NAME_FOUND) {
341 /* Hide the .reiserfs_priv directory */ 341 inode = reiserfs_iget(dir->i_sb,
342 if (reiserfs_xattrs(dir->i_sb) && 342 (struct cpu_key *)&(de.de_dir_id));
343 !old_format_only(dir->i_sb) &&
344 REISERFS_SB(dir->i_sb)->priv_root &&
345 REISERFS_SB(dir->i_sb)->priv_root->d_inode &&
346 de.de_objectid ==
347 le32_to_cpu(INODE_PKEY
348 (REISERFS_SB(dir->i_sb)->priv_root->d_inode)->
349 k_objectid)) {
350 reiserfs_write_unlock(dir->i_sb);
351 return ERR_PTR(-EACCES);
352 }
353
354 inode =
355 reiserfs_iget(dir->i_sb, (struct cpu_key *)&(de.de_dir_id));
356 if (!inode || IS_ERR(inode)) { 343 if (!inode || IS_ERR(inode)) {
357 reiserfs_write_unlock(dir->i_sb); 344 reiserfs_write_unlock(dir->i_sb);
358 return ERR_PTR(-EACCES); 345 return ERR_PTR(-EACCES);
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
index 0ae6486d9046..3567fb9e3fb1 100644
--- a/fs/reiserfs/super.c
+++ b/fs/reiserfs/super.c
@@ -448,13 +448,11 @@ int remove_save_link(struct inode *inode, int truncate)
448static void reiserfs_kill_sb(struct super_block *s) 448static void reiserfs_kill_sb(struct super_block *s)
449{ 449{
450 if (REISERFS_SB(s)) { 450 if (REISERFS_SB(s)) {
451#ifdef CONFIG_REISERFS_FS_XATTR
452 if (REISERFS_SB(s)->xattr_root) { 451 if (REISERFS_SB(s)->xattr_root) {
453 d_invalidate(REISERFS_SB(s)->xattr_root); 452 d_invalidate(REISERFS_SB(s)->xattr_root);
454 dput(REISERFS_SB(s)->xattr_root); 453 dput(REISERFS_SB(s)->xattr_root);
455 REISERFS_SB(s)->xattr_root = NULL; 454 REISERFS_SB(s)->xattr_root = NULL;
456 } 455 }
457#endif
458 if (REISERFS_SB(s)->priv_root) { 456 if (REISERFS_SB(s)->priv_root) {
459 d_invalidate(REISERFS_SB(s)->priv_root); 457 d_invalidate(REISERFS_SB(s)->priv_root);
460 dput(REISERFS_SB(s)->priv_root); 458 dput(REISERFS_SB(s)->priv_root);
@@ -1316,8 +1314,7 @@ static int reiserfs_remount(struct super_block *s, int *mount_flags, char *arg)
1316 } 1314 }
1317 1315
1318out_ok: 1316out_ok:
1319 kfree(s->s_options); 1317 replace_mount_options(s, new_opts);
1320 s->s_options = new_opts;
1321 return 0; 1318 return 0;
1322 1319
1323out_err: 1320out_err:
@@ -1842,7 +1839,8 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
1842 goto error; 1839 goto error;
1843 } 1840 }
1844 1841
1845 if ((errval = reiserfs_xattr_init(s, s->s_flags))) { 1842 if ((errval = reiserfs_lookup_privroot(s)) ||
1843 (errval = reiserfs_xattr_init(s, s->s_flags))) {
1846 dput(s->s_root); 1844 dput(s->s_root);
1847 s->s_root = NULL; 1845 s->s_root = NULL;
1848 goto error; 1846 goto error;
@@ -1855,7 +1853,8 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
1855 reiserfs_info(s, "using 3.5.x disk format\n"); 1853 reiserfs_info(s, "using 3.5.x disk format\n");
1856 } 1854 }
1857 1855
1858 if ((errval = reiserfs_xattr_init(s, s->s_flags))) { 1856 if ((errval = reiserfs_lookup_privroot(s)) ||
1857 (errval = reiserfs_xattr_init(s, s->s_flags))) {
1859 dput(s->s_root); 1858 dput(s->s_root);
1860 s->s_root = NULL; 1859 s->s_root = NULL;
1861 goto error; 1860 goto error;
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
index f83f52bae390..8e7deb0e6964 100644
--- a/fs/reiserfs/xattr.c
+++ b/fs/reiserfs/xattr.c
@@ -113,41 +113,30 @@ static int xattr_rmdir(struct inode *dir, struct dentry *dentry)
113 113
114#define xattr_may_create(flags) (!flags || flags & XATTR_CREATE) 114#define xattr_may_create(flags) (!flags || flags & XATTR_CREATE)
115 115
116/* Returns and possibly creates the xattr dir. */ 116static struct dentry *open_xa_root(struct super_block *sb, int flags)
117static struct dentry *lookup_or_create_dir(struct dentry *parent,
118 const char *name, int flags)
119{ 117{
120 struct dentry *dentry; 118 struct dentry *privroot = REISERFS_SB(sb)->priv_root;
121 BUG_ON(!parent); 119 struct dentry *xaroot;
122 120 if (!privroot->d_inode)
123 dentry = lookup_one_len(name, parent, strlen(name)); 121 return ERR_PTR(-ENODATA);
124 if (IS_ERR(dentry))
125 return dentry;
126 else if (!dentry->d_inode) {
127 int err = -ENODATA;
128 122
129 if (xattr_may_create(flags)) { 123 mutex_lock_nested(&privroot->d_inode->i_mutex, I_MUTEX_XATTR);
130 mutex_lock_nested(&parent->d_inode->i_mutex,
131 I_MUTEX_XATTR);
132 err = xattr_mkdir(parent->d_inode, dentry, 0700);
133 mutex_unlock(&parent->d_inode->i_mutex);
134 }
135 124
125 xaroot = dget(REISERFS_SB(sb)->xattr_root);
126 if (!xaroot)
127 xaroot = ERR_PTR(-ENODATA);
128 else if (!xaroot->d_inode) {
129 int err = -ENODATA;
130 if (xattr_may_create(flags))
131 err = xattr_mkdir(privroot->d_inode, xaroot, 0700);
136 if (err) { 132 if (err) {
137 dput(dentry); 133 dput(xaroot);
138 dentry = ERR_PTR(err); 134 xaroot = ERR_PTR(err);
139 } 135 }
140 } 136 }
141 137
142 return dentry; 138 mutex_unlock(&privroot->d_inode->i_mutex);
143} 139 return xaroot;
144
145static struct dentry *open_xa_root(struct super_block *sb, int flags)
146{
147 struct dentry *privroot = REISERFS_SB(sb)->priv_root;
148 if (!privroot)
149 return ERR_PTR(-ENODATA);
150 return lookup_or_create_dir(privroot, XAROOT_NAME, flags);
151} 140}
152 141
153static struct dentry *open_xa_dir(const struct inode *inode, int flags) 142static struct dentry *open_xa_dir(const struct inode *inode, int flags)
@@ -163,10 +152,22 @@ static struct dentry *open_xa_dir(const struct inode *inode, int flags)
163 le32_to_cpu(INODE_PKEY(inode)->k_objectid), 152 le32_to_cpu(INODE_PKEY(inode)->k_objectid),
164 inode->i_generation); 153 inode->i_generation);
165 154
166 xadir = lookup_or_create_dir(xaroot, namebuf, flags); 155 mutex_lock_nested(&xaroot->d_inode->i_mutex, I_MUTEX_XATTR);
156
157 xadir = lookup_one_len(namebuf, xaroot, strlen(namebuf));
158 if (!IS_ERR(xadir) && !xadir->d_inode) {
159 int err = -ENODATA;
160 if (xattr_may_create(flags))
161 err = xattr_mkdir(xaroot->d_inode, xadir, 0700);
162 if (err) {
163 dput(xadir);
164 xadir = ERR_PTR(err);
165 }
166 }
167
168 mutex_unlock(&xaroot->d_inode->i_mutex);
167 dput(xaroot); 169 dput(xaroot);
168 return xadir; 170 return xadir;
169
170} 171}
171 172
172/* The following are side effects of other operations that aren't explicitly 173/* The following are side effects of other operations that aren't explicitly
@@ -184,6 +185,7 @@ fill_with_dentries(void *buf, const char *name, int namelen, loff_t offset,
184{ 185{
185 struct reiserfs_dentry_buf *dbuf = buf; 186 struct reiserfs_dentry_buf *dbuf = buf;
186 struct dentry *dentry; 187 struct dentry *dentry;
188 WARN_ON_ONCE(!mutex_is_locked(&dbuf->xadir->d_inode->i_mutex));
187 189
188 if (dbuf->count == ARRAY_SIZE(dbuf->dentries)) 190 if (dbuf->count == ARRAY_SIZE(dbuf->dentries))
189 return -ENOSPC; 191 return -ENOSPC;
@@ -349,6 +351,7 @@ static struct dentry *xattr_lookup(struct inode *inode, const char *name,
349 if (IS_ERR(xadir)) 351 if (IS_ERR(xadir))
350 return ERR_CAST(xadir); 352 return ERR_CAST(xadir);
351 353
354 mutex_lock_nested(&xadir->d_inode->i_mutex, I_MUTEX_XATTR);
352 xafile = lookup_one_len(name, xadir, strlen(name)); 355 xafile = lookup_one_len(name, xadir, strlen(name));
353 if (IS_ERR(xafile)) { 356 if (IS_ERR(xafile)) {
354 err = PTR_ERR(xafile); 357 err = PTR_ERR(xafile);
@@ -360,18 +363,15 @@ static struct dentry *xattr_lookup(struct inode *inode, const char *name,
360 363
361 if (!xafile->d_inode) { 364 if (!xafile->d_inode) {
362 err = -ENODATA; 365 err = -ENODATA;
363 if (xattr_may_create(flags)) { 366 if (xattr_may_create(flags))
364 mutex_lock_nested(&xadir->d_inode->i_mutex,
365 I_MUTEX_XATTR);
366 err = xattr_create(xadir->d_inode, xafile, 367 err = xattr_create(xadir->d_inode, xafile,
367 0700|S_IFREG); 368 0700|S_IFREG);
368 mutex_unlock(&xadir->d_inode->i_mutex);
369 }
370 } 369 }
371 370
372 if (err) 371 if (err)
373 dput(xafile); 372 dput(xafile);
374out: 373out:
374 mutex_unlock(&xadir->d_inode->i_mutex);
375 dput(xadir); 375 dput(xadir);
376 if (err) 376 if (err)
377 return ERR_PTR(err); 377 return ERR_PTR(err);
@@ -435,6 +435,7 @@ static int lookup_and_delete_xattr(struct inode *inode, const char *name)
435 if (IS_ERR(xadir)) 435 if (IS_ERR(xadir))
436 return PTR_ERR(xadir); 436 return PTR_ERR(xadir);
437 437
438 mutex_lock_nested(&xadir->d_inode->i_mutex, I_MUTEX_XATTR);
438 dentry = lookup_one_len(name, xadir, strlen(name)); 439 dentry = lookup_one_len(name, xadir, strlen(name));
439 if (IS_ERR(dentry)) { 440 if (IS_ERR(dentry)) {
440 err = PTR_ERR(dentry); 441 err = PTR_ERR(dentry);
@@ -442,14 +443,13 @@ static int lookup_and_delete_xattr(struct inode *inode, const char *name)
442 } 443 }
443 444
444 if (dentry->d_inode) { 445 if (dentry->d_inode) {
445 mutex_lock_nested(&xadir->d_inode->i_mutex, I_MUTEX_XATTR);
446 err = xattr_unlink(xadir->d_inode, dentry); 446 err = xattr_unlink(xadir->d_inode, dentry);
447 mutex_unlock(&xadir->d_inode->i_mutex);
448 update_ctime(inode); 447 update_ctime(inode);
449 } 448 }
450 449
451 dput(dentry); 450 dput(dentry);
452out_dput: 451out_dput:
452 mutex_unlock(&xadir->d_inode->i_mutex);
453 dput(xadir); 453 dput(xadir);
454 return err; 454 return err;
455} 455}
@@ -687,20 +687,6 @@ out:
687 return err; 687 return err;
688} 688}
689 689
690/* Actual operations that are exported to VFS-land */
691struct xattr_handler *reiserfs_xattr_handlers[] = {
692 &reiserfs_xattr_user_handler,
693 &reiserfs_xattr_trusted_handler,
694#ifdef CONFIG_REISERFS_FS_SECURITY
695 &reiserfs_xattr_security_handler,
696#endif
697#ifdef CONFIG_REISERFS_FS_POSIX_ACL
698 &reiserfs_posix_acl_access_handler,
699 &reiserfs_posix_acl_default_handler,
700#endif
701 NULL
702};
703
704/* 690/*
705 * In order to implement different sets of xattr operations for each xattr 691 * In order to implement different sets of xattr operations for each xattr
706 * prefix with the generic xattr API, a filesystem should create a 692 * prefix with the generic xattr API, a filesystem should create a
@@ -843,7 +829,7 @@ ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size)
843 if (!dentry->d_inode) 829 if (!dentry->d_inode)
844 return -EINVAL; 830 return -EINVAL;
845 831
846 if (!reiserfs_xattrs(dentry->d_sb) || 832 if (!dentry->d_sb->s_xattr ||
847 get_inode_sd_version(dentry->d_inode) == STAT_DATA_V1) 833 get_inode_sd_version(dentry->d_inode) == STAT_DATA_V1)
848 return -EOPNOTSUPP; 834 return -EOPNOTSUPP;
849 835
@@ -885,42 +871,50 @@ static int reiserfs_check_acl(struct inode *inode, int mask)
885 return error; 871 return error;
886} 872}
887 873
888int reiserfs_permission(struct inode *inode, int mask)
889{
890 /*
891 * We don't do permission checks on the internal objects.
892 * Permissions are determined by the "owning" object.
893 */
894 if (IS_PRIVATE(inode))
895 return 0;
896 /*
897 * Stat data v1 doesn't support ACLs.
898 */
899 if (get_inode_sd_version(inode) == STAT_DATA_V1)
900 return generic_permission(inode, mask, NULL);
901 else
902 return generic_permission(inode, mask, reiserfs_check_acl);
903}
904
905static int create_privroot(struct dentry *dentry) 874static int create_privroot(struct dentry *dentry)
906{ 875{
907 int err; 876 int err;
908 struct inode *inode = dentry->d_parent->d_inode; 877 struct inode *inode = dentry->d_parent->d_inode;
909 mutex_lock_nested(&inode->i_mutex, I_MUTEX_XATTR); 878 WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex));
879
910 err = xattr_mkdir(inode, dentry, 0700); 880 err = xattr_mkdir(inode, dentry, 0700);
911 mutex_unlock(&inode->i_mutex); 881 if (err || !dentry->d_inode) {
912 if (err) { 882 reiserfs_warning(dentry->d_sb, "jdm-20006",
913 dput(dentry); 883 "xattrs/ACLs enabled and couldn't "
914 dentry = NULL; 884 "find/create .reiserfs_priv. "
885 "Failing mount.");
886 return -EOPNOTSUPP;
915 } 887 }
916 888
917 if (dentry && dentry->d_inode) 889 dentry->d_inode->i_flags |= S_PRIVATE;
918 reiserfs_info(dentry->d_sb, "Created %s - reserved for xattr " 890 reiserfs_info(dentry->d_sb, "Created %s - reserved for xattr "
919 "storage.\n", PRIVROOT_NAME); 891 "storage.\n", PRIVROOT_NAME);
920 892
921 return err; 893 return 0;
922} 894}
923 895
896#else
897int __init reiserfs_xattr_register_handlers(void) { return 0; }
898void reiserfs_xattr_unregister_handlers(void) {}
899static int create_privroot(struct dentry *dentry) { return 0; }
900#endif
901
902/* Actual operations that are exported to VFS-land */
903struct xattr_handler *reiserfs_xattr_handlers[] = {
904#ifdef CONFIG_REISERFS_FS_XATTR
905 &reiserfs_xattr_user_handler,
906 &reiserfs_xattr_trusted_handler,
907#endif
908#ifdef CONFIG_REISERFS_FS_SECURITY
909 &reiserfs_xattr_security_handler,
910#endif
911#ifdef CONFIG_REISERFS_FS_POSIX_ACL
912 &reiserfs_posix_acl_access_handler,
913 &reiserfs_posix_acl_default_handler,
914#endif
915 NULL
916};
917
924static int xattr_mount_check(struct super_block *s) 918static int xattr_mount_check(struct super_block *s)
925{ 919{
926 /* We need generation numbers to ensure that the oid mapping is correct 920 /* We need generation numbers to ensure that the oid mapping is correct
@@ -940,21 +934,33 @@ static int xattr_mount_check(struct super_block *s)
940 return 0; 934 return 0;
941} 935}
942 936
943#else 937int reiserfs_permission(struct inode *inode, int mask)
944int __init reiserfs_xattr_register_handlers(void) { return 0; } 938{
945void reiserfs_xattr_unregister_handlers(void) {} 939 /*
940 * We don't do permission checks on the internal objects.
941 * Permissions are determined by the "owning" object.
942 */
943 if (IS_PRIVATE(inode))
944 return 0;
945
946#ifdef CONFIG_REISERFS_FS_XATTR
947 /*
948 * Stat data v1 doesn't support ACLs.
949 */
950 if (get_inode_sd_version(inode) != STAT_DATA_V1)
951 return generic_permission(inode, mask, reiserfs_check_acl);
946#endif 952#endif
953 return generic_permission(inode, mask, NULL);
954}
947 955
948/* This will catch lookups from the fs root to .reiserfs_priv */ 956/* This will catch lookups from the fs root to .reiserfs_priv */
949static int 957static int
950xattr_lookup_poison(struct dentry *dentry, struct qstr *q1, struct qstr *name) 958xattr_lookup_poison(struct dentry *dentry, struct qstr *q1, struct qstr *name)
951{ 959{
952 struct dentry *priv_root = REISERFS_SB(dentry->d_sb)->priv_root; 960 struct dentry *priv_root = REISERFS_SB(dentry->d_sb)->priv_root;
953 if (name->len == priv_root->d_name.len && 961 if (container_of(q1, struct dentry, d_name) == priv_root)
954 name->hash == priv_root->d_name.hash &&
955 !memcmp(name->name, priv_root->d_name.name, name->len)) {
956 return -ENOENT; 962 return -ENOENT;
957 } else if (q1->len == name->len && 963 if (q1->len == name->len &&
958 !memcmp(q1->name, name->name, name->len)) 964 !memcmp(q1->name, name->name, name->len))
959 return 0; 965 return 0;
960 return 1; 966 return 1;
@@ -964,73 +970,71 @@ static const struct dentry_operations xattr_lookup_poison_ops = {
964 .d_compare = xattr_lookup_poison, 970 .d_compare = xattr_lookup_poison,
965}; 971};
966 972
973int reiserfs_lookup_privroot(struct super_block *s)
974{
975 struct dentry *dentry;
976 int err = 0;
977
978 /* If we don't have the privroot located yet - go find it */
979 mutex_lock(&s->s_root->d_inode->i_mutex);
980 dentry = lookup_one_len(PRIVROOT_NAME, s->s_root,
981 strlen(PRIVROOT_NAME));
982 if (!IS_ERR(dentry)) {
983 REISERFS_SB(s)->priv_root = dentry;
984 s->s_root->d_op = &xattr_lookup_poison_ops;
985 if (dentry->d_inode)
986 dentry->d_inode->i_flags |= S_PRIVATE;
987 } else
988 err = PTR_ERR(dentry);
989 mutex_unlock(&s->s_root->d_inode->i_mutex);
990
991 return err;
992}
993
967/* We need to take a copy of the mount flags since things like 994/* We need to take a copy of the mount flags since things like
968 * MS_RDONLY don't get set until *after* we're called. 995 * MS_RDONLY don't get set until *after* we're called.
969 * mount_flags != mount_options */ 996 * mount_flags != mount_options */
970int reiserfs_xattr_init(struct super_block *s, int mount_flags) 997int reiserfs_xattr_init(struct super_block *s, int mount_flags)
971{ 998{
972 int err = 0; 999 int err = 0;
1000 struct dentry *privroot = REISERFS_SB(s)->priv_root;
973 1001
974#ifdef CONFIG_REISERFS_FS_XATTR
975 err = xattr_mount_check(s); 1002 err = xattr_mount_check(s);
976 if (err) 1003 if (err)
977 goto error; 1004 goto error;
978#endif
979 1005
980 /* If we don't have the privroot located yet - go find it */ 1006 if (!privroot->d_inode && !(mount_flags & MS_RDONLY)) {
981 if (!REISERFS_SB(s)->priv_root) { 1007 mutex_lock(&s->s_root->d_inode->i_mutex);
982 struct dentry *dentry; 1008 err = create_privroot(REISERFS_SB(s)->priv_root);
983 dentry = lookup_one_len(PRIVROOT_NAME, s->s_root, 1009 mutex_unlock(&s->s_root->d_inode->i_mutex);
984 strlen(PRIVROOT_NAME));
985 if (!IS_ERR(dentry)) {
986#ifdef CONFIG_REISERFS_FS_XATTR
987 if (!(mount_flags & MS_RDONLY) && !dentry->d_inode)
988 err = create_privroot(dentry);
989#endif
990 if (!dentry->d_inode) {
991 dput(dentry);
992 dentry = NULL;
993 }
994 } else
995 err = PTR_ERR(dentry);
996
997 if (!err && dentry) {
998 s->s_root->d_op = &xattr_lookup_poison_ops;
999 dentry->d_inode->i_flags |= S_PRIVATE;
1000 REISERFS_SB(s)->priv_root = dentry;
1001#ifdef CONFIG_REISERFS_FS_XATTR
1002 /* xattrs are unavailable */
1003 } else if (!(mount_flags & MS_RDONLY)) {
1004 /* If we're read-only it just means that the dir
1005 * hasn't been created. Not an error -- just no
1006 * xattrs on the fs. We'll check again if we
1007 * go read-write */
1008 reiserfs_warning(s, "jdm-20006",
1009 "xattrs/ACLs enabled and couldn't "
1010 "find/create .reiserfs_priv. "
1011 "Failing mount.");
1012 err = -EOPNOTSUPP;
1013#endif
1014 }
1015 } 1010 }
1016 1011
1017#ifdef CONFIG_REISERFS_FS_XATTR 1012 if (privroot->d_inode) {
1018 if (!err)
1019 s->s_xattr = reiserfs_xattr_handlers; 1013 s->s_xattr = reiserfs_xattr_handlers;
1014 mutex_lock(&privroot->d_inode->i_mutex);
1015 if (!REISERFS_SB(s)->xattr_root) {
1016 struct dentry *dentry;
1017 dentry = lookup_one_len(XAROOT_NAME, privroot,
1018 strlen(XAROOT_NAME));
1019 if (!IS_ERR(dentry))
1020 REISERFS_SB(s)->xattr_root = dentry;
1021 else
1022 err = PTR_ERR(dentry);
1023 }
1024 mutex_unlock(&privroot->d_inode->i_mutex);
1025 }
1020 1026
1021error: 1027error:
1022 if (err) { 1028 if (err) {
1023 clear_bit(REISERFS_XATTRS_USER, &(REISERFS_SB(s)->s_mount_opt)); 1029 clear_bit(REISERFS_XATTRS_USER, &(REISERFS_SB(s)->s_mount_opt));
1024 clear_bit(REISERFS_POSIXACL, &(REISERFS_SB(s)->s_mount_opt)); 1030 clear_bit(REISERFS_POSIXACL, &(REISERFS_SB(s)->s_mount_opt));
1025 } 1031 }
1026#endif
1027 1032
1028 /* The super_block MS_POSIXACL must mirror the (no)acl mount option. */ 1033 /* The super_block MS_POSIXACL must mirror the (no)acl mount option. */
1029 s->s_flags = s->s_flags & ~MS_POSIXACL;
1030#ifdef CONFIG_REISERFS_FS_POSIX_ACL
1031 if (reiserfs_posixacl(s)) 1034 if (reiserfs_posixacl(s))
1032 s->s_flags |= MS_POSIXACL; 1035 s->s_flags |= MS_POSIXACL;
1033#endif 1036 else
1037 s->s_flags &= ~MS_POSIXACL;
1034 1038
1035 return err; 1039 return err;
1036} 1040}
diff --git a/fs/reiserfs/xattr_security.c b/fs/reiserfs/xattr_security.c
index 4d3c20e787c3..a92c8792c0f6 100644
--- a/fs/reiserfs/xattr_security.c
+++ b/fs/reiserfs/xattr_security.c
@@ -55,8 +55,16 @@ int reiserfs_security_init(struct inode *dir, struct inode *inode,
55 struct reiserfs_security_handle *sec) 55 struct reiserfs_security_handle *sec)
56{ 56{
57 int blocks = 0; 57 int blocks = 0;
58 int error = security_inode_init_security(inode, dir, &sec->name, 58 int error;
59 &sec->value, &sec->length); 59
60 sec->name = NULL;
61
62 /* Don't add selinux attributes on xattrs - they'll never get used */
63 if (IS_PRIVATE(dir))
64 return 0;
65
66 error = security_inode_init_security(inode, dir, &sec->name,
67 &sec->value, &sec->length);
60 if (error) { 68 if (error) {
61 if (error == -EOPNOTSUPP) 69 if (error == -EOPNOTSUPP)
62 error = 0; 70 error = 0;
diff --git a/fs/romfs/super.c b/fs/romfs/super.c
index c53b5ef8a02f..4ab3c03d8f95 100644
--- a/fs/romfs/super.c
+++ b/fs/romfs/super.c
@@ -298,7 +298,8 @@ static struct inode *romfs_iget(struct super_block *sb, unsigned long pos)
298 struct romfs_inode ri; 298 struct romfs_inode ri;
299 struct inode *i; 299 struct inode *i;
300 unsigned long nlen; 300 unsigned long nlen;
301 unsigned nextfh, ret; 301 unsigned nextfh;
302 int ret;
302 umode_t mode; 303 umode_t mode;
303 304
304 /* we might have to traverse a chain of "hard link" file entries to get 305 /* we might have to traverse a chain of "hard link" file entries to get
diff --git a/fs/squashfs/Makefile b/fs/squashfs/Makefile
index 8258cf9a0317..70e3244fa30f 100644
--- a/fs/squashfs/Makefile
+++ b/fs/squashfs/Makefile
@@ -5,4 +5,3 @@
5obj-$(CONFIG_SQUASHFS) += squashfs.o 5obj-$(CONFIG_SQUASHFS) += squashfs.o
6squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o 6squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
7squashfs-y += namei.o super.o symlink.o 7squashfs-y += namei.o super.o symlink.o
8#squashfs-y += squashfs2_0.o
diff --git a/fs/squashfs/cache.c b/fs/squashfs/cache.c
index 1c4739e33af6..40c98fa6b5d6 100644
--- a/fs/squashfs/cache.c
+++ b/fs/squashfs/cache.c
@@ -252,6 +252,7 @@ struct squashfs_cache *squashfs_cache_init(char *name, int entries,
252 cache->entries = entries; 252 cache->entries = entries;
253 cache->block_size = block_size; 253 cache->block_size = block_size;
254 cache->pages = block_size >> PAGE_CACHE_SHIFT; 254 cache->pages = block_size >> PAGE_CACHE_SHIFT;
255 cache->pages = cache->pages ? cache->pages : 1;
255 cache->name = name; 256 cache->name = name;
256 cache->num_waiters = 0; 257 cache->num_waiters = 0;
257 spin_lock_init(&cache->lock); 258 spin_lock_init(&cache->lock);
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index ffa6edcd2d0c..0adc624c956f 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -157,6 +157,16 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent)
157 if (msblk->block_size > SQUASHFS_FILE_MAX_SIZE) 157 if (msblk->block_size > SQUASHFS_FILE_MAX_SIZE)
158 goto failed_mount; 158 goto failed_mount;
159 159
160 /*
161 * Check the system page size is not larger than the filesystem
162 * block size (by default 128K). This is currently not supported.
163 */
164 if (PAGE_CACHE_SIZE > msblk->block_size) {
165 ERROR("Page size > filesystem block size (%d). This is "
166 "currently not supported!\n", msblk->block_size);
167 goto failed_mount;
168 }
169
160 msblk->block_log = le16_to_cpu(sblk->block_log); 170 msblk->block_log = le16_to_cpu(sblk->block_log);
161 if (msblk->block_log > SQUASHFS_FILE_MAX_LOG) 171 if (msblk->block_log > SQUASHFS_FILE_MAX_LOG)
162 goto failed_mount; 172 goto failed_mount;
diff --git a/fs/super.c b/fs/super.c
index 786fe7d72790..1943fdf655fa 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -208,6 +208,34 @@ void deactivate_super(struct super_block *s)
208EXPORT_SYMBOL(deactivate_super); 208EXPORT_SYMBOL(deactivate_super);
209 209
210/** 210/**
211 * deactivate_locked_super - drop an active reference to superblock
212 * @s: superblock to deactivate
213 *
214 * Equivalent of up_write(&s->s_umount); deactivate_super(s);, except that
215 * it does not unlock it until it's all over. As the result, it's safe to
216 * use to dispose of new superblock on ->get_sb() failure exits - nobody
217 * will see the sucker until it's all over. Equivalent using up_write +
218 * deactivate_super is safe for that purpose only if superblock is either
219 * safe to use or has NULL ->s_root when we unlock.
220 */
221void deactivate_locked_super(struct super_block *s)
222{
223 struct file_system_type *fs = s->s_type;
224 if (atomic_dec_and_lock(&s->s_active, &sb_lock)) {
225 s->s_count -= S_BIAS-1;
226 spin_unlock(&sb_lock);
227 vfs_dq_off(s, 0);
228 fs->kill_sb(s);
229 put_filesystem(fs);
230 put_super(s);
231 } else {
232 up_write(&s->s_umount);
233 }
234}
235
236EXPORT_SYMBOL(deactivate_locked_super);
237
238/**
211 * grab_super - acquire an active reference 239 * grab_super - acquire an active reference
212 * @s: reference we are trying to make active 240 * @s: reference we are trying to make active
213 * 241 *
@@ -797,8 +825,7 @@ int get_sb_ns(struct file_system_type *fs_type, int flags, void *data,
797 sb->s_flags = flags; 825 sb->s_flags = flags;
798 err = fill_super(sb, data, flags & MS_SILENT ? 1 : 0); 826 err = fill_super(sb, data, flags & MS_SILENT ? 1 : 0);
799 if (err) { 827 if (err) {
800 up_write(&sb->s_umount); 828 deactivate_locked_super(sb);
801 deactivate_super(sb);
802 return err; 829 return err;
803 } 830 }
804 831
@@ -854,8 +881,7 @@ int get_sb_bdev(struct file_system_type *fs_type,
854 881
855 if (s->s_root) { 882 if (s->s_root) {
856 if ((flags ^ s->s_flags) & MS_RDONLY) { 883 if ((flags ^ s->s_flags) & MS_RDONLY) {
857 up_write(&s->s_umount); 884 deactivate_locked_super(s);
858 deactivate_super(s);
859 error = -EBUSY; 885 error = -EBUSY;
860 goto error_bdev; 886 goto error_bdev;
861 } 887 }
@@ -870,8 +896,7 @@ int get_sb_bdev(struct file_system_type *fs_type,
870 sb_set_blocksize(s, block_size(bdev)); 896 sb_set_blocksize(s, block_size(bdev));
871 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0); 897 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0);
872 if (error) { 898 if (error) {
873 up_write(&s->s_umount); 899 deactivate_locked_super(s);
874 deactivate_super(s);
875 goto error; 900 goto error;
876 } 901 }
877 902
@@ -897,7 +922,7 @@ void kill_block_super(struct super_block *sb)
897 struct block_device *bdev = sb->s_bdev; 922 struct block_device *bdev = sb->s_bdev;
898 fmode_t mode = sb->s_mode; 923 fmode_t mode = sb->s_mode;
899 924
900 bdev->bd_super = 0; 925 bdev->bd_super = NULL;
901 generic_shutdown_super(sb); 926 generic_shutdown_super(sb);
902 sync_blockdev(bdev); 927 sync_blockdev(bdev);
903 close_bdev_exclusive(bdev, mode); 928 close_bdev_exclusive(bdev, mode);
@@ -921,8 +946,7 @@ int get_sb_nodev(struct file_system_type *fs_type,
921 946
922 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0); 947 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0);
923 if (error) { 948 if (error) {
924 up_write(&s->s_umount); 949 deactivate_locked_super(s);
925 deactivate_super(s);
926 return error; 950 return error;
927 } 951 }
928 s->s_flags |= MS_ACTIVE; 952 s->s_flags |= MS_ACTIVE;
@@ -952,8 +976,7 @@ int get_sb_single(struct file_system_type *fs_type,
952 s->s_flags = flags; 976 s->s_flags = flags;
953 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0); 977 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0);
954 if (error) { 978 if (error) {
955 up_write(&s->s_umount); 979 deactivate_locked_super(s);
956 deactivate_super(s);
957 return error; 980 return error;
958 } 981 }
959 s->s_flags |= MS_ACTIVE; 982 s->s_flags |= MS_ACTIVE;
@@ -1006,8 +1029,7 @@ vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void
1006 return mnt; 1029 return mnt;
1007out_sb: 1030out_sb:
1008 dput(mnt->mnt_root); 1031 dput(mnt->mnt_root);
1009 up_write(&mnt->mnt_sb->s_umount); 1032 deactivate_locked_super(mnt->mnt_sb);
1010 deactivate_super(mnt->mnt_sb);
1011out_free_secdata: 1033out_free_secdata:
1012 free_secdata(secdata); 1034 free_secdata(secdata);
1013out_mnt: 1035out_mnt:
diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
index b1606e07b7a3..561a9c050cef 100644
--- a/fs/sysfs/file.c
+++ b/fs/sysfs/file.c
@@ -723,7 +723,7 @@ int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *),
723 mutex_unlock(&sysfs_workq_mutex); 723 mutex_unlock(&sysfs_workq_mutex);
724 724
725 if (sysfs_workqueue == NULL) { 725 if (sysfs_workqueue == NULL) {
726 sysfs_workqueue = create_workqueue("sysfsd"); 726 sysfs_workqueue = create_singlethread_workqueue("sysfsd");
727 if (sysfs_workqueue == NULL) { 727 if (sysfs_workqueue == NULL) {
728 module_put(owner); 728 module_put(owner);
729 return -ENOMEM; 729 return -ENOMEM;
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index faa44f90608a..e9f7a754c4f7 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -2055,8 +2055,7 @@ static int ubifs_get_sb(struct file_system_type *fs_type, int flags,
2055 return 0; 2055 return 0;
2056 2056
2057out_deact: 2057out_deact:
2058 up_write(&sb->s_umount); 2058 deactivate_locked_super(sb);
2059 deactivate_super(sb);
2060out_close: 2059out_close:
2061 ubi_close_volume(ubi); 2060 ubi_close_volume(ubi);
2062 return err; 2061 return err;
diff --git a/fs/ufs/dir.c b/fs/ufs/dir.c
index dbbbc4668769..6321b797061b 100644
--- a/fs/ufs/dir.c
+++ b/fs/ufs/dir.c
@@ -666,6 +666,6 @@ not_empty:
666const struct file_operations ufs_dir_operations = { 666const struct file_operations ufs_dir_operations = {
667 .read = generic_read_dir, 667 .read = generic_read_dir,
668 .readdir = ufs_readdir, 668 .readdir = ufs_readdir,
669 .fsync = file_fsync, 669 .fsync = ufs_sync_file,
670 .llseek = generic_file_llseek, 670 .llseek = generic_file_llseek,
671}; 671};
diff --git a/fs/ufs/file.c b/fs/ufs/file.c
index 625ef17c6f83..2bd3a1615714 100644
--- a/fs/ufs/file.c
+++ b/fs/ufs/file.c
@@ -30,7 +30,7 @@
30#include "ufs.h" 30#include "ufs.h"
31 31
32 32
33static int ufs_sync_file(struct file *file, struct dentry *dentry, int datasync) 33int ufs_sync_file(struct file *file, struct dentry *dentry, int datasync)
34{ 34{
35 struct inode *inode = dentry->d_inode; 35 struct inode *inode = dentry->d_inode;
36 int err; 36 int err;
diff --git a/fs/ufs/ufs.h b/fs/ufs/ufs.h
index 69b3427d7885..d0c4acd4f1f3 100644
--- a/fs/ufs/ufs.h
+++ b/fs/ufs/ufs.h
@@ -98,8 +98,8 @@ extern void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de,
98/* file.c */ 98/* file.c */
99extern const struct inode_operations ufs_file_inode_operations; 99extern const struct inode_operations ufs_file_inode_operations;
100extern const struct file_operations ufs_file_operations; 100extern const struct file_operations ufs_file_operations;
101
102extern const struct address_space_operations ufs_aops; 101extern const struct address_space_operations ufs_aops;
102extern int ufs_sync_file(struct file *, struct dentry *, int);
103 103
104/* ialloc.c */ 104/* ialloc.c */
105extern void ufs_free_inode (struct inode *inode); 105extern void ufs_free_inode (struct inode *inode);
diff --git a/fs/xfs/linux-2.6/kmem.h b/fs/xfs/linux-2.6/kmem.h
index af6843c7ee4b..179cbd630f69 100644
--- a/fs/xfs/linux-2.6/kmem.h
+++ b/fs/xfs/linux-2.6/kmem.h
@@ -103,7 +103,7 @@ extern void *kmem_zone_zalloc(kmem_zone_t *, unsigned int __nocast);
103static inline int 103static inline int
104kmem_shake_allow(gfp_t gfp_mask) 104kmem_shake_allow(gfp_t gfp_mask)
105{ 105{
106 return (gfp_mask & __GFP_WAIT) != 0; 106 return ((gfp_mask & __GFP_WAIT) && (gfp_mask & __GFP_FS));
107} 107}
108 108
109#endif /* __XFS_SUPPORT_KMEM_H__ */ 109#endif /* __XFS_SUPPORT_KMEM_H__ */
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c
index e6d839bddbf0..7465f9ee125f 100644
--- a/fs/xfs/xfs_dfrag.c
+++ b/fs/xfs/xfs_dfrag.c
@@ -347,13 +347,15 @@ xfs_swap_extents(
347 347
348 error = xfs_trans_commit(tp, XFS_TRANS_SWAPEXT); 348 error = xfs_trans_commit(tp, XFS_TRANS_SWAPEXT);
349 349
350out_unlock:
351 xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL);
352 xfs_iunlock(tip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL);
353out: 350out:
354 kmem_free(tempifp); 351 kmem_free(tempifp);
355 return error; 352 return error;
356 353
354out_unlock:
355 xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL);
356 xfs_iunlock(tip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL);
357 goto out;
358
357out_trans_cancel: 359out_trans_cancel:
358 xfs_trans_cancel(tp, 0); 360 xfs_trans_cancel(tp, 0);
359 goto out_unlock; 361 goto out_unlock;
diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
index 8379e3bca26c..cbd451bb4848 100644
--- a/fs/xfs/xfs_fsops.c
+++ b/fs/xfs/xfs_fsops.c
@@ -160,7 +160,7 @@ xfs_growfs_data_private(
160 nagcount = new + (nb_mod != 0); 160 nagcount = new + (nb_mod != 0);
161 if (nb_mod && nb_mod < XFS_MIN_AG_BLOCKS) { 161 if (nb_mod && nb_mod < XFS_MIN_AG_BLOCKS) {
162 nagcount--; 162 nagcount--;
163 nb = nagcount * mp->m_sb.sb_agblocks; 163 nb = (xfs_rfsblock_t)nagcount * mp->m_sb.sb_agblocks;
164 if (nb < mp->m_sb.sb_dblocks) 164 if (nb < mp->m_sb.sb_dblocks)
165 return XFS_ERROR(EINVAL); 165 return XFS_ERROR(EINVAL);
166 } 166 }
diff --git a/include/asm-generic/local.h b/include/asm-generic/local.h
index dbd6150763e9..fc218444e315 100644
--- a/include/asm-generic/local.h
+++ b/include/asm-generic/local.h
@@ -42,7 +42,7 @@ typedef struct
42 42
43#define local_cmpxchg(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n)) 43#define local_cmpxchg(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
44#define local_xchg(l, n) atomic_long_xchg((&(l)->a), (n)) 44#define local_xchg(l, n) atomic_long_xchg((&(l)->a), (n))
45#define local_add_unless(l, a, u) atomic_long_add_unless((&(l)->a), (a), (u)) 45#define local_add_unless(l, _a, u) atomic_long_add_unless((&(l)->a), (_a), (u))
46#define local_inc_not_zero(l) atomic_long_inc_not_zero(&(l)->a) 46#define local_inc_not_zero(l) atomic_long_inc_not_zero(&(l)->a)
47 47
48/* Non-atomic variants, ie. preemption disabled and won't be touched 48/* Non-atomic variants, ie. preemption disabled and won't be touched
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index c8c422151431..b84d8ae35e6f 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1519,6 +1519,30 @@ static __inline__ void *drm_calloc(size_t nmemb, size_t size, int area)
1519{ 1519{
1520 return kcalloc(nmemb, size, GFP_KERNEL); 1520 return kcalloc(nmemb, size, GFP_KERNEL);
1521} 1521}
1522
1523static __inline__ void *drm_calloc_large(size_t nmemb, size_t size)
1524{
1525 u8 *addr;
1526
1527 if (size <= PAGE_SIZE)
1528 return kcalloc(nmemb, size, GFP_KERNEL);
1529
1530 addr = vmalloc(nmemb * size);
1531 if (!addr)
1532 return NULL;
1533
1534 memset(addr, 0, nmemb * size);
1535
1536 return addr;
1537}
1538
1539static __inline void drm_free_large(void *ptr)
1540{
1541 if (!is_vmalloc_addr(ptr))
1542 return kfree(ptr);
1543
1544 vfree(ptr);
1545}
1522#else 1546#else
1523extern void *drm_alloc(size_t size, int area); 1547extern void *drm_alloc(size_t size, int area);
1524extern void drm_free(void *pt, size_t size, int area); 1548extern void drm_free(void *pt, size_t size, int area);
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 3c1924c010e8..7300fb866767 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -471,6 +471,9 @@ struct drm_connector {
471 u32 property_ids[DRM_CONNECTOR_MAX_PROPERTY]; 471 u32 property_ids[DRM_CONNECTOR_MAX_PROPERTY];
472 uint64_t property_values[DRM_CONNECTOR_MAX_PROPERTY]; 472 uint64_t property_values[DRM_CONNECTOR_MAX_PROPERTY];
473 473
474 /* requested DPMS state */
475 int dpms;
476
474 void *helper_private; 477 void *helper_private;
475 478
476 uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; 479 uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER];
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
index ec073d8288d9..6769ff6c1bc0 100644
--- a/include/drm/drm_crtc_helper.h
+++ b/include/drm/drm_crtc_helper.h
@@ -99,6 +99,8 @@ extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
99 struct drm_framebuffer *old_fb); 99 struct drm_framebuffer *old_fb);
100extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc); 100extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc);
101 101
102extern void drm_helper_connector_dpms(struct drm_connector *connector, int mode);
103
102extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb, 104extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb,
103 struct drm_mode_fb_cmd *mode_cmd); 105 struct drm_mode_fb_cmd *mode_cmd);
104 106
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
index 95962fa8398a..8e1e92583fbc 100644
--- a/include/drm/i915_drm.h
+++ b/include/drm/i915_drm.h
@@ -184,6 +184,7 @@ typedef struct _drm_i915_sarea {
184#define DRM_I915_GEM_GET_TILING 0x22 184#define DRM_I915_GEM_GET_TILING 0x22
185#define DRM_I915_GEM_GET_APERTURE 0x23 185#define DRM_I915_GEM_GET_APERTURE 0x23
186#define DRM_I915_GEM_MMAP_GTT 0x24 186#define DRM_I915_GEM_MMAP_GTT 0x24
187#define DRM_I915_GET_PIPE_FROM_CRTC_ID 0x25
187 188
188#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) 189#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
189#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) 190#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -219,6 +220,7 @@ typedef struct _drm_i915_sarea {
219#define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling) 220#define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling)
220#define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling) 221#define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling)
221#define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture) 222#define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture)
223#define DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_PIPE_FROM_CRTC_ID, struct drm_intel_get_pipe_from_crtc_id)
222 224
223/* Allow drivers to submit batchbuffers directly to hardware, relying 225/* Allow drivers to submit batchbuffers directly to hardware, relying
224 * on the security mechanisms provided by hardware. 226 * on the security mechanisms provided by hardware.
@@ -657,4 +659,12 @@ struct drm_i915_gem_get_aperture {
657 __u64 aper_available_size; 659 __u64 aper_available_size;
658}; 660};
659 661
662struct drm_i915_get_pipe_from_crtc_id {
663 /** ID of CRTC being requested **/
664 __u32 crtc_id;
665
666 /** pipe of requested CRTC **/
667 __u32 pipe;
668};
669
660#endif /* _I915_DRM_H_ */ 670#endif /* _I915_DRM_H_ */
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index ca9b9b9bd331..3f0eaa397ef5 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -138,6 +138,7 @@ header-y += qnxtypes.h
138header-y += radeonfb.h 138header-y += radeonfb.h
139header-y += raw.h 139header-y += raw.h
140header-y += resource.h 140header-y += resource.h
141header-y += romfs_fs.h
141header-y += rose.h 142header-y += rose.h
142header-y += serial_reg.h 143header-y += serial_reg.h
143header-y += smbno.h 144header-y += smbno.h
@@ -314,7 +315,6 @@ unifdef-y += irqnr.h
314unifdef-y += reboot.h 315unifdef-y += reboot.h
315unifdef-y += reiserfs_fs.h 316unifdef-y += reiserfs_fs.h
316unifdef-y += reiserfs_xattr.h 317unifdef-y += reiserfs_xattr.h
317unifdef-y += romfs_fs.h
318unifdef-y += route.h 318unifdef-y += route.h
319unifdef-y += rtc.h 319unifdef-y += rtc.h
320unifdef-y += rtnetlink.h 320unifdef-y += rtnetlink.h
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h
index 51e6e54b2aa1..9b93cafa82a0 100644
--- a/include/linux/amba/bus.h
+++ b/include/linux/amba/bus.h
@@ -28,7 +28,7 @@ struct amba_id {
28 28
29struct amba_driver { 29struct amba_driver {
30 struct device_driver drv; 30 struct device_driver drv;
31 int (*probe)(struct amba_device *, void *); 31 int (*probe)(struct amba_device *, struct amba_id *);
32 int (*remove)(struct amba_device *); 32 int (*remove)(struct amba_device *);
33 void (*shutdown)(struct amba_device *); 33 void (*shutdown)(struct amba_device *);
34 int (*suspend)(struct amba_device *, pm_message_t); 34 int (*suspend)(struct amba_device *, pm_message_t);
diff --git a/include/linux/amba/serial.h b/include/linux/amba/serial.h
index 48ee32a18ac5..64a982ea5d5f 100644
--- a/include/linux/amba/serial.h
+++ b/include/linux/amba/serial.h
@@ -159,6 +159,7 @@
159#define UART01x_FR_MODEM_ANY (UART01x_FR_DCD|UART01x_FR_DSR|UART01x_FR_CTS) 159#define UART01x_FR_MODEM_ANY (UART01x_FR_DCD|UART01x_FR_DSR|UART01x_FR_CTS)
160 160
161#ifndef __ASSEMBLY__ 161#ifndef __ASSEMBLY__
162struct amba_device; /* in uncompress this is included but amba/bus.h is not */
162struct amba_pl010_data { 163struct amba_pl010_data {
163 void (*set_mctrl)(struct amba_device *dev, void __iomem *base, unsigned int mctrl); 164 void (*set_mctrl)(struct amba_device *dev, void __iomem *base, unsigned int mctrl);
164}; 165};
diff --git a/include/linux/ata.h b/include/linux/ata.h
index cb79b7a208e1..915da43edee1 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -730,6 +730,34 @@ static inline int ata_id_has_unload(const u16 *id)
730 return 0; 730 return 0;
731} 731}
732 732
733static inline int ata_id_form_factor(const u16 *id)
734{
735 u16 val = id[168];
736
737 if (ata_id_major_version(id) < 7 || val == 0 || val == 0xffff)
738 return 0;
739
740 val &= 0xf;
741
742 if (val > 5)
743 return 0;
744
745 return val;
746}
747
748static inline int ata_id_rotation_rate(const u16 *id)
749{
750 u16 val = id[217];
751
752 if (ata_id_major_version(id) < 7 || val == 0 || val == 0xffff)
753 return 0;
754
755 if (val > 1 && val < 0x401)
756 return 0;
757
758 return val;
759}
760
733static inline int ata_id_has_trim(const u16 *id) 761static inline int ata_id_has_trim(const u16 *id)
734{ 762{
735 if (ata_id_major_version(id) >= 7 && 763 if (ata_id_major_version(id) >= 7 &&
diff --git a/include/linux/auto_fs.h b/include/linux/auto_fs.h
index 63265852b7d1..7b09c8348fd3 100644
--- a/include/linux/auto_fs.h
+++ b/include/linux/auto_fs.h
@@ -14,13 +14,12 @@
14#ifndef _LINUX_AUTO_FS_H 14#ifndef _LINUX_AUTO_FS_H
15#define _LINUX_AUTO_FS_H 15#define _LINUX_AUTO_FS_H
16 16
17#include <linux/types.h>
17#ifdef __KERNEL__ 18#ifdef __KERNEL__
18#include <linux/fs.h> 19#include <linux/fs.h>
19#include <linux/limits.h> 20#include <linux/limits.h>
20#include <linux/types.h>
21#include <linux/ioctl.h> 21#include <linux/ioctl.h>
22#else 22#else
23#include <asm/types.h>
24#include <sys/ioctl.h> 23#include <sys/ioctl.h>
25#endif /* __KERNEL__ */ 24#endif /* __KERNEL__ */
26 25
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index 9f315382610b..c5ac87ca7bc6 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -1022,6 +1022,8 @@ typedef struct cpumask *cpumask_var_t;
1022 1022
1023bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node); 1023bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node);
1024bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags); 1024bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags);
1025bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node);
1026bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags);
1025void alloc_bootmem_cpumask_var(cpumask_var_t *mask); 1027void alloc_bootmem_cpumask_var(cpumask_var_t *mask);
1026void free_cpumask_var(cpumask_var_t mask); 1028void free_cpumask_var(cpumask_var_t mask);
1027void free_bootmem_cpumask_var(cpumask_var_t mask); 1029void free_bootmem_cpumask_var(cpumask_var_t mask);
@@ -1040,6 +1042,19 @@ static inline bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags,
1040 return true; 1042 return true;
1041} 1043}
1042 1044
1045static inline bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
1046{
1047 cpumask_clear(*mask);
1048 return true;
1049}
1050
1051static inline bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags,
1052 int node)
1053{
1054 cpumask_clear(*mask);
1055 return true;
1056}
1057
1043static inline void alloc_bootmem_cpumask_var(cpumask_var_t *mask) 1058static inline void alloc_bootmem_cpumask_var(cpumask_var_t *mask)
1044{ 1059{
1045} 1060}
diff --git a/include/linux/cred.h b/include/linux/cred.h
index 3282ee4318e7..4fa999696310 100644
--- a/include/linux/cred.h
+++ b/include/linux/cred.h
@@ -13,6 +13,7 @@
13#define _LINUX_CRED_H 13#define _LINUX_CRED_H
14 14
15#include <linux/capability.h> 15#include <linux/capability.h>
16#include <linux/init.h>
16#include <linux/key.h> 17#include <linux/key.h>
17#include <asm/atomic.h> 18#include <asm/atomic.h>
18 19
diff --git a/include/linux/device.h b/include/linux/device.h
index 6a69caaac18a..5d5c197bad45 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -384,13 +384,8 @@ struct device {
384 struct device_driver *driver; /* which driver has allocated this 384 struct device_driver *driver; /* which driver has allocated this
385 device */ 385 device */
386 void *driver_data; /* data private to the driver */ 386 void *driver_data; /* data private to the driver */
387 387 void *platform_data; /* Platform specific data, device
388 void *platform_data; /* We will remove platform_data 388 core doesn't touch it */
389 field if all platform devices
390 pass its platform specific data
391 from platform_device->platform_data,
392 other kind of devices should not
393 use platform_data. */
394 struct dev_pm_info power; 389 struct dev_pm_info power;
395 390
396#ifdef CONFIG_NUMA 391#ifdef CONFIG_NUMA
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 2e2aa3df170c..ffefba81c818 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -78,12 +78,18 @@ enum dma_transaction_type {
78 * dependency chains 78 * dependency chains
79 * @DMA_COMPL_SKIP_SRC_UNMAP - set to disable dma-unmapping the source buffer(s) 79 * @DMA_COMPL_SKIP_SRC_UNMAP - set to disable dma-unmapping the source buffer(s)
80 * @DMA_COMPL_SKIP_DEST_UNMAP - set to disable dma-unmapping the destination(s) 80 * @DMA_COMPL_SKIP_DEST_UNMAP - set to disable dma-unmapping the destination(s)
81 * @DMA_COMPL_SRC_UNMAP_SINGLE - set to do the source dma-unmapping as single
82 * (if not set, do the source dma-unmapping as page)
83 * @DMA_COMPL_DEST_UNMAP_SINGLE - set to do the destination dma-unmapping as single
84 * (if not set, do the destination dma-unmapping as page)
81 */ 85 */
82enum dma_ctrl_flags { 86enum dma_ctrl_flags {
83 DMA_PREP_INTERRUPT = (1 << 0), 87 DMA_PREP_INTERRUPT = (1 << 0),
84 DMA_CTRL_ACK = (1 << 1), 88 DMA_CTRL_ACK = (1 << 1),
85 DMA_COMPL_SKIP_SRC_UNMAP = (1 << 2), 89 DMA_COMPL_SKIP_SRC_UNMAP = (1 << 2),
86 DMA_COMPL_SKIP_DEST_UNMAP = (1 << 3), 90 DMA_COMPL_SKIP_DEST_UNMAP = (1 << 3),
91 DMA_COMPL_SRC_UNMAP_SINGLE = (1 << 4),
92 DMA_COMPL_DEST_UNMAP_SINGLE = (1 << 5),
87}; 93};
88 94
89/** 95/**
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 5bed436f4353..3b534e527e09 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1775,6 +1775,7 @@ void kill_block_super(struct super_block *sb);
1775void kill_anon_super(struct super_block *sb); 1775void kill_anon_super(struct super_block *sb);
1776void kill_litter_super(struct super_block *sb); 1776void kill_litter_super(struct super_block *sb);
1777void deactivate_super(struct super_block *sb); 1777void deactivate_super(struct super_block *sb);
1778void deactivate_locked_super(struct super_block *sb);
1778int set_anon_super(struct super_block *s, void *data); 1779int set_anon_super(struct super_block *s, void *data);
1779struct super_block *sget(struct file_system_type *type, 1780struct super_block *sget(struct file_system_type *type,
1780 int (*test)(struct super_block *,void *), 1781 int (*test)(struct super_block *,void *),
@@ -2117,7 +2118,7 @@ extern struct file *create_write_pipe(int flags);
2117extern void free_write_pipe(struct file *); 2118extern void free_write_pipe(struct file *);
2118 2119
2119extern struct file *do_filp_open(int dfd, const char *pathname, 2120extern struct file *do_filp_open(int dfd, const char *pathname,
2120 int open_flag, int mode); 2121 int open_flag, int mode, int acc_mode);
2121extern int may_open(struct path *, int, int); 2122extern int may_open(struct path *, int, int);
2122 2123
2123extern int kernel_read(struct file *, unsigned long, char *, unsigned long); 2124extern int kernel_read(struct file *, unsigned long, char *, unsigned long);
@@ -2367,6 +2368,7 @@ extern void file_update_time(struct file *file);
2367 2368
2368extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt); 2369extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt);
2369extern void save_mount_options(struct super_block *sb, char *options); 2370extern void save_mount_options(struct super_block *sb, char *options);
2371extern void replace_mount_options(struct super_block *sb, char *options);
2370 2372
2371static inline ino_t parent_ino(struct dentry *dentry) 2373static inline ino_t parent_ino(struct dentry *dentry)
2372{ 2374{
diff --git a/include/linux/i7300_idle.h b/include/linux/i7300_idle.h
index 05a80c44513c..1587b7dec505 100644
--- a/include/linux/i7300_idle.h
+++ b/include/linux/i7300_idle.h
@@ -16,35 +16,33 @@
16struct fbd_ioat { 16struct fbd_ioat {
17 unsigned int vendor; 17 unsigned int vendor;
18 unsigned int ioat_dev; 18 unsigned int ioat_dev;
19 unsigned int enabled;
19}; 20};
20 21
21/* 22/*
22 * The i5000 chip-set has the same hooks as the i7300 23 * The i5000 chip-set has the same hooks as the i7300
23 * but support is disabled by default because this driver 24 * but it is not enabled by default and must be manually
24 * has not been validated on that platform. 25 * manually enabled with "forceload=1" because it is
26 * only lightly validated.
25 */ 27 */
26#define SUPPORT_I5000 0
27 28
28static const struct fbd_ioat fbd_ioat_list[] = { 29static const struct fbd_ioat fbd_ioat_list[] = {
29 {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB}, 30 {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB, 1},
30#if SUPPORT_I5000 31 {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT, 0},
31 {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT},
32#endif
33 {0, 0} 32 {0, 0}
34}; 33};
35 34
36/* table of devices that work with this driver */ 35/* table of devices that work with this driver */
37static const struct pci_device_id pci_tbl[] = { 36static const struct pci_device_id pci_tbl[] = {
38 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_FBD_CNB) }, 37 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_FBD_CNB) },
39#if SUPPORT_I5000
40 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5000_ERR) }, 38 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5000_ERR) },
41#endif
42 { } /* Terminating entry */ 39 { } /* Terminating entry */
43}; 40};
44 41
45/* Check for known platforms with I/O-AT */ 42/* Check for known platforms with I/O-AT */
46static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev, 43static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev,
47 struct pci_dev **ioat_dev) 44 struct pci_dev **ioat_dev,
45 int enable_all)
48{ 46{
49 int i; 47 int i;
50 struct pci_dev *memdev, *dmadev; 48 struct pci_dev *memdev, *dmadev;
@@ -69,6 +67,8 @@ static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev,
69 for (i = 0; fbd_ioat_list[i].vendor != 0; i++) { 67 for (i = 0; fbd_ioat_list[i].vendor != 0; i++) {
70 if (dmadev->vendor == fbd_ioat_list[i].vendor && 68 if (dmadev->vendor == fbd_ioat_list[i].vendor &&
71 dmadev->device == fbd_ioat_list[i].ioat_dev) { 69 dmadev->device == fbd_ioat_list[i].ioat_dev) {
70 if (!(fbd_ioat_list[i].enabled || enable_all))
71 continue;
72 if (fbd_dev) 72 if (fbd_dev)
73 *fbd_dev = memdev; 73 *fbd_dev = memdev;
74 if (ioat_dev) 74 if (ioat_dev)
diff --git a/include/linux/ide.h b/include/linux/ide.h
index ff65fffb078f..9fed365a598b 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1109,7 +1109,7 @@ void ide_fix_driveid(u16 *);
1109 1109
1110extern void ide_fixstring(u8 *, const int, const int); 1110extern void ide_fixstring(u8 *, const int, const int);
1111 1111
1112int ide_busy_sleep(ide_hwif_t *, unsigned long, int); 1112int ide_busy_sleep(ide_drive_t *, unsigned long, int);
1113 1113
1114int ide_wait_stat(ide_startstop_t *, ide_drive_t *, u8, u8, unsigned long); 1114int ide_wait_stat(ide_startstop_t *, ide_drive_t *, u8, u8, unsigned long);
1115 1115
diff --git a/include/linux/input.h b/include/linux/input.h
index 0e6ff5de3588..6fed4f6a9c9e 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -656,6 +656,7 @@ struct input_absinfo {
656#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */ 656#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */
657#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ 657#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */
658#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ 658#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */
659#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */
659 660
660#define ABS_MAX 0x3f 661#define ABS_MAX 0x3f
661#define ABS_CNT (ABS_MAX+1) 662#define ABS_CNT (ABS_MAX+1)
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 186ec6ab334d..a47c879e1304 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -1097,6 +1097,32 @@ unsigned long __init node_memmap_size_bytes(int, unsigned long, unsigned long);
1097#define pfn_valid_within(pfn) (1) 1097#define pfn_valid_within(pfn) (1)
1098#endif 1098#endif
1099 1099
1100#ifdef CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
1101/*
1102 * pfn_valid() is meant to be able to tell if a given PFN has valid memmap
1103 * associated with it or not. In FLATMEM, it is expected that holes always
1104 * have valid memmap as long as there is valid PFNs either side of the hole.
1105 * In SPARSEMEM, it is assumed that a valid section has a memmap for the
1106 * entire section.
1107 *
1108 * However, an ARM, and maybe other embedded architectures in the future
1109 * free memmap backing holes to save memory on the assumption the memmap is
1110 * never used. The page_zone linkages are then broken even though pfn_valid()
1111 * returns true. A walker of the full memmap must then do this additional
1112 * check to ensure the memmap they are looking at is sane by making sure
1113 * the zone and PFN linkages are still valid. This is expensive, but walkers
1114 * of the full memmap are extremely rare.
1115 */
1116int memmap_valid_within(unsigned long pfn,
1117 struct page *page, struct zone *zone);
1118#else
1119static inline int memmap_valid_within(unsigned long pfn,
1120 struct page *page, struct zone *zone)
1121{
1122 return 1;
1123}
1124#endif /* CONFIG_ARCH_HAS_HOLES_MEMORYMODEL */
1125
1100#endif /* !__GENERATING_BOUNDS.H */ 1126#endif /* !__GENERATING_BOUNDS.H */
1101#endif /* !__ASSEMBLY__ */ 1127#endif /* !__ASSEMBLY__ */
1102#endif /* _LINUX_MMZONE_H */ 1128#endif /* _LINUX_MMZONE_H */
diff --git a/include/linux/namei.h b/include/linux/namei.h
index fc2e03579877..518098fe63af 100644
--- a/include/linux/namei.h
+++ b/include/linux/namei.h
@@ -69,7 +69,6 @@ extern int path_lookup(const char *, unsigned, struct nameidata *);
69extern int vfs_path_lookup(struct dentry *, struct vfsmount *, 69extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
70 const char *, unsigned int, struct nameidata *); 70 const char *, unsigned int, struct nameidata *);
71 71
72extern int path_lookup_open(int dfd, const char *name, unsigned lookup_flags, struct nameidata *, int open_flags);
73extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry, 72extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
74 int (*open)(struct inode *, struct file *)); 73 int (*open)(struct inode *, struct file *));
75extern struct file *nameidata_to_filp(struct nameidata *nd, int flags); 74extern struct file *nameidata_to_filp(struct nameidata *nd, int flags);
diff --git a/include/linux/net_dropmon.h b/include/linux/net_dropmon.h
index 0217fb81a630..0e2e100c44a2 100644
--- a/include/linux/net_dropmon.h
+++ b/include/linux/net_dropmon.h
@@ -1,6 +1,7 @@
1#ifndef __NET_DROPMON_H 1#ifndef __NET_DROPMON_H
2#define __NET_DROPMON_H 2#define __NET_DROPMON_H
3 3
4#include <linux/types.h>
4#include <linux/netlink.h> 5#include <linux/netlink.h>
5 6
6struct net_dm_drop_point { 7struct net_dm_drop_point {
diff --git a/include/linux/netfilter/nf_conntrack_tcp.h b/include/linux/netfilter/nf_conntrack_tcp.h
index 3066789b972a..b2f384d42611 100644
--- a/include/linux/netfilter/nf_conntrack_tcp.h
+++ b/include/linux/netfilter/nf_conntrack_tcp.h
@@ -35,6 +35,9 @@ enum tcp_conntrack {
35/* Has unacknowledged data */ 35/* Has unacknowledged data */
36#define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10 36#define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10
37 37
38/* The field td_maxack has been set */
39#define IP_CT_TCP_FLAG_MAXACK_SET 0x20
40
38struct nf_ct_tcp_flags { 41struct nf_ct_tcp_flags {
39 __u8 flags; 42 __u8 flags;
40 __u8 mask; 43 __u8 mask;
@@ -46,6 +49,7 @@ struct ip_ct_tcp_state {
46 u_int32_t td_end; /* max of seq + len */ 49 u_int32_t td_end; /* max of seq + len */
47 u_int32_t td_maxend; /* max of ack + max(win, 1) */ 50 u_int32_t td_maxend; /* max of ack + max(win, 1) */
48 u_int32_t td_maxwin; /* max(win) */ 51 u_int32_t td_maxwin; /* max(win) */
52 u_int32_t td_maxack; /* max of ack */
49 u_int8_t td_scale; /* window scale factor */ 53 u_int8_t td_scale; /* window scale factor */
50 u_int8_t flags; /* per direction options */ 54 u_int8_t flags; /* per direction options */
51}; 55};
diff --git a/include/linux/netfilter/xt_LED.h b/include/linux/netfilter/xt_LED.h
index 4c91a0d770d0..f5509e7524d3 100644
--- a/include/linux/netfilter/xt_LED.h
+++ b/include/linux/netfilter/xt_LED.h
@@ -1,6 +1,8 @@
1#ifndef _XT_LED_H 1#ifndef _XT_LED_H
2#define _XT_LED_H 2#define _XT_LED_H
3 3
4#include <linux/types.h>
5
4struct xt_led_info { 6struct xt_led_info {
5 char id[27]; /* Unique ID for this trigger in the LED class */ 7 char id[27]; /* Unique ID for this trigger in the LED class */
6 __u8 always_blink; /* Blink even if the LED is already on */ 8 __u8 always_blink; /* Blink even if the LED is already on */
diff --git a/include/linux/netfilter/xt_cluster.h b/include/linux/netfilter/xt_cluster.h
index 5e0a0d07b526..886682656f09 100644
--- a/include/linux/netfilter/xt_cluster.h
+++ b/include/linux/netfilter/xt_cluster.h
@@ -12,4 +12,6 @@ struct xt_cluster_match_info {
12 u_int32_t flags; 12 u_int32_t flags;
13}; 13};
14 14
15#define XT_CLUSTER_NODES_MAX 32
16
15#endif /* _XT_CLUSTER_MATCH_H */ 17#endif /* _XT_CLUSTER_MATCH_H */
diff --git a/include/linux/parport.h b/include/linux/parport.h
index e1f83c5065c5..38a423ed3c01 100644
--- a/include/linux/parport.h
+++ b/include/linux/parport.h
@@ -324,6 +324,10 @@ struct parport {
324 int spintime; 324 int spintime;
325 atomic_t ref_count; 325 atomic_t ref_count;
326 326
327 unsigned long devflags;
328#define PARPORT_DEVPROC_REGISTERED 0
329 struct pardevice *proc_device; /* Currently register proc device */
330
327 struct list_head full_list; 331 struct list_head full_list;
328 struct parport *slaves[3]; 332 struct parport *slaves[3];
329}; 333};
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 06ba90c211a5..0f71812d67d3 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1406,7 +1406,7 @@
1406#define PCI_DEVICE_ID_VIA_82C598_1 0x8598 1406#define PCI_DEVICE_ID_VIA_82C598_1 0x8598
1407#define PCI_DEVICE_ID_VIA_838X_1 0xB188 1407#define PCI_DEVICE_ID_VIA_838X_1 0xB188
1408#define PCI_DEVICE_ID_VIA_83_87XX_1 0xB198 1408#define PCI_DEVICE_ID_VIA_83_87XX_1 0xB198
1409#define PCI_DEVICE_ID_VIA_C409_IDE 0XC409 1409#define PCI_DEVICE_ID_VIA_VX855_IDE 0xC409
1410#define PCI_DEVICE_ID_VIA_ANON 0xFFFF 1410#define PCI_DEVICE_ID_VIA_ANON 0xFFFF
1411 1411
1412#define PCI_VENDOR_ID_SIEMENS 0x110A 1412#define PCI_VENDOR_ID_SIEMENS 0x110A
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index 72736fd8223c..b67bb5d7b221 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -20,7 +20,6 @@ struct platform_device {
20 struct device dev; 20 struct device dev;
21 u32 num_resources; 21 u32 num_resources;
22 struct resource * resource; 22 struct resource * resource;
23 void *platform_data;
24 23
25 struct platform_device_id *id_entry; 24 struct platform_device_id *id_entry;
26}; 25};
diff --git a/include/linux/reiserfs_fs_sb.h b/include/linux/reiserfs_fs_sb.h
index 6b361d23a499..6473650c28f1 100644
--- a/include/linux/reiserfs_fs_sb.h
+++ b/include/linux/reiserfs_fs_sb.h
@@ -402,7 +402,7 @@ struct reiserfs_sb_info {
402 int reserved_blocks; /* amount of blocks reserved for further allocations */ 402 int reserved_blocks; /* amount of blocks reserved for further allocations */
403 spinlock_t bitmap_lock; /* this lock on now only used to protect reserved_blocks variable */ 403 spinlock_t bitmap_lock; /* this lock on now only used to protect reserved_blocks variable */
404 struct dentry *priv_root; /* root of /.reiserfs_priv */ 404 struct dentry *priv_root; /* root of /.reiserfs_priv */
405 struct dentry *xattr_root; /* root of /.reiserfs_priv/.xa */ 405 struct dentry *xattr_root; /* root of /.reiserfs_priv/xattrs */
406 int j_errno; 406 int j_errno;
407#ifdef CONFIG_QUOTA 407#ifdef CONFIG_QUOTA
408 char *s_qf_names[MAXQUOTAS]; 408 char *s_qf_names[MAXQUOTAS];
@@ -488,7 +488,6 @@ enum reiserfs_mount_options {
488#define reiserfs_data_log(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_LOG)) 488#define reiserfs_data_log(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_LOG))
489#define reiserfs_data_ordered(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_ORDERED)) 489#define reiserfs_data_ordered(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_ORDERED))
490#define reiserfs_data_writeback(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_WRITEBACK)) 490#define reiserfs_data_writeback(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_WRITEBACK))
491#define reiserfs_xattrs(s) ((s)->s_xattr != NULL)
492#define reiserfs_xattrs_user(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_XATTRS_USER)) 491#define reiserfs_xattrs_user(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_XATTRS_USER))
493#define reiserfs_posixacl(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_POSIXACL)) 492#define reiserfs_posixacl(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_POSIXACL))
494#define reiserfs_xattrs_optional(s) (reiserfs_xattrs_user(s) || reiserfs_posixacl(s)) 493#define reiserfs_xattrs_optional(s) (reiserfs_xattrs_user(s) || reiserfs_posixacl(s))
diff --git a/include/linux/reiserfs_xattr.h b/include/linux/reiserfs_xattr.h
index dcae01e63e40..99928dce37ea 100644
--- a/include/linux/reiserfs_xattr.h
+++ b/include/linux/reiserfs_xattr.h
@@ -38,8 +38,10 @@ struct nameidata;
38int reiserfs_xattr_register_handlers(void) __init; 38int reiserfs_xattr_register_handlers(void) __init;
39void reiserfs_xattr_unregister_handlers(void); 39void reiserfs_xattr_unregister_handlers(void);
40int reiserfs_xattr_init(struct super_block *sb, int mount_flags); 40int reiserfs_xattr_init(struct super_block *sb, int mount_flags);
41int reiserfs_lookup_privroot(struct super_block *sb);
41int reiserfs_delete_xattrs(struct inode *inode); 42int reiserfs_delete_xattrs(struct inode *inode);
42int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs); 43int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs);
44int reiserfs_permission(struct inode *inode, int mask);
43 45
44#ifdef CONFIG_REISERFS_FS_XATTR 46#ifdef CONFIG_REISERFS_FS_XATTR
45#define has_xattr_dir(inode) (REISERFS_I(inode)->i_flags & i_has_xattr_dir) 47#define has_xattr_dir(inode) (REISERFS_I(inode)->i_flags & i_has_xattr_dir)
@@ -49,7 +51,6 @@ int reiserfs_setxattr(struct dentry *dentry, const char *name,
49 const void *value, size_t size, int flags); 51 const void *value, size_t size, int flags);
50ssize_t reiserfs_listxattr(struct dentry *dentry, char *buffer, size_t size); 52ssize_t reiserfs_listxattr(struct dentry *dentry, char *buffer, size_t size);
51int reiserfs_removexattr(struct dentry *dentry, const char *name); 53int reiserfs_removexattr(struct dentry *dentry, const char *name);
52int reiserfs_permission(struct inode *inode, int mask);
53 54
54int reiserfs_xattr_get(struct inode *, const char *, void *, size_t); 55int reiserfs_xattr_get(struct inode *, const char *, void *, size_t);
55int reiserfs_xattr_set(struct inode *, const char *, const void *, size_t, int); 56int reiserfs_xattr_set(struct inode *, const char *, const void *, size_t, int);
@@ -97,7 +98,7 @@ static inline size_t reiserfs_xattr_jcreate_nblocks(struct inode *inode)
97 98
98 if ((REISERFS_I(inode)->i_flags & i_has_xattr_dir) == 0) { 99 if ((REISERFS_I(inode)->i_flags & i_has_xattr_dir) == 0) {
99 nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb); 100 nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb);
100 if (REISERFS_SB(inode->i_sb)->xattr_root == NULL) 101 if (!REISERFS_SB(inode->i_sb)->xattr_root->d_inode)
101 nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb); 102 nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb);
102 } 103 }
103 104
@@ -116,8 +117,6 @@ static inline void reiserfs_init_xattr_rwsem(struct inode *inode)
116#define reiserfs_listxattr NULL 117#define reiserfs_listxattr NULL
117#define reiserfs_removexattr NULL 118#define reiserfs_removexattr NULL
118 119
119#define reiserfs_permission NULL
120
121static inline void reiserfs_init_xattr_rwsem(struct inode *inode) 120static inline void reiserfs_init_xattr_rwsem(struct inode *inode)
122{ 121{
123} 122}
diff --git a/include/linux/romfs_fs.h b/include/linux/romfs_fs.h
index e20bbf9eb365..c490fbc43fe2 100644
--- a/include/linux/romfs_fs.h
+++ b/include/linux/romfs_fs.h
@@ -53,9 +53,4 @@ struct romfs_inode {
53#define ROMFH_PAD (ROMFH_SIZE-1) 53#define ROMFH_PAD (ROMFH_SIZE-1)
54#define ROMFH_MASK (~ROMFH_PAD) 54#define ROMFH_MASK (~ROMFH_PAD)
55 55
56#ifdef __KERNEL__
57
58/* Not much now */
59
60#endif /* __KERNEL__ */
61#endif 56#endif
diff --git a/include/linux/swap.h b/include/linux/swap.h
index 62d81435347a..d476aad3ff57 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -437,6 +437,11 @@ static inline int mem_cgroup_cache_charge_swapin(struct page *page,
437 return 0; 437 return 0;
438} 438}
439 439
440static inline void
441mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent)
442{
443}
444
440#endif /* CONFIG_SWAP */ 445#endif /* CONFIG_SWAP */
441#endif /* __KERNEL__*/ 446#endif /* __KERNEL__*/
442#endif /* _LINUX_SWAP_H */ 447#endif /* _LINUX_SWAP_H */
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 40617c1d8976..30520844b8da 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -433,6 +433,7 @@ asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg);
433asmlinkage long sys_fcntl64(unsigned int fd, 433asmlinkage long sys_fcntl64(unsigned int fd,
434 unsigned int cmd, unsigned long arg); 434 unsigned int cmd, unsigned long arg);
435#endif 435#endif
436asmlinkage long sys_pipe2(int __user *fildes, int flags);
436asmlinkage long sys_dup(unsigned int fildes); 437asmlinkage long sys_dup(unsigned int fildes);
437asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd); 438asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd);
438asmlinkage long sys_dup3(unsigned int oldfd, unsigned int newfd, int flags); 439asmlinkage long sys_dup3(unsigned int oldfd, unsigned int newfd, int flags);
diff --git a/include/linux/tracehook.h b/include/linux/tracehook.h
index c7aa154f4bfc..eb96603d92db 100644
--- a/include/linux/tracehook.h
+++ b/include/linux/tracehook.h
@@ -259,14 +259,12 @@ static inline void tracehook_finish_clone(struct task_struct *child,
259 259
260/** 260/**
261 * tracehook_report_clone - in parent, new child is about to start running 261 * tracehook_report_clone - in parent, new child is about to start running
262 * @trace: return value from tracehook_prepare_clone()
263 * @regs: parent's user register state 262 * @regs: parent's user register state
264 * @clone_flags: flags from parent's system call 263 * @clone_flags: flags from parent's system call
265 * @pid: new child's PID in the parent's namespace 264 * @pid: new child's PID in the parent's namespace
266 * @child: new child task 265 * @child: new child task
267 * 266 *
268 * Called after a child is set up, but before it has been started 267 * Called after a child is set up, but before it has been started running.
269 * running. @trace is the value returned by tracehook_prepare_clone().
270 * This is not a good place to block, because the child has not started 268 * This is not a good place to block, because the child has not started
271 * yet. Suspend the child here if desired, and then block in 269 * yet. Suspend the child here if desired, and then block in
272 * tracehook_report_clone_complete(). This must prevent the child from 270 * tracehook_report_clone_complete(). This must prevent the child from
@@ -276,13 +274,14 @@ static inline void tracehook_finish_clone(struct task_struct *child,
276 * 274 *
277 * Called with no locks held, but the child cannot run until this returns. 275 * Called with no locks held, but the child cannot run until this returns.
278 */ 276 */
279static inline void tracehook_report_clone(int trace, struct pt_regs *regs, 277static inline void tracehook_report_clone(struct pt_regs *regs,
280 unsigned long clone_flags, 278 unsigned long clone_flags,
281 pid_t pid, struct task_struct *child) 279 pid_t pid, struct task_struct *child)
282{ 280{
283 if (unlikely(trace) || unlikely(clone_flags & CLONE_PTRACE)) { 281 if (unlikely(task_ptrace(child))) {
284 /* 282 /*
285 * The child starts up with an immediate SIGSTOP. 283 * It doesn't matter who attached/attaching to this
284 * task, the pending SIGSTOP is right in any case.
286 */ 285 */
287 sigaddset(&child->pending.signal, SIGSTOP); 286 sigaddset(&child->pending.signal, SIGSTOP);
288 set_tsk_thread_flag(child, TIF_SIGPENDING); 287 set_tsk_thread_flag(child, TIF_SIGPENDING);
diff --git a/include/linux/writeback.h b/include/linux/writeback.h
index 9c1ed1fb6ddb..93445477f86a 100644
--- a/include/linux/writeback.h
+++ b/include/linux/writeback.h
@@ -168,8 +168,6 @@ void writeback_set_ratelimit(void);
168/* pdflush.c */ 168/* pdflush.c */
169extern int nr_pdflush_threads; /* Global so it can be exported to sysctl 169extern int nr_pdflush_threads; /* Global so it can be exported to sysctl
170 read-only. */ 170 read-only. */
171extern int nr_pdflush_threads_max; /* Global so it can be exported to sysctl */
172extern int nr_pdflush_threads_min; /* Global so it can be exported to sysctl */
173 171
174 172
175#endif /* WRITEBACK_H */ 173#endif /* WRITEBACK_H */
diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
index c9184f756cad..68a8d873bbd9 100644
--- a/include/scsi/scsi_transport_fc.h
+++ b/include/scsi/scsi_transport_fc.h
@@ -680,7 +680,7 @@ fc_remote_port_chkready(struct fc_rport *rport)
680 if (rport->roles & FC_PORT_ROLE_FCP_TARGET) 680 if (rport->roles & FC_PORT_ROLE_FCP_TARGET)
681 result = 0; 681 result = 0;
682 else if (rport->flags & FC_RPORT_DEVLOSS_PENDING) 682 else if (rport->flags & FC_RPORT_DEVLOSS_PENDING)
683 result = DID_TRANSPORT_DISRUPTED << 16; 683 result = DID_IMM_RETRY << 16;
684 else 684 else
685 result = DID_NO_CONNECT << 16; 685 result = DID_NO_CONNECT << 16;
686 break; 686 break;
@@ -688,7 +688,7 @@ fc_remote_port_chkready(struct fc_rport *rport)
688 if (rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT) 688 if (rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT)
689 result = DID_TRANSPORT_FAILFAST << 16; 689 result = DID_TRANSPORT_FAILFAST << 16;
690 else 690 else
691 result = DID_TRANSPORT_DISRUPTED << 16; 691 result = DID_IMM_RETRY << 16;
692 break; 692 break;
693 default: 693 default:
694 result = DID_NO_CONNECT << 16; 694 result = DID_NO_CONNECT << 16;
diff --git a/include/sound/version.h b/include/sound/version.h
index a7e74e23ad2e..456f1359e1c0 100644
--- a/include/sound/version.h
+++ b/include/sound/version.h
@@ -1,3 +1,3 @@
1/* include/version.h */ 1/* include/version.h */
2#define CONFIG_SND_VERSION "1.0.19" 2#define CONFIG_SND_VERSION "1.0.20"
3#define CONFIG_SND_DATE "" 3#define CONFIG_SND_DATE ""
diff --git a/init/main.c b/init/main.c
index 3bbf93be744c..d721dad05dd7 100644
--- a/init/main.c
+++ b/init/main.c
@@ -566,8 +566,7 @@ asmlinkage void __init start_kernel(void)
566 tick_init(); 566 tick_init();
567 boot_cpu_init(); 567 boot_cpu_init();
568 page_address_init(); 568 page_address_init();
569 printk(KERN_NOTICE); 569 printk(KERN_NOTICE "%s", linux_banner);
570 printk(linux_banner);
571 setup_arch(&command_line); 570 setup_arch(&command_line);
572 mm_init_owner(&init_mm, &init_task); 571 mm_init_owner(&init_mm, &init_task);
573 setup_command_line(command_line); 572 setup_command_line(command_line);
diff --git a/ipc/shm.c b/ipc/shm.c
index faa46da99ebe..425971600485 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -969,10 +969,13 @@ SYSCALL_DEFINE3(shmat, int, shmid, char __user *, shmaddr, int, shmflg)
969SYSCALL_DEFINE1(shmdt, char __user *, shmaddr) 969SYSCALL_DEFINE1(shmdt, char __user *, shmaddr)
970{ 970{
971 struct mm_struct *mm = current->mm; 971 struct mm_struct *mm = current->mm;
972 struct vm_area_struct *vma, *next; 972 struct vm_area_struct *vma;
973 unsigned long addr = (unsigned long)shmaddr; 973 unsigned long addr = (unsigned long)shmaddr;
974 loff_t size = 0;
975 int retval = -EINVAL; 974 int retval = -EINVAL;
975#ifdef CONFIG_MMU
976 loff_t size = 0;
977 struct vm_area_struct *next;
978#endif
976 979
977 if (addr & ~PAGE_MASK) 980 if (addr & ~PAGE_MASK)
978 return retval; 981 return retval;
diff --git a/kernel/async.c b/kernel/async.c
index 968ef9457d4e..27235f5de198 100644
--- a/kernel/async.c
+++ b/kernel/async.c
@@ -92,19 +92,18 @@ extern int initcall_debug;
92static async_cookie_t __lowest_in_progress(struct list_head *running) 92static async_cookie_t __lowest_in_progress(struct list_head *running)
93{ 93{
94 struct async_entry *entry; 94 struct async_entry *entry;
95
95 if (!list_empty(running)) { 96 if (!list_empty(running)) {
96 entry = list_first_entry(running, 97 entry = list_first_entry(running,
97 struct async_entry, list); 98 struct async_entry, list);
98 return entry->cookie; 99 return entry->cookie;
99 } else if (!list_empty(&async_pending)) {
100 entry = list_first_entry(&async_pending,
101 struct async_entry, list);
102 return entry->cookie;
103 } else {
104 /* nothing in progress... next_cookie is "infinity" */
105 return next_cookie;
106 } 100 }
107 101
102 list_for_each_entry(entry, &async_pending, list)
103 if (entry->running == running)
104 return entry->cookie;
105
106 return next_cookie; /* "infinity" value */
108} 107}
109 108
110static async_cookie_t lowest_in_progress(struct list_head *running) 109static async_cookie_t lowest_in_progress(struct list_head *running)
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 382109b5baeb..a7267bfd3765 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1133,8 +1133,7 @@ static int cgroup_get_sb(struct file_system_type *fs_type,
1133 free_cg_links: 1133 free_cg_links:
1134 free_cg_links(&tmp_cg_links); 1134 free_cg_links(&tmp_cg_links);
1135 drop_new_super: 1135 drop_new_super:
1136 up_write(&sb->s_umount); 1136 deactivate_locked_super(sb);
1137 deactivate_super(sb);
1138 return ret; 1137 return ret;
1139} 1138}
1140 1139
diff --git a/kernel/fork.c b/kernel/fork.c
index b9e2edd00726..875ffbdd96d0 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1409,7 +1409,7 @@ long do_fork(unsigned long clone_flags,
1409 } 1409 }
1410 1410
1411 audit_finish_fork(p); 1411 audit_finish_fork(p);
1412 tracehook_report_clone(trace, regs, clone_flags, nr, p); 1412 tracehook_report_clone(regs, clone_flags, nr, p);
1413 1413
1414 /* 1414 /*
1415 * We set PF_STARTING at creation in case tracing wants to 1415 * We set PF_STARTING at creation in case tracing wants to
diff --git a/kernel/futex.c b/kernel/futex.c
index eef8cd26b5e5..d546b2d53a62 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -193,6 +193,7 @@ static void drop_futex_key_refs(union futex_key *key)
193 * @uaddr: virtual address of the futex 193 * @uaddr: virtual address of the futex
194 * @fshared: 0 for a PROCESS_PRIVATE futex, 1 for PROCESS_SHARED 194 * @fshared: 0 for a PROCESS_PRIVATE futex, 1 for PROCESS_SHARED
195 * @key: address where result is stored. 195 * @key: address where result is stored.
196 * @rw: mapping needs to be read/write (values: VERIFY_READ, VERIFY_WRITE)
196 * 197 *
197 * Returns a negative error code or 0 198 * Returns a negative error code or 0
198 * The key words are stored in *key on success. 199 * The key words are stored in *key on success.
@@ -203,7 +204,8 @@ static void drop_futex_key_refs(union futex_key *key)
203 * 204 *
204 * lock_page() might sleep, the caller should not hold a spinlock. 205 * lock_page() might sleep, the caller should not hold a spinlock.
205 */ 206 */
206static int get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key) 207static int
208get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
207{ 209{
208 unsigned long address = (unsigned long)uaddr; 210 unsigned long address = (unsigned long)uaddr;
209 struct mm_struct *mm = current->mm; 211 struct mm_struct *mm = current->mm;
@@ -226,7 +228,7 @@ static int get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key)
226 * but access_ok() should be faster than find_vma() 228 * but access_ok() should be faster than find_vma()
227 */ 229 */
228 if (!fshared) { 230 if (!fshared) {
229 if (unlikely(!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))) 231 if (unlikely(!access_ok(rw, uaddr, sizeof(u32))))
230 return -EFAULT; 232 return -EFAULT;
231 key->private.mm = mm; 233 key->private.mm = mm;
232 key->private.address = address; 234 key->private.address = address;
@@ -235,7 +237,7 @@ static int get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key)
235 } 237 }
236 238
237again: 239again:
238 err = get_user_pages_fast(address, 1, 0, &page); 240 err = get_user_pages_fast(address, 1, rw == VERIFY_WRITE, &page);
239 if (err < 0) 241 if (err < 0)
240 return err; 242 return err;
241 243
@@ -677,7 +679,7 @@ static int futex_wake(u32 __user *uaddr, int fshared, int nr_wake, u32 bitset)
677 if (!bitset) 679 if (!bitset)
678 return -EINVAL; 680 return -EINVAL;
679 681
680 ret = get_futex_key(uaddr, fshared, &key); 682 ret = get_futex_key(uaddr, fshared, &key, VERIFY_READ);
681 if (unlikely(ret != 0)) 683 if (unlikely(ret != 0))
682 goto out; 684 goto out;
683 685
@@ -723,10 +725,10 @@ futex_wake_op(u32 __user *uaddr1, int fshared, u32 __user *uaddr2,
723 int ret, op_ret; 725 int ret, op_ret;
724 726
725retry: 727retry:
726 ret = get_futex_key(uaddr1, fshared, &key1); 728 ret = get_futex_key(uaddr1, fshared, &key1, VERIFY_READ);
727 if (unlikely(ret != 0)) 729 if (unlikely(ret != 0))
728 goto out; 730 goto out;
729 ret = get_futex_key(uaddr2, fshared, &key2); 731 ret = get_futex_key(uaddr2, fshared, &key2, VERIFY_WRITE);
730 if (unlikely(ret != 0)) 732 if (unlikely(ret != 0))
731 goto out_put_key1; 733 goto out_put_key1;
732 734
@@ -814,10 +816,10 @@ static int futex_requeue(u32 __user *uaddr1, int fshared, u32 __user *uaddr2,
814 int ret, drop_count = 0; 816 int ret, drop_count = 0;
815 817
816retry: 818retry:
817 ret = get_futex_key(uaddr1, fshared, &key1); 819 ret = get_futex_key(uaddr1, fshared, &key1, VERIFY_READ);
818 if (unlikely(ret != 0)) 820 if (unlikely(ret != 0))
819 goto out; 821 goto out;
820 ret = get_futex_key(uaddr2, fshared, &key2); 822 ret = get_futex_key(uaddr2, fshared, &key2, VERIFY_READ);
821 if (unlikely(ret != 0)) 823 if (unlikely(ret != 0))
822 goto out_put_key1; 824 goto out_put_key1;
823 825
@@ -1140,7 +1142,7 @@ static int futex_wait(u32 __user *uaddr, int fshared,
1140 q.bitset = bitset; 1142 q.bitset = bitset;
1141retry: 1143retry:
1142 q.key = FUTEX_KEY_INIT; 1144 q.key = FUTEX_KEY_INIT;
1143 ret = get_futex_key(uaddr, fshared, &q.key); 1145 ret = get_futex_key(uaddr, fshared, &q.key, VERIFY_READ);
1144 if (unlikely(ret != 0)) 1146 if (unlikely(ret != 0))
1145 goto out; 1147 goto out;
1146 1148
@@ -1330,7 +1332,7 @@ static int futex_lock_pi(u32 __user *uaddr, int fshared,
1330 q.pi_state = NULL; 1332 q.pi_state = NULL;
1331retry: 1333retry:
1332 q.key = FUTEX_KEY_INIT; 1334 q.key = FUTEX_KEY_INIT;
1333 ret = get_futex_key(uaddr, fshared, &q.key); 1335 ret = get_futex_key(uaddr, fshared, &q.key, VERIFY_WRITE);
1334 if (unlikely(ret != 0)) 1336 if (unlikely(ret != 0))
1335 goto out; 1337 goto out;
1336 1338
@@ -1594,7 +1596,7 @@ retry:
1594 if ((uval & FUTEX_TID_MASK) != task_pid_vnr(current)) 1596 if ((uval & FUTEX_TID_MASK) != task_pid_vnr(current))
1595 return -EPERM; 1597 return -EPERM;
1596 1598
1597 ret = get_futex_key(uaddr, fshared, &key); 1599 ret = get_futex_key(uaddr, fshared, &key, VERIFY_WRITE);
1598 if (unlikely(ret != 0)) 1600 if (unlikely(ret != 0))
1599 goto out; 1601 goto out;
1600 1602
diff --git a/kernel/kexec.c b/kernel/kexec.c
index 5a758c6e4950..e4983770913b 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -1451,7 +1451,6 @@ int kernel_kexec(void)
1451 error = device_suspend(PMSG_FREEZE); 1451 error = device_suspend(PMSG_FREEZE);
1452 if (error) 1452 if (error)
1453 goto Resume_console; 1453 goto Resume_console;
1454 device_pm_lock();
1455 /* At this point, device_suspend() has been called, 1454 /* At this point, device_suspend() has been called,
1456 * but *not* device_power_down(). We *must* 1455 * but *not* device_power_down(). We *must*
1457 * device_power_down() now. Otherwise, drivers for 1456 * device_power_down() now. Otherwise, drivers for
@@ -1489,7 +1488,6 @@ int kernel_kexec(void)
1489 enable_nonboot_cpus(); 1488 enable_nonboot_cpus();
1490 device_power_up(PMSG_RESTORE); 1489 device_power_up(PMSG_RESTORE);
1491 Resume_devices: 1490 Resume_devices:
1492 device_pm_unlock();
1493 device_resume(PMSG_RESTORE); 1491 device_resume(PMSG_RESTORE);
1494 Resume_console: 1492 Resume_console:
1495 resume_console(); 1493 resume_console();
diff --git a/kernel/kgdb.c b/kernel/kgdb.c
index e4dcfb2272a4..9147a3190c9d 100644
--- a/kernel/kgdb.c
+++ b/kernel/kgdb.c
@@ -1583,8 +1583,8 @@ static void sysrq_handle_gdb(int key, struct tty_struct *tty)
1583 1583
1584static struct sysrq_key_op sysrq_gdb_op = { 1584static struct sysrq_key_op sysrq_gdb_op = {
1585 .handler = sysrq_handle_gdb, 1585 .handler = sysrq_handle_gdb,
1586 .help_msg = "Gdb", 1586 .help_msg = "debug(G)",
1587 .action_msg = "GDB", 1587 .action_msg = "DEBUG",
1588}; 1588};
1589#endif 1589#endif
1590 1590
diff --git a/kernel/kmod.c b/kernel/kmod.c
index b750675251e5..7e95bedb2bfc 100644
--- a/kernel/kmod.c
+++ b/kernel/kmod.c
@@ -370,8 +370,10 @@ struct subprocess_info *call_usermodehelper_setup(char *path, char **argv,
370 sub_info->argv = argv; 370 sub_info->argv = argv;
371 sub_info->envp = envp; 371 sub_info->envp = envp;
372 sub_info->cred = prepare_usermodehelper_creds(); 372 sub_info->cred = prepare_usermodehelper_creds();
373 if (!sub_info->cred) 373 if (!sub_info->cred) {
374 kfree(sub_info);
374 return NULL; 375 return NULL;
376 }
375 377
376 out: 378 out:
377 return sub_info; 379 return sub_info;
diff --git a/kernel/lockdep_internals.h b/kernel/lockdep_internals.h
index a2cc7e9a6e84..699a2ac3a0d7 100644
--- a/kernel/lockdep_internals.h
+++ b/kernel/lockdep_internals.h
@@ -54,9 +54,9 @@ enum {
54 * table (if it's not there yet), and we check it for lock order 54 * table (if it's not there yet), and we check it for lock order
55 * conflicts and deadlocks. 55 * conflicts and deadlocks.
56 */ 56 */
57#define MAX_LOCKDEP_ENTRIES 8192UL 57#define MAX_LOCKDEP_ENTRIES 16384UL
58 58
59#define MAX_LOCKDEP_CHAINS_BITS 14 59#define MAX_LOCKDEP_CHAINS_BITS 15
60#define MAX_LOCKDEP_CHAINS (1UL << MAX_LOCKDEP_CHAINS_BITS) 60#define MAX_LOCKDEP_CHAINS (1UL << MAX_LOCKDEP_CHAINS_BITS)
61 61
62#define MAX_LOCKDEP_CHAIN_HLOCKS (MAX_LOCKDEP_CHAINS*5) 62#define MAX_LOCKDEP_CHAIN_HLOCKS (MAX_LOCKDEP_CHAINS*5)
diff --git a/kernel/panic.c b/kernel/panic.c
index 874ecf1307ae..984b3ecbd72c 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -340,39 +340,44 @@ void oops_exit(void)
340} 340}
341 341
342#ifdef WANT_WARN_ON_SLOWPATH 342#ifdef WANT_WARN_ON_SLOWPATH
343void warn_slowpath_fmt(const char *file, int line, const char *fmt, ...) 343struct slowpath_args {
344{ 344 const char *fmt;
345 va_list args; 345 va_list args;
346 char function[KSYM_SYMBOL_LEN]; 346};
347 unsigned long caller = (unsigned long)__builtin_return_address(0);
348 const char *board;
349 347
350 sprint_symbol(function, caller); 348static void warn_slowpath_common(const char *file, int line, void *caller, struct slowpath_args *args)
349{
350 const char *board;
351 351
352 printk(KERN_WARNING "------------[ cut here ]------------\n"); 352 printk(KERN_WARNING "------------[ cut here ]------------\n");
353 printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file, 353 printk(KERN_WARNING "WARNING: at %s:%d %pS()\n", file, line, caller);
354 line, function);
355 board = dmi_get_system_info(DMI_PRODUCT_NAME); 354 board = dmi_get_system_info(DMI_PRODUCT_NAME);
356 if (board) 355 if (board)
357 printk(KERN_WARNING "Hardware name: %s\n", board); 356 printk(KERN_WARNING "Hardware name: %s\n", board);
358 357
359 if (*fmt) { 358 if (args)
360 va_start(args, fmt); 359 vprintk(args->fmt, args->args);
361 vprintk(fmt, args);
362 va_end(args);
363 }
364 360
365 print_modules(); 361 print_modules();
366 dump_stack(); 362 dump_stack();
367 print_oops_end_marker(); 363 print_oops_end_marker();
368 add_taint(TAINT_WARN); 364 add_taint(TAINT_WARN);
369} 365}
366
367void warn_slowpath_fmt(const char *file, int line, const char *fmt, ...)
368{
369 struct slowpath_args args;
370
371 args.fmt = fmt;
372 va_start(args.args, fmt);
373 warn_slowpath_common(file, line, __builtin_return_address(0), &args);
374 va_end(args.args);
375}
370EXPORT_SYMBOL(warn_slowpath_fmt); 376EXPORT_SYMBOL(warn_slowpath_fmt);
371 377
372void warn_slowpath_null(const char *file, int line) 378void warn_slowpath_null(const char *file, int line)
373{ 379{
374 static const char *empty = ""; 380 warn_slowpath_common(file, line, __builtin_return_address(0), NULL);
375 warn_slowpath_fmt(file, line, empty);
376} 381}
377EXPORT_SYMBOL(warn_slowpath_null); 382EXPORT_SYMBOL(warn_slowpath_null);
378#endif 383#endif
diff --git a/kernel/power/disk.c b/kernel/power/disk.c
index e71ca9cd81b2..5cb080e7eebd 100644
--- a/kernel/power/disk.c
+++ b/kernel/power/disk.c
@@ -215,8 +215,6 @@ static int create_image(int platform_mode)
215 if (error) 215 if (error)
216 return error; 216 return error;
217 217
218 device_pm_lock();
219
220 /* At this point, device_suspend() has been called, but *not* 218 /* At this point, device_suspend() has been called, but *not*
221 * device_power_down(). We *must* call device_power_down() now. 219 * device_power_down(). We *must* call device_power_down() now.
222 * Otherwise, drivers for some devices (e.g. interrupt controllers) 220 * Otherwise, drivers for some devices (e.g. interrupt controllers)
@@ -227,7 +225,7 @@ static int create_image(int platform_mode)
227 if (error) { 225 if (error) {
228 printk(KERN_ERR "PM: Some devices failed to power down, " 226 printk(KERN_ERR "PM: Some devices failed to power down, "
229 "aborting hibernation\n"); 227 "aborting hibernation\n");
230 goto Unlock; 228 return error;
231 } 229 }
232 230
233 error = platform_pre_snapshot(platform_mode); 231 error = platform_pre_snapshot(platform_mode);
@@ -241,9 +239,9 @@ static int create_image(int platform_mode)
241 239
242 local_irq_disable(); 240 local_irq_disable();
243 241
244 sysdev_suspend(PMSG_FREEZE); 242 error = sysdev_suspend(PMSG_FREEZE);
245 if (error) { 243 if (error) {
246 printk(KERN_ERR "PM: Some devices failed to power down, " 244 printk(KERN_ERR "PM: Some system devices failed to power down, "
247 "aborting hibernation\n"); 245 "aborting hibernation\n");
248 goto Enable_irqs; 246 goto Enable_irqs;
249 } 247 }
@@ -280,9 +278,6 @@ static int create_image(int platform_mode)
280 device_power_up(in_suspend ? 278 device_power_up(in_suspend ?
281 (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); 279 (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE);
282 280
283 Unlock:
284 device_pm_unlock();
285
286 return error; 281 return error;
287} 282}
288 283
@@ -344,13 +339,11 @@ static int resume_target_kernel(bool platform_mode)
344{ 339{
345 int error; 340 int error;
346 341
347 device_pm_lock();
348
349 error = device_power_down(PMSG_QUIESCE); 342 error = device_power_down(PMSG_QUIESCE);
350 if (error) { 343 if (error) {
351 printk(KERN_ERR "PM: Some devices failed to power down, " 344 printk(KERN_ERR "PM: Some devices failed to power down, "
352 "aborting resume\n"); 345 "aborting resume\n");
353 goto Unlock; 346 return error;
354 } 347 }
355 348
356 error = platform_pre_restore(platform_mode); 349 error = platform_pre_restore(platform_mode);
@@ -403,9 +396,6 @@ static int resume_target_kernel(bool platform_mode)
403 396
404 device_power_up(PMSG_RECOVER); 397 device_power_up(PMSG_RECOVER);
405 398
406 Unlock:
407 device_pm_unlock();
408
409 return error; 399 return error;
410} 400}
411 401
@@ -464,11 +454,9 @@ int hibernation_platform_enter(void)
464 goto Resume_devices; 454 goto Resume_devices;
465 } 455 }
466 456
467 device_pm_lock();
468
469 error = device_power_down(PMSG_HIBERNATE); 457 error = device_power_down(PMSG_HIBERNATE);
470 if (error) 458 if (error)
471 goto Unlock; 459 goto Resume_devices;
472 460
473 error = hibernation_ops->prepare(); 461 error = hibernation_ops->prepare();
474 if (error) 462 if (error)
@@ -493,9 +481,6 @@ int hibernation_platform_enter(void)
493 481
494 device_power_up(PMSG_RESTORE); 482 device_power_up(PMSG_RESTORE);
495 483
496 Unlock:
497 device_pm_unlock();
498
499 Resume_devices: 484 Resume_devices:
500 entering_platform_hibernation = false; 485 entering_platform_hibernation = false;
501 device_resume(PMSG_RESTORE); 486 device_resume(PMSG_RESTORE);
diff --git a/kernel/power/main.c b/kernel/power/main.c
index f99ed6a75eac..868028280d13 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -289,12 +289,10 @@ static int suspend_enter(suspend_state_t state)
289{ 289{
290 int error; 290 int error;
291 291
292 device_pm_lock();
293
294 if (suspend_ops->prepare) { 292 if (suspend_ops->prepare) {
295 error = suspend_ops->prepare(); 293 error = suspend_ops->prepare();
296 if (error) 294 if (error)
297 goto Done; 295 return error;
298 } 296 }
299 297
300 error = device_power_down(PMSG_SUSPEND); 298 error = device_power_down(PMSG_SUSPEND);
@@ -343,9 +341,6 @@ static int suspend_enter(suspend_state_t state)
343 if (suspend_ops->finish) 341 if (suspend_ops->finish)
344 suspend_ops->finish(); 342 suspend_ops->finish();
345 343
346 Done:
347 device_pm_unlock();
348
349 return error; 344 return error;
350} 345}
351 346
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 0692ab5a0d67..42c317874cfa 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -304,6 +304,8 @@ int ptrace_detach(struct task_struct *child, unsigned int data)
304 if (child->ptrace) { 304 if (child->ptrace) {
305 child->exit_code = data; 305 child->exit_code = data;
306 dead = __ptrace_detach(current, child); 306 dead = __ptrace_detach(current, child);
307 if (!child->exit_state)
308 wake_up_process(child);
307 } 309 }
308 write_unlock_irq(&tasklist_lock); 310 write_unlock_irq(&tasklist_lock);
309 311
diff --git a/kernel/sched_clock.c b/kernel/sched_clock.c
index 819f17ac796e..e1d16c9a7680 100644
--- a/kernel/sched_clock.c
+++ b/kernel/sched_clock.c
@@ -38,7 +38,8 @@
38 */ 38 */
39unsigned long long __attribute__((weak)) sched_clock(void) 39unsigned long long __attribute__((weak)) sched_clock(void)
40{ 40{
41 return (unsigned long long)jiffies * (NSEC_PER_SEC / HZ); 41 return (unsigned long long)(jiffies - INITIAL_JIFFIES)
42 * (NSEC_PER_SEC / HZ);
42} 43}
43 44
44static __read_mostly int sched_clock_running; 45static __read_mostly int sched_clock_running;
diff --git a/kernel/sched_cpupri.c b/kernel/sched_cpupri.c
index cdd3c89574cd..344712a5e3ed 100644
--- a/kernel/sched_cpupri.c
+++ b/kernel/sched_cpupri.c
@@ -165,7 +165,7 @@ int __init_refok cpupri_init(struct cpupri *cp, bool bootmem)
165 vec->count = 0; 165 vec->count = 0;
166 if (bootmem) 166 if (bootmem)
167 alloc_bootmem_cpumask_var(&vec->mask); 167 alloc_bootmem_cpumask_var(&vec->mask);
168 else if (!alloc_cpumask_var(&vec->mask, GFP_KERNEL)) 168 else if (!zalloc_cpumask_var(&vec->mask, GFP_KERNEL))
169 goto cleanup; 169 goto cleanup;
170 } 170 }
171 171
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
index f2c66f8f9712..9bf0d2a73045 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -1591,7 +1591,7 @@ static inline void init_sched_rt_class(void)
1591 unsigned int i; 1591 unsigned int i;
1592 1592
1593 for_each_possible_cpu(i) 1593 for_each_possible_cpu(i)
1594 alloc_cpumask_var_node(&per_cpu(local_cpu_mask, i), 1594 zalloc_cpumask_var_node(&per_cpu(local_cpu_mask, i),
1595 GFP_KERNEL, cpu_to_node(i)); 1595 GFP_KERNEL, cpu_to_node(i));
1596} 1596}
1597#endif /* CONFIG_SMP */ 1597#endif /* CONFIG_SMP */
diff --git a/kernel/smp.c b/kernel/smp.c
index 858baac568ee..ad63d8501207 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -52,7 +52,7 @@ hotplug_cfd(struct notifier_block *nfb, unsigned long action, void *hcpu)
52 switch (action) { 52 switch (action) {
53 case CPU_UP_PREPARE: 53 case CPU_UP_PREPARE:
54 case CPU_UP_PREPARE_FROZEN: 54 case CPU_UP_PREPARE_FROZEN:
55 if (!alloc_cpumask_var_node(&cfd->cpumask, GFP_KERNEL, 55 if (!zalloc_cpumask_var_node(&cfd->cpumask, GFP_KERNEL,
56 cpu_to_node(cpu))) 56 cpu_to_node(cpu)))
57 return NOTIFY_BAD; 57 return NOTIFY_BAD;
58 break; 58 break;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index ea78fa101ad6..b2970d56fb76 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -101,7 +101,6 @@ static int __maybe_unused one = 1;
101static int __maybe_unused two = 2; 101static int __maybe_unused two = 2;
102static unsigned long one_ul = 1; 102static unsigned long one_ul = 1;
103static int one_hundred = 100; 103static int one_hundred = 100;
104static int one_thousand = 1000;
105 104
106/* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */ 105/* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
107static unsigned long dirty_bytes_min = 2 * PAGE_SIZE; 106static unsigned long dirty_bytes_min = 2 * PAGE_SIZE;
@@ -1034,28 +1033,6 @@ static struct ctl_table vm_table[] = {
1034 .proc_handler = &proc_dointvec, 1033 .proc_handler = &proc_dointvec,
1035 }, 1034 },
1036 { 1035 {
1037 .ctl_name = CTL_UNNUMBERED,
1038 .procname = "nr_pdflush_threads_min",
1039 .data = &nr_pdflush_threads_min,
1040 .maxlen = sizeof nr_pdflush_threads_min,
1041 .mode = 0644 /* read-write */,
1042 .proc_handler = &proc_dointvec_minmax,
1043 .strategy = &sysctl_intvec,
1044 .extra1 = &one,
1045 .extra2 = &nr_pdflush_threads_max,
1046 },
1047 {
1048 .ctl_name = CTL_UNNUMBERED,
1049 .procname = "nr_pdflush_threads_max",
1050 .data = &nr_pdflush_threads_max,
1051 .maxlen = sizeof nr_pdflush_threads_max,
1052 .mode = 0644 /* read-write */,
1053 .proc_handler = &proc_dointvec_minmax,
1054 .strategy = &sysctl_intvec,
1055 .extra1 = &nr_pdflush_threads_min,
1056 .extra2 = &one_thousand,
1057 },
1058 {
1059 .ctl_name = VM_SWAPPINESS, 1036 .ctl_name = VM_SWAPPINESS,
1060 .procname = "swappiness", 1037 .procname = "swappiness",
1061 .data = &vm_swappiness, 1038 .data = &vm_swappiness,
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index a884c09006c4..cda81ec58d9f 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -2380,7 +2380,7 @@ static const char readme_msg[] =
2380 "# echo print-parent > /debug/tracing/trace_options\n" 2380 "# echo print-parent > /debug/tracing/trace_options\n"
2381 "# echo 1 > /debug/tracing/tracing_enabled\n" 2381 "# echo 1 > /debug/tracing/tracing_enabled\n"
2382 "# cat /debug/tracing/trace > /tmp/trace.txt\n" 2382 "# cat /debug/tracing/trace > /tmp/trace.txt\n"
2383 "echo 0 > /debug/tracing/tracing_enabled\n" 2383 "# echo 0 > /debug/tracing/tracing_enabled\n"
2384; 2384;
2385 2385
2386static ssize_t 2386static ssize_t
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 812c28207baf..6cdcf38f2da9 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -891,7 +891,6 @@ config DYNAMIC_DEBUG
891 default n 891 default n
892 depends on PRINTK 892 depends on PRINTK
893 depends on DEBUG_FS 893 depends on DEBUG_FS
894 select PRINTK_DEBUG
895 help 894 help
896 895
897 Compiles debug level messages into the kernel, which would not 896 Compiles debug level messages into the kernel, which would not
diff --git a/lib/cpumask.c b/lib/cpumask.c
index 1f71b97de0f9..eb23aaa0c7b8 100644
--- a/lib/cpumask.c
+++ b/lib/cpumask.c
@@ -119,6 +119,12 @@ bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node)
119} 119}
120EXPORT_SYMBOL(alloc_cpumask_var_node); 120EXPORT_SYMBOL(alloc_cpumask_var_node);
121 121
122bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node)
123{
124 return alloc_cpumask_var_node(mask, flags | __GFP_ZERO, node);
125}
126EXPORT_SYMBOL(zalloc_cpumask_var_node);
127
122/** 128/**
123 * alloc_cpumask_var - allocate a struct cpumask 129 * alloc_cpumask_var - allocate a struct cpumask
124 * @mask: pointer to cpumask_var_t where the cpumask is returned 130 * @mask: pointer to cpumask_var_t where the cpumask is returned
@@ -135,6 +141,12 @@ bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
135} 141}
136EXPORT_SYMBOL(alloc_cpumask_var); 142EXPORT_SYMBOL(alloc_cpumask_var);
137 143
144bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
145{
146 return alloc_cpumask_var(mask, flags | __GFP_ZERO);
147}
148EXPORT_SYMBOL(zalloc_cpumask_var);
149
138/** 150/**
139 * alloc_bootmem_cpumask_var - allocate a struct cpumask from the bootmem arena. 151 * alloc_bootmem_cpumask_var - allocate a struct cpumask from the bootmem arena.
140 * @mask: pointer to cpumask_var_t where the cpumask is returned 152 * @mask: pointer to cpumask_var_t where the cpumask is returned
diff --git a/mm/filemap.c b/mm/filemap.c
index 379ff0bcbf6e..1b60f30cebfa 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -121,7 +121,6 @@ void __remove_from_page_cache(struct page *page)
121 mapping->nrpages--; 121 mapping->nrpages--;
122 __dec_zone_page_state(page, NR_FILE_PAGES); 122 __dec_zone_page_state(page, NR_FILE_PAGES);
123 BUG_ON(page_mapped(page)); 123 BUG_ON(page_mapped(page));
124 mem_cgroup_uncharge_cache_page(page);
125 124
126 /* 125 /*
127 * Some filesystems seem to re-dirty the page even after 126 * Some filesystems seem to re-dirty the page even after
@@ -145,6 +144,7 @@ void remove_from_page_cache(struct page *page)
145 spin_lock_irq(&mapping->tree_lock); 144 spin_lock_irq(&mapping->tree_lock);
146 __remove_from_page_cache(page); 145 __remove_from_page_cache(page);
147 spin_unlock_irq(&mapping->tree_lock); 146 spin_unlock_irq(&mapping->tree_lock);
147 mem_cgroup_uncharge_cache_page(page);
148} 148}
149 149
150static int sync_page(void *word) 150static int sync_page(void *word)
@@ -476,13 +476,13 @@ int add_to_page_cache_locked(struct page *page, struct address_space *mapping,
476 if (likely(!error)) { 476 if (likely(!error)) {
477 mapping->nrpages++; 477 mapping->nrpages++;
478 __inc_zone_page_state(page, NR_FILE_PAGES); 478 __inc_zone_page_state(page, NR_FILE_PAGES);
479 spin_unlock_irq(&mapping->tree_lock);
479 } else { 480 } else {
480 page->mapping = NULL; 481 page->mapping = NULL;
482 spin_unlock_irq(&mapping->tree_lock);
481 mem_cgroup_uncharge_cache_page(page); 483 mem_cgroup_uncharge_cache_page(page);
482 page_cache_release(page); 484 page_cache_release(page);
483 } 485 }
484
485 spin_unlock_irq(&mapping->tree_lock);
486 radix_tree_preload_end(); 486 radix_tree_preload_end();
487 } else 487 } else
488 mem_cgroup_uncharge_cache_page(page); 488 mem_cgroup_uncharge_cache_page(page);
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 28c655ba9353..e83ad2c9228c 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -316,7 +316,7 @@ static void resv_map_release(struct kref *ref)
316static struct resv_map *vma_resv_map(struct vm_area_struct *vma) 316static struct resv_map *vma_resv_map(struct vm_area_struct *vma)
317{ 317{
318 VM_BUG_ON(!is_vm_hugetlb_page(vma)); 318 VM_BUG_ON(!is_vm_hugetlb_page(vma));
319 if (!(vma->vm_flags & VM_SHARED)) 319 if (!(vma->vm_flags & VM_MAYSHARE))
320 return (struct resv_map *)(get_vma_private_data(vma) & 320 return (struct resv_map *)(get_vma_private_data(vma) &
321 ~HPAGE_RESV_MASK); 321 ~HPAGE_RESV_MASK);
322 return NULL; 322 return NULL;
@@ -325,7 +325,7 @@ static struct resv_map *vma_resv_map(struct vm_area_struct *vma)
325static void set_vma_resv_map(struct vm_area_struct *vma, struct resv_map *map) 325static void set_vma_resv_map(struct vm_area_struct *vma, struct resv_map *map)
326{ 326{
327 VM_BUG_ON(!is_vm_hugetlb_page(vma)); 327 VM_BUG_ON(!is_vm_hugetlb_page(vma));
328 VM_BUG_ON(vma->vm_flags & VM_SHARED); 328 VM_BUG_ON(vma->vm_flags & VM_MAYSHARE);
329 329
330 set_vma_private_data(vma, (get_vma_private_data(vma) & 330 set_vma_private_data(vma, (get_vma_private_data(vma) &
331 HPAGE_RESV_MASK) | (unsigned long)map); 331 HPAGE_RESV_MASK) | (unsigned long)map);
@@ -334,7 +334,7 @@ static void set_vma_resv_map(struct vm_area_struct *vma, struct resv_map *map)
334static void set_vma_resv_flags(struct vm_area_struct *vma, unsigned long flags) 334static void set_vma_resv_flags(struct vm_area_struct *vma, unsigned long flags)
335{ 335{
336 VM_BUG_ON(!is_vm_hugetlb_page(vma)); 336 VM_BUG_ON(!is_vm_hugetlb_page(vma));
337 VM_BUG_ON(vma->vm_flags & VM_SHARED); 337 VM_BUG_ON(vma->vm_flags & VM_MAYSHARE);
338 338
339 set_vma_private_data(vma, get_vma_private_data(vma) | flags); 339 set_vma_private_data(vma, get_vma_private_data(vma) | flags);
340} 340}
@@ -353,7 +353,7 @@ static void decrement_hugepage_resv_vma(struct hstate *h,
353 if (vma->vm_flags & VM_NORESERVE) 353 if (vma->vm_flags & VM_NORESERVE)
354 return; 354 return;
355 355
356 if (vma->vm_flags & VM_SHARED) { 356 if (vma->vm_flags & VM_MAYSHARE) {
357 /* Shared mappings always use reserves */ 357 /* Shared mappings always use reserves */
358 h->resv_huge_pages--; 358 h->resv_huge_pages--;
359 } else if (is_vma_resv_set(vma, HPAGE_RESV_OWNER)) { 359 } else if (is_vma_resv_set(vma, HPAGE_RESV_OWNER)) {
@@ -369,14 +369,14 @@ static void decrement_hugepage_resv_vma(struct hstate *h,
369void reset_vma_resv_huge_pages(struct vm_area_struct *vma) 369void reset_vma_resv_huge_pages(struct vm_area_struct *vma)
370{ 370{
371 VM_BUG_ON(!is_vm_hugetlb_page(vma)); 371 VM_BUG_ON(!is_vm_hugetlb_page(vma));
372 if (!(vma->vm_flags & VM_SHARED)) 372 if (!(vma->vm_flags & VM_MAYSHARE))
373 vma->vm_private_data = (void *)0; 373 vma->vm_private_data = (void *)0;
374} 374}
375 375
376/* Returns true if the VMA has associated reserve pages */ 376/* Returns true if the VMA has associated reserve pages */
377static int vma_has_reserves(struct vm_area_struct *vma) 377static int vma_has_reserves(struct vm_area_struct *vma)
378{ 378{
379 if (vma->vm_flags & VM_SHARED) 379 if (vma->vm_flags & VM_MAYSHARE)
380 return 1; 380 return 1;
381 if (is_vma_resv_set(vma, HPAGE_RESV_OWNER)) 381 if (is_vma_resv_set(vma, HPAGE_RESV_OWNER))
382 return 1; 382 return 1;
@@ -924,7 +924,7 @@ static long vma_needs_reservation(struct hstate *h,
924 struct address_space *mapping = vma->vm_file->f_mapping; 924 struct address_space *mapping = vma->vm_file->f_mapping;
925 struct inode *inode = mapping->host; 925 struct inode *inode = mapping->host;
926 926
927 if (vma->vm_flags & VM_SHARED) { 927 if (vma->vm_flags & VM_MAYSHARE) {
928 pgoff_t idx = vma_hugecache_offset(h, vma, addr); 928 pgoff_t idx = vma_hugecache_offset(h, vma, addr);
929 return region_chg(&inode->i_mapping->private_list, 929 return region_chg(&inode->i_mapping->private_list,
930 idx, idx + 1); 930 idx, idx + 1);
@@ -949,7 +949,7 @@ static void vma_commit_reservation(struct hstate *h,
949 struct address_space *mapping = vma->vm_file->f_mapping; 949 struct address_space *mapping = vma->vm_file->f_mapping;
950 struct inode *inode = mapping->host; 950 struct inode *inode = mapping->host;
951 951
952 if (vma->vm_flags & VM_SHARED) { 952 if (vma->vm_flags & VM_MAYSHARE) {
953 pgoff_t idx = vma_hugecache_offset(h, vma, addr); 953 pgoff_t idx = vma_hugecache_offset(h, vma, addr);
954 region_add(&inode->i_mapping->private_list, idx, idx + 1); 954 region_add(&inode->i_mapping->private_list, idx, idx + 1);
955 955
@@ -1893,7 +1893,7 @@ retry_avoidcopy:
1893 * at the time of fork() could consume its reserves on COW instead 1893 * at the time of fork() could consume its reserves on COW instead
1894 * of the full address range. 1894 * of the full address range.
1895 */ 1895 */
1896 if (!(vma->vm_flags & VM_SHARED) && 1896 if (!(vma->vm_flags & VM_MAYSHARE) &&
1897 is_vma_resv_set(vma, HPAGE_RESV_OWNER) && 1897 is_vma_resv_set(vma, HPAGE_RESV_OWNER) &&
1898 old_page != pagecache_page) 1898 old_page != pagecache_page)
1899 outside_reserve = 1; 1899 outside_reserve = 1;
@@ -2000,7 +2000,7 @@ retry:
2000 clear_huge_page(page, address, huge_page_size(h)); 2000 clear_huge_page(page, address, huge_page_size(h));
2001 __SetPageUptodate(page); 2001 __SetPageUptodate(page);
2002 2002
2003 if (vma->vm_flags & VM_SHARED) { 2003 if (vma->vm_flags & VM_MAYSHARE) {
2004 int err; 2004 int err;
2005 struct inode *inode = mapping->host; 2005 struct inode *inode = mapping->host;
2006 2006
@@ -2104,7 +2104,7 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
2104 goto out_mutex; 2104 goto out_mutex;
2105 } 2105 }
2106 2106
2107 if (!(vma->vm_flags & VM_SHARED)) 2107 if (!(vma->vm_flags & VM_MAYSHARE))
2108 pagecache_page = hugetlbfs_pagecache_page(h, 2108 pagecache_page = hugetlbfs_pagecache_page(h,
2109 vma, address); 2109 vma, address);
2110 } 2110 }
@@ -2289,7 +2289,7 @@ int hugetlb_reserve_pages(struct inode *inode,
2289 * to reserve the full area even if read-only as mprotect() may be 2289 * to reserve the full area even if read-only as mprotect() may be
2290 * called to make the mapping read-write. Assume !vma is a shm mapping 2290 * called to make the mapping read-write. Assume !vma is a shm mapping
2291 */ 2291 */
2292 if (!vma || vma->vm_flags & VM_SHARED) 2292 if (!vma || vma->vm_flags & VM_MAYSHARE)
2293 chg = region_chg(&inode->i_mapping->private_list, from, to); 2293 chg = region_chg(&inode->i_mapping->private_list, from, to);
2294 else { 2294 else {
2295 struct resv_map *resv_map = resv_map_alloc(); 2295 struct resv_map *resv_map = resv_map_alloc();
@@ -2330,7 +2330,7 @@ int hugetlb_reserve_pages(struct inode *inode,
2330 * consumed reservations are stored in the map. Hence, nothing 2330 * consumed reservations are stored in the map. Hence, nothing
2331 * else has to be done for private mappings here 2331 * else has to be done for private mappings here
2332 */ 2332 */
2333 if (!vma || vma->vm_flags & VM_SHARED) 2333 if (!vma || vma->vm_flags & VM_MAYSHARE)
2334 region_add(&inode->i_mapping->private_list, from, to); 2334 region_add(&inode->i_mapping->private_list, from, to);
2335 return 0; 2335 return 0;
2336} 2336}
diff --git a/mm/madvise.c b/mm/madvise.c
index 36d6ea2b6340..b9ce574827c8 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -112,14 +112,6 @@ static long madvise_willneed(struct vm_area_struct * vma,
112 if (!file) 112 if (!file)
113 return -EBADF; 113 return -EBADF;
114 114
115 /*
116 * Page cache readahead assumes page cache pages are order-0 which
117 * is not the case for hugetlbfs. Do not give a bad return value
118 * but ignore the advice.
119 */
120 if (vma->vm_flags & VM_HUGETLB)
121 return 0;
122
123 if (file->f_mapping->a_ops->get_xip_mem) { 115 if (file->f_mapping->a_ops->get_xip_mem) {
124 /* no bad return value, but ignore advice */ 116 /* no bad return value, but ignore advice */
125 return 0; 117 return 0;
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 01c2d8f14685..78eb8552818b 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -314,14 +314,6 @@ static struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm)
314 return mem; 314 return mem;
315} 315}
316 316
317static bool mem_cgroup_is_obsolete(struct mem_cgroup *mem)
318{
319 if (!mem)
320 return true;
321 return css_is_removed(&mem->css);
322}
323
324
325/* 317/*
326 * Call callback function against all cgroup under hierarchy tree. 318 * Call callback function against all cgroup under hierarchy tree.
327 */ 319 */
@@ -932,7 +924,7 @@ static int __mem_cgroup_try_charge(struct mm_struct *mm,
932 if (unlikely(!mem)) 924 if (unlikely(!mem))
933 return 0; 925 return 0;
934 926
935 VM_BUG_ON(!mem || mem_cgroup_is_obsolete(mem)); 927 VM_BUG_ON(css_is_removed(&mem->css));
936 928
937 while (1) { 929 while (1) {
938 int ret; 930 int ret;
@@ -1488,8 +1480,9 @@ void mem_cgroup_uncharge_cache_page(struct page *page)
1488 __mem_cgroup_uncharge_common(page, MEM_CGROUP_CHARGE_TYPE_CACHE); 1480 __mem_cgroup_uncharge_common(page, MEM_CGROUP_CHARGE_TYPE_CACHE);
1489} 1481}
1490 1482
1483#ifdef CONFIG_SWAP
1491/* 1484/*
1492 * called from __delete_from_swap_cache() and drop "page" account. 1485 * called after __delete_from_swap_cache() and drop "page" account.
1493 * memcg information is recorded to swap_cgroup of "ent" 1486 * memcg information is recorded to swap_cgroup of "ent"
1494 */ 1487 */
1495void mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent) 1488void mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent)
@@ -1506,6 +1499,7 @@ void mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent)
1506 if (memcg) 1499 if (memcg)
1507 css_put(&memcg->css); 1500 css_put(&memcg->css);
1508} 1501}
1502#endif
1509 1503
1510#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP 1504#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
1511/* 1505/*
diff --git a/mm/mmzone.c b/mm/mmzone.c
index 16ce8b955dcf..f5b7d1760213 100644
--- a/mm/mmzone.c
+++ b/mm/mmzone.c
@@ -6,6 +6,7 @@
6 6
7 7
8#include <linux/stddef.h> 8#include <linux/stddef.h>
9#include <linux/mm.h>
9#include <linux/mmzone.h> 10#include <linux/mmzone.h>
10#include <linux/module.h> 11#include <linux/module.h>
11 12
@@ -72,3 +73,17 @@ struct zoneref *next_zones_zonelist(struct zoneref *z,
72 *zone = zonelist_zone(z); 73 *zone = zonelist_zone(z);
73 return z; 74 return z;
74} 75}
76
77#ifdef CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
78int memmap_valid_within(unsigned long pfn,
79 struct page *page, struct zone *zone)
80{
81 if (page_to_pfn(page) != pfn)
82 return 0;
83
84 if (page_zone(page) != zone)
85 return 0;
86
87 return 1;
88}
89#endif /* CONFIG_ARCH_HAS_HOLES_MEMORYMODEL */
diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index 92bcf1db16b2..a7b2460e922b 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -284,22 +284,28 @@ static void dump_tasks(const struct mem_cgroup *mem)
284 printk(KERN_INFO "[ pid ] uid tgid total_vm rss cpu oom_adj " 284 printk(KERN_INFO "[ pid ] uid tgid total_vm rss cpu oom_adj "
285 "name\n"); 285 "name\n");
286 do_each_thread(g, p) { 286 do_each_thread(g, p) {
287 /* 287 struct mm_struct *mm;
288 * total_vm and rss sizes do not exist for tasks with a 288
289 * detached mm so there's no need to report them.
290 */
291 if (!p->mm)
292 continue;
293 if (mem && !task_in_mem_cgroup(p, mem)) 289 if (mem && !task_in_mem_cgroup(p, mem))
294 continue; 290 continue;
295 if (!thread_group_leader(p)) 291 if (!thread_group_leader(p))
296 continue; 292 continue;
297 293
298 task_lock(p); 294 task_lock(p);
295 mm = p->mm;
296 if (!mm) {
297 /*
298 * total_vm and rss sizes do not exist for tasks with no
299 * mm so there's no need to report them; they can't be
300 * oom killed anyway.
301 */
302 task_unlock(p);
303 continue;
304 }
299 printk(KERN_INFO "[%5d] %5d %5d %8lu %8lu %3d %3d %s\n", 305 printk(KERN_INFO "[%5d] %5d %5d %8lu %8lu %3d %3d %s\n",
300 p->pid, __task_cred(p)->uid, p->tgid, 306 p->pid, __task_cred(p)->uid, p->tgid, mm->total_vm,
301 p->mm->total_vm, get_mm_rss(p->mm), (int)task_cpu(p), 307 get_mm_rss(mm), (int)task_cpu(p), p->oomkilladj,
302 p->oomkilladj, p->comm); 308 p->comm);
303 task_unlock(p); 309 task_unlock(p);
304 } while_each_thread(g, p); 310 } while_each_thread(g, p);
305} 311}
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 30351f0063ac..bb553c3e955d 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -94,12 +94,12 @@ unsigned long vm_dirty_bytes;
94/* 94/*
95 * The interval between `kupdate'-style writebacks 95 * The interval between `kupdate'-style writebacks
96 */ 96 */
97unsigned int dirty_writeback_interval = 5 * 100; /* sentiseconds */ 97unsigned int dirty_writeback_interval = 5 * 100; /* centiseconds */
98 98
99/* 99/*
100 * The longest time for which data is allowed to remain dirty 100 * The longest time for which data is allowed to remain dirty
101 */ 101 */
102unsigned int dirty_expire_interval = 30 * 100; /* sentiseconds */ 102unsigned int dirty_expire_interval = 30 * 100; /* centiseconds */
103 103
104/* 104/*
105 * Flag that makes the machine dump writes/reads and block dirtyings. 105 * Flag that makes the machine dump writes/reads and block dirtyings.
@@ -770,7 +770,7 @@ static void wb_kupdate(unsigned long arg)
770 770
771 sync_supers(); 771 sync_supers();
772 772
773 oldest_jif = jiffies - msecs_to_jiffies(dirty_expire_interval); 773 oldest_jif = jiffies - msecs_to_jiffies(dirty_expire_interval * 10);
774 start_jif = jiffies; 774 start_jif = jiffies;
775 next_jif = start_jif + msecs_to_jiffies(dirty_writeback_interval * 10); 775 next_jif = start_jif + msecs_to_jiffies(dirty_writeback_interval * 10);
776 nr_to_write = global_page_state(NR_FILE_DIRTY) + 776 nr_to_write = global_page_state(NR_FILE_DIRTY) +
diff --git a/mm/pdflush.c b/mm/pdflush.c
index f2caf96993f8..235ac440c44e 100644
--- a/mm/pdflush.c
+++ b/mm/pdflush.c
@@ -58,14 +58,6 @@ static DEFINE_SPINLOCK(pdflush_lock);
58int nr_pdflush_threads = 0; 58int nr_pdflush_threads = 0;
59 59
60/* 60/*
61 * The max/min number of pdflush threads. R/W by sysctl at
62 * /proc/sys/vm/nr_pdflush_threads_max/min
63 */
64int nr_pdflush_threads_max __read_mostly = MAX_PDFLUSH_THREADS;
65int nr_pdflush_threads_min __read_mostly = MIN_PDFLUSH_THREADS;
66
67
68/*
69 * The time at which the pdflush thread pool last went empty 61 * The time at which the pdflush thread pool last went empty
70 */ 62 */
71static unsigned long last_empty_jifs; 63static unsigned long last_empty_jifs;
@@ -76,7 +68,7 @@ static unsigned long last_empty_jifs;
76 * Thread pool management algorithm: 68 * Thread pool management algorithm:
77 * 69 *
78 * - The minimum and maximum number of pdflush instances are bound 70 * - The minimum and maximum number of pdflush instances are bound
79 * by nr_pdflush_threads_min and nr_pdflush_threads_max. 71 * by MIN_PDFLUSH_THREADS and MAX_PDFLUSH_THREADS.
80 * 72 *
81 * - If there have been no idle pdflush instances for 1 second, create 73 * - If there have been no idle pdflush instances for 1 second, create
82 * a new one. 74 * a new one.
@@ -142,13 +134,14 @@ static int __pdflush(struct pdflush_work *my_work)
142 * To throttle creation, we reset last_empty_jifs. 134 * To throttle creation, we reset last_empty_jifs.
143 */ 135 */
144 if (time_after(jiffies, last_empty_jifs + 1 * HZ)) { 136 if (time_after(jiffies, last_empty_jifs + 1 * HZ)) {
145 if (list_empty(&pdflush_list) && 137 if (list_empty(&pdflush_list)) {
146 nr_pdflush_threads < nr_pdflush_threads_max) { 138 if (nr_pdflush_threads < MAX_PDFLUSH_THREADS) {
147 last_empty_jifs = jiffies; 139 last_empty_jifs = jiffies;
148 nr_pdflush_threads++; 140 nr_pdflush_threads++;
149 spin_unlock_irq(&pdflush_lock); 141 spin_unlock_irq(&pdflush_lock);
150 start_one_pdflush_thread(); 142 start_one_pdflush_thread();
151 spin_lock_irq(&pdflush_lock); 143 spin_lock_irq(&pdflush_lock);
144 }
152 } 145 }
153 } 146 }
154 147
@@ -160,7 +153,7 @@ static int __pdflush(struct pdflush_work *my_work)
160 */ 153 */
161 if (list_empty(&pdflush_list)) 154 if (list_empty(&pdflush_list))
162 continue; 155 continue;
163 if (nr_pdflush_threads <= nr_pdflush_threads_min) 156 if (nr_pdflush_threads <= MIN_PDFLUSH_THREADS)
164 continue; 157 continue;
165 pdf = list_entry(pdflush_list.prev, struct pdflush_work, list); 158 pdf = list_entry(pdflush_list.prev, struct pdflush_work, list);
166 if (time_after(jiffies, pdf->when_i_went_to_sleep + 1 * HZ)) { 159 if (time_after(jiffies, pdf->when_i_went_to_sleep + 1 * HZ)) {
@@ -266,9 +259,9 @@ static int __init pdflush_init(void)
266 * Pre-set nr_pdflush_threads... If we fail to create, 259 * Pre-set nr_pdflush_threads... If we fail to create,
267 * the count will be decremented. 260 * the count will be decremented.
268 */ 261 */
269 nr_pdflush_threads = nr_pdflush_threads_min; 262 nr_pdflush_threads = MIN_PDFLUSH_THREADS;
270 263
271 for (i = 0; i < nr_pdflush_threads_min; i++) 264 for (i = 0; i < MIN_PDFLUSH_THREADS; i++)
272 start_one_pdflush_thread(); 265 start_one_pdflush_thread();
273 return 0; 266 return 0;
274} 267}
diff --git a/mm/rmap.c b/mm/rmap.c
index 16521664010d..23122af32611 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -14,7 +14,7 @@
14 * Original design by Rik van Riel <riel@conectiva.com.br> 2001 14 * Original design by Rik van Riel <riel@conectiva.com.br> 2001
15 * File methods by Dave McCracken <dmccr@us.ibm.com> 2003, 2004 15 * File methods by Dave McCracken <dmccr@us.ibm.com> 2003, 2004
16 * Anonymous methods by Andrea Arcangeli <andrea@suse.de> 2004 16 * Anonymous methods by Andrea Arcangeli <andrea@suse.de> 2004
17 * Contributions by Hugh Dickins <hugh@veritas.com> 2003, 2004 17 * Contributions by Hugh Dickins 2003, 2004
18 */ 18 */
19 19
20/* 20/*
diff --git a/mm/slob.c b/mm/slob.c
index a2d4ab32198d..f92e66d558bd 100644
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -60,6 +60,7 @@
60#include <linux/kernel.h> 60#include <linux/kernel.h>
61#include <linux/slab.h> 61#include <linux/slab.h>
62#include <linux/mm.h> 62#include <linux/mm.h>
63#include <linux/swap.h> /* struct reclaim_state */
63#include <linux/cache.h> 64#include <linux/cache.h>
64#include <linux/init.h> 65#include <linux/init.h>
65#include <linux/module.h> 66#include <linux/module.h>
@@ -255,6 +256,8 @@ static void *slob_new_pages(gfp_t gfp, int order, int node)
255 256
256static void slob_free_pages(void *b, int order) 257static void slob_free_pages(void *b, int order)
257{ 258{
259 if (current->reclaim_state)
260 current->reclaim_state->reclaimed_slab += 1 << order;
258 free_pages((unsigned long)b, order); 261 free_pages((unsigned long)b, order);
259} 262}
260 263
@@ -407,7 +410,7 @@ static void slob_free(void *block, int size)
407 spin_unlock_irqrestore(&slob_lock, flags); 410 spin_unlock_irqrestore(&slob_lock, flags);
408 clear_slob_page(sp); 411 clear_slob_page(sp);
409 free_slob_page(sp); 412 free_slob_page(sp);
410 free_page((unsigned long)b); 413 slob_free_pages(b, 0);
411 return; 414 return;
412 } 415 }
413 416
diff --git a/mm/slub.c b/mm/slub.c
index 7ab54ecbd3f3..65ffda5934b0 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -9,6 +9,7 @@
9 */ 9 */
10 10
11#include <linux/mm.h> 11#include <linux/mm.h>
12#include <linux/swap.h> /* struct reclaim_state */
12#include <linux/module.h> 13#include <linux/module.h>
13#include <linux/bit_spinlock.h> 14#include <linux/bit_spinlock.h>
14#include <linux/interrupt.h> 15#include <linux/interrupt.h>
@@ -1170,6 +1171,8 @@ static void __free_slab(struct kmem_cache *s, struct page *page)
1170 1171
1171 __ClearPageSlab(page); 1172 __ClearPageSlab(page);
1172 reset_page_mapcount(page); 1173 reset_page_mapcount(page);
1174 if (current->reclaim_state)
1175 current->reclaim_state->reclaimed_slab += pages;
1173 __free_pages(page, order); 1176 __free_pages(page, order);
1174} 1177}
1175 1178
@@ -1909,7 +1912,7 @@ static inline int calculate_order(int size)
1909 * Doh this slab cannot be placed using slub_max_order. 1912 * Doh this slab cannot be placed using slub_max_order.
1910 */ 1913 */
1911 order = slab_order(size, 1, MAX_ORDER, 1); 1914 order = slab_order(size, 1, MAX_ORDER, 1);
1912 if (order <= MAX_ORDER) 1915 if (order < MAX_ORDER)
1913 return order; 1916 return order;
1914 return -ENOSYS; 1917 return -ENOSYS;
1915} 1918}
@@ -2522,6 +2525,7 @@ __setup("slub_min_order=", setup_slub_min_order);
2522static int __init setup_slub_max_order(char *str) 2525static int __init setup_slub_max_order(char *str)
2523{ 2526{
2524 get_option(&str, &slub_max_order); 2527 get_option(&str, &slub_max_order);
2528 slub_max_order = min(slub_max_order, MAX_ORDER - 1);
2525 2529
2526 return 1; 2530 return 1;
2527} 2531}
diff --git a/mm/swap_state.c b/mm/swap_state.c
index 3ecea98ecb45..1416e7e9e02d 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -109,8 +109,6 @@ int add_to_swap_cache(struct page *page, swp_entry_t entry, gfp_t gfp_mask)
109 */ 109 */
110void __delete_from_swap_cache(struct page *page) 110void __delete_from_swap_cache(struct page *page)
111{ 111{
112 swp_entry_t ent = {.val = page_private(page)};
113
114 VM_BUG_ON(!PageLocked(page)); 112 VM_BUG_ON(!PageLocked(page));
115 VM_BUG_ON(!PageSwapCache(page)); 113 VM_BUG_ON(!PageSwapCache(page));
116 VM_BUG_ON(PageWriteback(page)); 114 VM_BUG_ON(PageWriteback(page));
@@ -121,7 +119,6 @@ void __delete_from_swap_cache(struct page *page)
121 total_swapcache_pages--; 119 total_swapcache_pages--;
122 __dec_zone_page_state(page, NR_FILE_PAGES); 120 __dec_zone_page_state(page, NR_FILE_PAGES);
123 INC_CACHE_INFO(del_total); 121 INC_CACHE_INFO(del_total);
124 mem_cgroup_uncharge_swapcache(page, ent);
125} 122}
126 123
127/** 124/**
@@ -191,6 +188,7 @@ void delete_from_swap_cache(struct page *page)
191 __delete_from_swap_cache(page); 188 __delete_from_swap_cache(page);
192 spin_unlock_irq(&swapper_space.tree_lock); 189 spin_unlock_irq(&swapper_space.tree_lock);
193 190
191 mem_cgroup_uncharge_swapcache(page, entry);
194 swap_free(entry); 192 swap_free(entry);
195 page_cache_release(page); 193 page_cache_release(page);
196} 194}
diff --git a/mm/truncate.c b/mm/truncate.c
index 55206fab7b99..12e1579f9165 100644
--- a/mm/truncate.c
+++ b/mm/truncate.c
@@ -359,6 +359,7 @@ invalidate_complete_page2(struct address_space *mapping, struct page *page)
359 BUG_ON(page_has_private(page)); 359 BUG_ON(page_has_private(page));
360 __remove_from_page_cache(page); 360 __remove_from_page_cache(page);
361 spin_unlock_irq(&mapping->tree_lock); 361 spin_unlock_irq(&mapping->tree_lock);
362 mem_cgroup_uncharge_cache_page(page);
362 page_cache_release(page); /* pagecache ref */ 363 page_cache_release(page); /* pagecache ref */
363 return 1; 364 return 1;
364failed: 365failed:
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 5fa3eda1f03f..d254306562cd 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -470,10 +470,12 @@ static int __remove_mapping(struct address_space *mapping, struct page *page)
470 swp_entry_t swap = { .val = page_private(page) }; 470 swp_entry_t swap = { .val = page_private(page) };
471 __delete_from_swap_cache(page); 471 __delete_from_swap_cache(page);
472 spin_unlock_irq(&mapping->tree_lock); 472 spin_unlock_irq(&mapping->tree_lock);
473 mem_cgroup_uncharge_swapcache(page, swap);
473 swap_free(swap); 474 swap_free(swap);
474 } else { 475 } else {
475 __remove_from_page_cache(page); 476 __remove_from_page_cache(page);
476 spin_unlock_irq(&mapping->tree_lock); 477 spin_unlock_irq(&mapping->tree_lock);
478 mem_cgroup_uncharge_cache_page(page);
477 } 479 }
478 480
479 return 1; 481 return 1;
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 66f6130976cb..74d66dba0cbe 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -509,22 +509,11 @@ static void pagetypeinfo_showblockcount_print(struct seq_file *m,
509 continue; 509 continue;
510 510
511 page = pfn_to_page(pfn); 511 page = pfn_to_page(pfn);
512#ifdef CONFIG_ARCH_FLATMEM_HAS_HOLES 512
513 /* 513 /* Watch for unexpected holes punched in the memmap */
514 * Ordinarily, memory holes in flatmem still have a valid 514 if (!memmap_valid_within(pfn, page, zone))
515 * memmap for the PFN range. However, an architecture for
516 * embedded systems (e.g. ARM) can free up the memmap backing
517 * holes to save memory on the assumption the memmap is
518 * never used. The page_zone linkages are then broken even
519 * though pfn_valid() returns true. Skip the page if the
520 * linkages are broken. Even if this test passed, the impact
521 * is that the counters for the movable type are off but
522 * fragmentation monitoring is likely meaningless on small
523 * systems.
524 */
525 if (page_zone(page) != zone)
526 continue; 515 continue;
527#endif 516
528 mtype = get_pageblock_migratetype(page); 517 mtype = get_pageblock_migratetype(page);
529 518
530 if (mtype < MIGRATE_TYPES) 519 if (mtype < MIGRATE_TYPES)
diff --git a/net/Kconfig b/net/Kconfig
index ce77db4fcec8..c19f549c8e74 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -119,12 +119,6 @@ menuconfig NETFILTER
119 <file:Documentation/Changes> under "iptables" for the location of 119 <file:Documentation/Changes> under "iptables" for the location of
120 these packages. 120 these packages.
121 121
122 Make sure to say N to "Fast switching" below if you intend to say Y
123 here, as Fast switching currently bypasses netfilter.
124
125 Chances are that you should say Y here if you compile a kernel which
126 will run as a router and N for regular hosts. If unsure, say N.
127
128if NETFILTER 122if NETFILTER
129 123
130config NETFILTER_DEBUG 124config NETFILTER_DEBUG
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 61309b26f271..fa47d5d84f5c 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -171,10 +171,8 @@ static void hci_conn_timeout(unsigned long arg)
171 switch (conn->state) { 171 switch (conn->state) {
172 case BT_CONNECT: 172 case BT_CONNECT:
173 case BT_CONNECT2: 173 case BT_CONNECT2:
174 if (conn->type == ACL_LINK) 174 if (conn->type == ACL_LINK && conn->out)
175 hci_acl_connect_cancel(conn); 175 hci_acl_connect_cancel(conn);
176 else
177 hci_acl_disconn(conn, 0x13);
178 break; 176 break;
179 case BT_CONFIG: 177 case BT_CONFIG:
180 case BT_CONNECTED: 178 case BT_CONNECTED:
@@ -292,6 +290,8 @@ int hci_conn_del(struct hci_conn *conn)
292 290
293 hci_conn_del_sysfs(conn); 291 hci_conn_del_sysfs(conn);
294 292
293 hci_dev_put(hdev);
294
295 return 0; 295 return 0;
296} 296}
297 297
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 4e7cb88e5da9..184ba0a88ec0 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -1493,7 +1493,7 @@ static inline void hci_pin_code_request_evt(struct hci_dev *hdev, struct sk_buff
1493 hci_dev_lock(hdev); 1493 hci_dev_lock(hdev);
1494 1494
1495 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr); 1495 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
1496 if (conn) { 1496 if (conn && conn->state == BT_CONNECTED) {
1497 hci_conn_hold(conn); 1497 hci_conn_hold(conn);
1498 conn->disc_timeout = HCI_PAIRING_TIMEOUT; 1498 conn->disc_timeout = HCI_PAIRING_TIMEOUT;
1499 hci_conn_put(conn); 1499 hci_conn_put(conn);
diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c
index 582d8877078c..95f7a7a544b4 100644
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
@@ -88,14 +88,16 @@ static struct device_type bt_link = {
88static void add_conn(struct work_struct *work) 88static void add_conn(struct work_struct *work)
89{ 89{
90 struct hci_conn *conn = container_of(work, struct hci_conn, work_add); 90 struct hci_conn *conn = container_of(work, struct hci_conn, work_add);
91 struct hci_dev *hdev = conn->hdev;
91 92
92 /* ensure previous del is complete */ 93 dev_set_name(&conn->dev, "%s:%d", hdev->name, conn->handle);
93 flush_work(&conn->work_del);
94 94
95 if (device_add(&conn->dev) < 0) { 95 if (device_add(&conn->dev) < 0) {
96 BT_ERR("Failed to register connection device"); 96 BT_ERR("Failed to register connection device");
97 return; 97 return;
98 } 98 }
99
100 hci_dev_hold(hdev);
99} 101}
100 102
101/* 103/*
@@ -113,9 +115,6 @@ static void del_conn(struct work_struct *work)
113 struct hci_conn *conn = container_of(work, struct hci_conn, work_del); 115 struct hci_conn *conn = container_of(work, struct hci_conn, work_del);
114 struct hci_dev *hdev = conn->hdev; 116 struct hci_dev *hdev = conn->hdev;
115 117
116 /* ensure previous add is complete */
117 flush_work(&conn->work_add);
118
119 if (!device_is_registered(&conn->dev)) 118 if (!device_is_registered(&conn->dev))
120 return; 119 return;
121 120
@@ -131,6 +130,7 @@ static void del_conn(struct work_struct *work)
131 130
132 device_del(&conn->dev); 131 device_del(&conn->dev);
133 put_device(&conn->dev); 132 put_device(&conn->dev);
133
134 hci_dev_put(hdev); 134 hci_dev_put(hdev);
135} 135}
136 136
@@ -154,12 +154,8 @@ void hci_conn_init_sysfs(struct hci_conn *conn)
154 154
155void hci_conn_add_sysfs(struct hci_conn *conn) 155void hci_conn_add_sysfs(struct hci_conn *conn)
156{ 156{
157 struct hci_dev *hdev = conn->hdev;
158
159 BT_DBG("conn %p", conn); 157 BT_DBG("conn %p", conn);
160 158
161 dev_set_name(&conn->dev, "%s:%d", hdev->name, conn->handle);
162
163 queue_work(bt_workq, &conn->work_add); 159 queue_work(bt_workq, &conn->work_add);
164} 160}
165 161
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 30b88777c3df..5ee1a3682bf2 100644
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@@ -134,6 +134,10 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb)
134 if (skb->protocol == htons(ETH_P_PAUSE)) 134 if (skb->protocol == htons(ETH_P_PAUSE))
135 goto drop; 135 goto drop;
136 136
137 /* If STP is turned off, then forward */
138 if (p->br->stp_enabled == BR_NO_STP && dest[5] == 0)
139 goto forward;
140
137 if (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev, 141 if (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev,
138 NULL, br_handle_local_finish)) 142 NULL, br_handle_local_finish))
139 return NULL; /* frame consumed by filter */ 143 return NULL; /* frame consumed by filter */
@@ -141,6 +145,7 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb)
141 return skb; /* continue processing */ 145 return skb; /* continue processing */
142 } 146 }
143 147
148forward:
144 switch (p->state) { 149 switch (p->state) {
145 case BR_STATE_FORWARDING: 150 case BR_STATE_FORWARDING:
146 rhook = rcu_dereference(br_should_route_hook); 151 rhook = rcu_dereference(br_should_route_hook);
diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c
index 6e63ec3f1fcf..0660515f3992 100644
--- a/net/bridge/br_stp.c
+++ b/net/bridge/br_stp.c
@@ -297,6 +297,9 @@ void br_topology_change_detection(struct net_bridge *br)
297{ 297{
298 int isroot = br_is_root_bridge(br); 298 int isroot = br_is_root_bridge(br);
299 299
300 if (br->stp_enabled != BR_KERNEL_STP)
301 return;
302
300 pr_info("%s: topology change detected, %s\n", br->dev->name, 303 pr_info("%s: topology change detected, %s\n", br->dev->name,
301 isroot ? "propagating" : "sending tcn bpdu"); 304 isroot ? "propagating" : "sending tcn bpdu");
302 305
diff --git a/net/core/gen_estimator.c b/net/core/gen_estimator.c
index 9cc9f95b109e..6d62d4618cfc 100644
--- a/net/core/gen_estimator.c
+++ b/net/core/gen_estimator.c
@@ -66,9 +66,9 @@
66 66
67 NOTES. 67 NOTES.
68 68
69 * The stored value for avbps is scaled by 2^5, so that maximal 69 * avbps is scaled by 2^5, avpps is scaled by 2^10.
70 rate is ~1Gbit, avpps is scaled by 2^10. 70 * both values are reported as 32 bit unsigned values. bps can
71 71 overflow for fast links : max speed being 34360Mbit/sec
72 * Minimal interval is HZ/4=250msec (it is the greatest common divisor 72 * Minimal interval is HZ/4=250msec (it is the greatest common divisor
73 for HZ=100 and HZ=1024 8)), maximal interval 73 for HZ=100 and HZ=1024 8)), maximal interval
74 is (HZ*2^EST_MAX_INTERVAL)/4 = 8sec. Shorter intervals 74 is (HZ*2^EST_MAX_INTERVAL)/4 = 8sec. Shorter intervals
@@ -86,9 +86,9 @@ struct gen_estimator
86 spinlock_t *stats_lock; 86 spinlock_t *stats_lock;
87 int ewma_log; 87 int ewma_log;
88 u64 last_bytes; 88 u64 last_bytes;
89 u64 avbps;
89 u32 last_packets; 90 u32 last_packets;
90 u32 avpps; 91 u32 avpps;
91 u32 avbps;
92 struct rcu_head e_rcu; 92 struct rcu_head e_rcu;
93 struct rb_node node; 93 struct rb_node node;
94}; 94};
@@ -115,6 +115,7 @@ static void est_timer(unsigned long arg)
115 rcu_read_lock(); 115 rcu_read_lock();
116 list_for_each_entry_rcu(e, &elist[idx].list, list) { 116 list_for_each_entry_rcu(e, &elist[idx].list, list) {
117 u64 nbytes; 117 u64 nbytes;
118 u64 brate;
118 u32 npackets; 119 u32 npackets;
119 u32 rate; 120 u32 rate;
120 121
@@ -125,9 +126,9 @@ static void est_timer(unsigned long arg)
125 126
126 nbytes = e->bstats->bytes; 127 nbytes = e->bstats->bytes;
127 npackets = e->bstats->packets; 128 npackets = e->bstats->packets;
128 rate = (nbytes - e->last_bytes)<<(7 - idx); 129 brate = (nbytes - e->last_bytes)<<(7 - idx);
129 e->last_bytes = nbytes; 130 e->last_bytes = nbytes;
130 e->avbps += ((long)rate - (long)e->avbps) >> e->ewma_log; 131 e->avbps += ((s64)(brate - e->avbps)) >> e->ewma_log;
131 e->rate_est->bps = (e->avbps+0xF)>>5; 132 e->rate_est->bps = (e->avbps+0xF)>>5;
132 133
133 rate = (npackets - e->last_packets)<<(12 - idx); 134 rate = (npackets - e->last_packets)<<(12 - idx);
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index b5873bdff612..64f51eec6576 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -175,9 +175,13 @@ static void service_arp_queue(struct netpoll_info *npi)
175void netpoll_poll(struct netpoll *np) 175void netpoll_poll(struct netpoll *np)
176{ 176{
177 struct net_device *dev = np->dev; 177 struct net_device *dev = np->dev;
178 const struct net_device_ops *ops = dev->netdev_ops; 178 const struct net_device_ops *ops;
179
180 if (!dev || !netif_running(dev))
181 return;
179 182
180 if (!dev || !netif_running(dev) || !ops->ndo_poll_controller) 183 ops = dev->netdev_ops;
184 if (!ops->ndo_poll_controller)
181 return; 185 return;
182 186
183 /* Process pending work on NIC */ 187 /* Process pending work on NIC */
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index 3779c1438c11..0666a827bc62 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -2447,7 +2447,7 @@ static inline void free_SAs(struct pktgen_dev *pkt_dev)
2447 if (pkt_dev->cflows) { 2447 if (pkt_dev->cflows) {
2448 /* let go of the SAs if we have them */ 2448 /* let go of the SAs if we have them */
2449 int i = 0; 2449 int i = 0;
2450 for (; i < pkt_dev->nflows; i++){ 2450 for (; i < pkt_dev->cflows; i++) {
2451 struct xfrm_state *x = pkt_dev->flows[i].x; 2451 struct xfrm_state *x = pkt_dev->flows[i].x;
2452 if (x) { 2452 if (x) {
2453 xfrm_state_put(x); 2453 xfrm_state_put(x);
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index f091a5a845c1..e505b5392e1e 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -502,7 +502,9 @@ int skb_recycle_check(struct sk_buff *skb, int skb_size)
502 shinfo->gso_segs = 0; 502 shinfo->gso_segs = 0;
503 shinfo->gso_type = 0; 503 shinfo->gso_type = 0;
504 shinfo->ip6_frag_id = 0; 504 shinfo->ip6_frag_id = 0;
505 shinfo->tx_flags.flags = 0;
505 shinfo->frag_list = NULL; 506 shinfo->frag_list = NULL;
507 memset(&shinfo->hwtstamps, 0, sizeof(shinfo->hwtstamps));
506 508
507 memset(skb, 0, offsetof(struct sk_buff, tail)); 509 memset(skb, 0, offsetof(struct sk_buff, tail));
508 skb->data = skb->head + NET_SKB_PAD; 510 skb->data = skb->head + NET_SKB_PAD;
@@ -2286,7 +2288,7 @@ unsigned int skb_seq_read(unsigned int consumed, const u8 **data,
2286next_skb: 2288next_skb:
2287 block_limit = skb_headlen(st->cur_skb) + st->stepped_offset; 2289 block_limit = skb_headlen(st->cur_skb) + st->stepped_offset;
2288 2290
2289 if (abs_offset < block_limit) { 2291 if (abs_offset < block_limit && !st->frag_data) {
2290 *data = st->cur_skb->data + (abs_offset - st->stepped_offset); 2292 *data = st->cur_skb->data + (abs_offset - st->stepped_offset);
2291 return block_limit - abs_offset; 2293 return block_limit - abs_offset;
2292 } 2294 }
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
index b2cf91e4ccaa..5b919f7b45db 100644
--- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig
@@ -407,8 +407,8 @@ config INET_XFRM_MODE_BEET
407 If unsure, say Y. 407 If unsure, say Y.
408 408
409config INET_LRO 409config INET_LRO
410 tristate "Large Receive Offload (ipv4/tcp)" 410 bool "Large Receive Offload (ipv4/tcp)"
411 411 default y
412 ---help--- 412 ---help---
413 Support for Large Receive Offload (ipv4/tcp). 413 Support for Large Receive Offload (ipv4/tcp).
414 414
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
index ec0ae490f0b6..33c7c85dfe40 100644
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -986,9 +986,12 @@ fib_find_node(struct trie *t, u32 key)
986static struct node *trie_rebalance(struct trie *t, struct tnode *tn) 986static struct node *trie_rebalance(struct trie *t, struct tnode *tn)
987{ 987{
988 int wasfull; 988 int wasfull;
989 t_key cindex, key = tn->key; 989 t_key cindex, key;
990 struct tnode *tp; 990 struct tnode *tp;
991 991
992 preempt_disable();
993 key = tn->key;
994
992 while (tn != NULL && (tp = node_parent((struct node *)tn)) != NULL) { 995 while (tn != NULL && (tp = node_parent((struct node *)tn)) != NULL) {
993 cindex = tkey_extract_bits(key, tp->pos, tp->bits); 996 cindex = tkey_extract_bits(key, tp->pos, tp->bits);
994 wasfull = tnode_full(tp, tnode_get_child(tp, cindex)); 997 wasfull = tnode_full(tp, tnode_get_child(tp, cindex));
@@ -1007,6 +1010,7 @@ static struct node *trie_rebalance(struct trie *t, struct tnode *tn)
1007 if (IS_TNODE(tn)) 1010 if (IS_TNODE(tn))
1008 tn = (struct tnode *)resize(t, (struct tnode *)tn); 1011 tn = (struct tnode *)resize(t, (struct tnode *)tn);
1009 1012
1013 preempt_enable();
1010 return (struct node *)tn; 1014 return (struct node *)tn;
1011} 1015}
1012 1016
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 90d22ae0a419..88bf051d0cbb 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -139,6 +139,8 @@ __be32 ic_servaddr = NONE; /* Boot server IP address */
139__be32 root_server_addr = NONE; /* Address of NFS server */ 139__be32 root_server_addr = NONE; /* Address of NFS server */
140u8 root_server_path[256] = { 0, }; /* Path to mount as root */ 140u8 root_server_path[256] = { 0, }; /* Path to mount as root */
141 141
142u32 ic_dev_xid; /* Device under configuration */
143
142/* vendor class identifier */ 144/* vendor class identifier */
143static char vendor_class_identifier[253] __initdata; 145static char vendor_class_identifier[253] __initdata;
144 146
@@ -932,6 +934,13 @@ static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, str
932 goto drop_unlock; 934 goto drop_unlock;
933 } 935 }
934 936
937 /* Is it a reply for the device we are configuring? */
938 if (b->xid != ic_dev_xid) {
939 if (net_ratelimit())
940 printk(KERN_ERR "DHCP/BOOTP: Ignoring delayed packet \n");
941 goto drop_unlock;
942 }
943
935 /* Parse extensions */ 944 /* Parse extensions */
936 if (ext_len >= 4 && 945 if (ext_len >= 4 &&
937 !memcmp(b->exten, ic_bootp_cookie, 4)) { /* Check magic cookie */ 946 !memcmp(b->exten, ic_bootp_cookie, 4)) { /* Check magic cookie */
@@ -1115,6 +1124,9 @@ static int __init ic_dynamic(void)
1115 get_random_bytes(&timeout, sizeof(timeout)); 1124 get_random_bytes(&timeout, sizeof(timeout));
1116 timeout = CONF_BASE_TIMEOUT + (timeout % (unsigned) CONF_TIMEOUT_RANDOM); 1125 timeout = CONF_BASE_TIMEOUT + (timeout % (unsigned) CONF_TIMEOUT_RANDOM);
1117 for (;;) { 1126 for (;;) {
1127 /* Track the device we are configuring */
1128 ic_dev_xid = d->xid;
1129
1118#ifdef IPCONFIG_BOOTP 1130#ifdef IPCONFIG_BOOTP
1119 if (do_bootp && (d->able & IC_BOOTP)) 1131 if (do_bootp && (d->able & IC_BOOTP))
1120 ic_bootp_send_if(d, jiffies - start_jiffies); 1132 ic_bootp_send_if(d, jiffies - start_jiffies);
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index c4c60e9f068a..28205e5bfa9b 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -784,8 +784,8 @@ static void rt_check_expire(void)
784{ 784{
785 static unsigned int rover; 785 static unsigned int rover;
786 unsigned int i = rover, goal; 786 unsigned int i = rover, goal;
787 struct rtable *rth, **rthp; 787 struct rtable *rth, *aux, **rthp;
788 unsigned long length = 0, samples = 0; 788 unsigned long samples = 0;
789 unsigned long sum = 0, sum2 = 0; 789 unsigned long sum = 0, sum2 = 0;
790 u64 mult; 790 u64 mult;
791 791
@@ -795,9 +795,9 @@ static void rt_check_expire(void)
795 goal = (unsigned int)mult; 795 goal = (unsigned int)mult;
796 if (goal > rt_hash_mask) 796 if (goal > rt_hash_mask)
797 goal = rt_hash_mask + 1; 797 goal = rt_hash_mask + 1;
798 length = 0;
799 for (; goal > 0; goal--) { 798 for (; goal > 0; goal--) {
800 unsigned long tmo = ip_rt_gc_timeout; 799 unsigned long tmo = ip_rt_gc_timeout;
800 unsigned long length;
801 801
802 i = (i + 1) & rt_hash_mask; 802 i = (i + 1) & rt_hash_mask;
803 rthp = &rt_hash_table[i].chain; 803 rthp = &rt_hash_table[i].chain;
@@ -809,8 +809,10 @@ static void rt_check_expire(void)
809 809
810 if (*rthp == NULL) 810 if (*rthp == NULL)
811 continue; 811 continue;
812 length = 0;
812 spin_lock_bh(rt_hash_lock_addr(i)); 813 spin_lock_bh(rt_hash_lock_addr(i));
813 while ((rth = *rthp) != NULL) { 814 while ((rth = *rthp) != NULL) {
815 prefetch(rth->u.dst.rt_next);
814 if (rt_is_expired(rth)) { 816 if (rt_is_expired(rth)) {
815 *rthp = rth->u.dst.rt_next; 817 *rthp = rth->u.dst.rt_next;
816 rt_free(rth); 818 rt_free(rth);
@@ -819,33 +821,30 @@ static void rt_check_expire(void)
819 if (rth->u.dst.expires) { 821 if (rth->u.dst.expires) {
820 /* Entry is expired even if it is in use */ 822 /* Entry is expired even if it is in use */
821 if (time_before_eq(jiffies, rth->u.dst.expires)) { 823 if (time_before_eq(jiffies, rth->u.dst.expires)) {
824nofree:
822 tmo >>= 1; 825 tmo >>= 1;
823 rthp = &rth->u.dst.rt_next; 826 rthp = &rth->u.dst.rt_next;
824 /* 827 /*
825 * Only bump our length if the hash 828 * We only count entries on
826 * inputs on entries n and n+1 are not
827 * the same, we only count entries on
828 * a chain with equal hash inputs once 829 * a chain with equal hash inputs once
829 * so that entries for different QOS 830 * so that entries for different QOS
830 * levels, and other non-hash input 831 * levels, and other non-hash input
831 * attributes don't unfairly skew 832 * attributes don't unfairly skew
832 * the length computation 833 * the length computation
833 */ 834 */
834 if ((*rthp == NULL) || 835 for (aux = rt_hash_table[i].chain;;) {
835 !compare_hash_inputs(&(*rthp)->fl, 836 if (aux == rth) {
836 &rth->fl)) 837 length += ONE;
837 length += ONE; 838 break;
839 }
840 if (compare_hash_inputs(&aux->fl, &rth->fl))
841 break;
842 aux = aux->u.dst.rt_next;
843 }
838 continue; 844 continue;
839 } 845 }
840 } else if (!rt_may_expire(rth, tmo, ip_rt_gc_timeout)) { 846 } else if (!rt_may_expire(rth, tmo, ip_rt_gc_timeout))
841 tmo >>= 1; 847 goto nofree;
842 rthp = &rth->u.dst.rt_next;
843 if ((*rthp == NULL) ||
844 !compare_hash_inputs(&(*rthp)->fl,
845 &rth->fl))
846 length += ONE;
847 continue;
848 }
849 848
850 /* Cleanup aged off entries. */ 849 /* Cleanup aged off entries. */
851 *rthp = rth->u.dst.rt_next; 850 *rthp = rth->u.dst.rt_next;
@@ -1068,7 +1067,6 @@ out: return 0;
1068static int rt_intern_hash(unsigned hash, struct rtable *rt, struct rtable **rp) 1067static int rt_intern_hash(unsigned hash, struct rtable *rt, struct rtable **rp)
1069{ 1068{
1070 struct rtable *rth, **rthp; 1069 struct rtable *rth, **rthp;
1071 struct rtable *rthi;
1072 unsigned long now; 1070 unsigned long now;
1073 struct rtable *cand, **candp; 1071 struct rtable *cand, **candp;
1074 u32 min_score; 1072 u32 min_score;
@@ -1088,7 +1086,6 @@ restart:
1088 } 1086 }
1089 1087
1090 rthp = &rt_hash_table[hash].chain; 1088 rthp = &rt_hash_table[hash].chain;
1091 rthi = NULL;
1092 1089
1093 spin_lock_bh(rt_hash_lock_addr(hash)); 1090 spin_lock_bh(rt_hash_lock_addr(hash));
1094 while ((rth = *rthp) != NULL) { 1091 while ((rth = *rthp) != NULL) {
@@ -1134,17 +1131,6 @@ restart:
1134 chain_length++; 1131 chain_length++;
1135 1132
1136 rthp = &rth->u.dst.rt_next; 1133 rthp = &rth->u.dst.rt_next;
1137
1138 /*
1139 * check to see if the next entry in the chain
1140 * contains the same hash input values as rt. If it does
1141 * This is where we will insert into the list, instead of
1142 * at the head. This groups entries that differ by aspects not
1143 * relvant to the hash function together, which we use to adjust
1144 * our chain length
1145 */
1146 if (*rthp && compare_hash_inputs(&(*rthp)->fl, &rt->fl))
1147 rthi = rth;
1148 } 1134 }
1149 1135
1150 if (cand) { 1136 if (cand) {
@@ -1205,10 +1191,7 @@ restart:
1205 } 1191 }
1206 } 1192 }
1207 1193
1208 if (rthi) 1194 rt->u.dst.rt_next = rt_hash_table[hash].chain;
1209 rt->u.dst.rt_next = rthi->u.dst.rt_next;
1210 else
1211 rt->u.dst.rt_next = rt_hash_table[hash].chain;
1212 1195
1213#if RT_CACHE_DEBUG >= 2 1196#if RT_CACHE_DEBUG >= 2
1214 if (rt->u.dst.rt_next) { 1197 if (rt->u.dst.rt_next) {
@@ -1224,10 +1207,7 @@ restart:
1224 * previous writes to rt are comitted to memory 1207 * previous writes to rt are comitted to memory
1225 * before making rt visible to other CPUS. 1208 * before making rt visible to other CPUS.
1226 */ 1209 */
1227 if (rthi) 1210 rcu_assign_pointer(rt_hash_table[hash].chain, rt);
1228 rcu_assign_pointer(rthi->u.dst.rt_next, rt);
1229 else
1230 rcu_assign_pointer(rt_hash_table[hash].chain, rt);
1231 1211
1232 spin_unlock_bh(rt_hash_lock_addr(hash)); 1212 spin_unlock_bh(rt_hash_lock_addr(hash));
1233 *rp = rt; 1213 *rp = rt;
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 1d7f49c6f0ca..7a0f0b27bf1f 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1321,6 +1321,7 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
1321 struct task_struct *user_recv = NULL; 1321 struct task_struct *user_recv = NULL;
1322 int copied_early = 0; 1322 int copied_early = 0;
1323 struct sk_buff *skb; 1323 struct sk_buff *skb;
1324 u32 urg_hole = 0;
1324 1325
1325 lock_sock(sk); 1326 lock_sock(sk);
1326 1327
@@ -1532,7 +1533,8 @@ do_prequeue:
1532 } 1533 }
1533 } 1534 }
1534 } 1535 }
1535 if ((flags & MSG_PEEK) && peek_seq != tp->copied_seq) { 1536 if ((flags & MSG_PEEK) &&
1537 (peek_seq - copied - urg_hole != tp->copied_seq)) {
1536 if (net_ratelimit()) 1538 if (net_ratelimit())
1537 printk(KERN_DEBUG "TCP(%s:%d): Application bug, race in MSG_PEEK.\n", 1539 printk(KERN_DEBUG "TCP(%s:%d): Application bug, race in MSG_PEEK.\n",
1538 current->comm, task_pid_nr(current)); 1540 current->comm, task_pid_nr(current));
@@ -1553,6 +1555,7 @@ do_prequeue:
1553 if (!urg_offset) { 1555 if (!urg_offset) {
1554 if (!sock_flag(sk, SOCK_URGINLINE)) { 1556 if (!sock_flag(sk, SOCK_URGINLINE)) {
1555 ++*seq; 1557 ++*seq;
1558 urg_hole++;
1556 offset++; 1559 offset++;
1557 used--; 1560 used--;
1558 if (!used) 1561 if (!used)
diff --git a/net/ipv4/tcp_vegas.c b/net/ipv4/tcp_vegas.c
index a453aac91bd3..c6743eec9b7d 100644
--- a/net/ipv4/tcp_vegas.c
+++ b/net/ipv4/tcp_vegas.c
@@ -158,6 +158,11 @@ void tcp_vegas_cwnd_event(struct sock *sk, enum tcp_ca_event event)
158} 158}
159EXPORT_SYMBOL_GPL(tcp_vegas_cwnd_event); 159EXPORT_SYMBOL_GPL(tcp_vegas_cwnd_event);
160 160
161static inline u32 tcp_vegas_ssthresh(struct tcp_sock *tp)
162{
163 return min(tp->snd_ssthresh, tp->snd_cwnd-1);
164}
165
161static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight) 166static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
162{ 167{
163 struct tcp_sock *tp = tcp_sk(sk); 168 struct tcp_sock *tp = tcp_sk(sk);
@@ -221,11 +226,10 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
221 */ 226 */
222 diff = tp->snd_cwnd * (rtt-vegas->baseRTT) / vegas->baseRTT; 227 diff = tp->snd_cwnd * (rtt-vegas->baseRTT) / vegas->baseRTT;
223 228
224 if (diff > gamma && tp->snd_ssthresh > 2 ) { 229 if (diff > gamma && tp->snd_cwnd <= tp->snd_ssthresh) {
225 /* Going too fast. Time to slow down 230 /* Going too fast. Time to slow down
226 * and switch to congestion avoidance. 231 * and switch to congestion avoidance.
227 */ 232 */
228 tp->snd_ssthresh = 2;
229 233
230 /* Set cwnd to match the actual rate 234 /* Set cwnd to match the actual rate
231 * exactly: 235 * exactly:
@@ -235,6 +239,7 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
235 * utilization. 239 * utilization.
236 */ 240 */
237 tp->snd_cwnd = min(tp->snd_cwnd, (u32)target_cwnd+1); 241 tp->snd_cwnd = min(tp->snd_cwnd, (u32)target_cwnd+1);
242 tp->snd_ssthresh = tcp_vegas_ssthresh(tp);
238 243
239 } else if (tp->snd_cwnd <= tp->snd_ssthresh) { 244 } else if (tp->snd_cwnd <= tp->snd_ssthresh) {
240 /* Slow start. */ 245 /* Slow start. */
@@ -250,6 +255,8 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
250 * we slow down. 255 * we slow down.
251 */ 256 */
252 tp->snd_cwnd--; 257 tp->snd_cwnd--;
258 tp->snd_ssthresh
259 = tcp_vegas_ssthresh(tp);
253 } else if (diff < alpha) { 260 } else if (diff < alpha) {
254 /* We don't have enough extra packets 261 /* We don't have enough extra packets
255 * in the network, so speed up. 262 * in the network, so speed up.
diff --git a/net/ipv6/netfilter/ip6t_ipv6header.c b/net/ipv6/netfilter/ip6t_ipv6header.c
index 14e6724d5672..91490ad9302c 100644
--- a/net/ipv6/netfilter/ip6t_ipv6header.c
+++ b/net/ipv6/netfilter/ip6t_ipv6header.c
@@ -50,14 +50,14 @@ ipv6header_mt6(const struct sk_buff *skb, const struct xt_match_param *par)
50 struct ipv6_opt_hdr _hdr; 50 struct ipv6_opt_hdr _hdr;
51 int hdrlen; 51 int hdrlen;
52 52
53 /* Is there enough space for the next ext header? */
54 if (len < (int)sizeof(struct ipv6_opt_hdr))
55 return false;
56 /* No more exthdr -> evaluate */ 53 /* No more exthdr -> evaluate */
57 if (nexthdr == NEXTHDR_NONE) { 54 if (nexthdr == NEXTHDR_NONE) {
58 temp |= MASK_NONE; 55 temp |= MASK_NONE;
59 break; 56 break;
60 } 57 }
58 /* Is there enough space for the next ext header? */
59 if (len < (int)sizeof(struct ipv6_opt_hdr))
60 return false;
61 /* ESP -> evaluate */ 61 /* ESP -> evaluate */
62 if (nexthdr == NEXTHDR_ESP) { 62 if (nexthdr == NEXTHDR_ESP) {
63 temp |= MASK_ESP; 63 temp |= MASK_ESP;
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 1394ddb6e35c..032a5ec391c5 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -137,6 +137,7 @@ static struct rt6_info ip6_null_entry_template = {
137 } 137 }
138 }, 138 },
139 .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP), 139 .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
140 .rt6i_protocol = RTPROT_KERNEL,
140 .rt6i_metric = ~(u32) 0, 141 .rt6i_metric = ~(u32) 0,
141 .rt6i_ref = ATOMIC_INIT(1), 142 .rt6i_ref = ATOMIC_INIT(1),
142}; 143};
@@ -159,6 +160,7 @@ static struct rt6_info ip6_prohibit_entry_template = {
159 } 160 }
160 }, 161 },
161 .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP), 162 .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
163 .rt6i_protocol = RTPROT_KERNEL,
162 .rt6i_metric = ~(u32) 0, 164 .rt6i_metric = ~(u32) 0,
163 .rt6i_ref = ATOMIC_INIT(1), 165 .rt6i_ref = ATOMIC_INIT(1),
164}; 166};
@@ -176,6 +178,7 @@ static struct rt6_info ip6_blk_hole_entry_template = {
176 } 178 }
177 }, 179 },
178 .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP), 180 .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
181 .rt6i_protocol = RTPROT_KERNEL,
179 .rt6i_metric = ~(u32) 0, 182 .rt6i_metric = ~(u32) 0,
180 .rt6i_ref = ATOMIC_INIT(1), 183 .rt6i_ref = ATOMIC_INIT(1),
181}; 184};
diff --git a/net/mac80211/rc80211_minstrel.c b/net/mac80211/rc80211_minstrel.c
index 3824990d340b..d9233ec50610 100644
--- a/net/mac80211/rc80211_minstrel.c
+++ b/net/mac80211/rc80211_minstrel.c
@@ -476,8 +476,8 @@ minstrel_alloc_sta(void *priv, struct ieee80211_sta *sta, gfp_t gfp)
476 return NULL; 476 return NULL;
477 477
478 for (i = 0; i < IEEE80211_NUM_BANDS; i++) { 478 for (i = 0; i < IEEE80211_NUM_BANDS; i++) {
479 sband = hw->wiphy->bands[hw->conf.channel->band]; 479 sband = hw->wiphy->bands[i];
480 if (sband->n_bitrates > max_rates) 480 if (sband && sband->n_bitrates > max_rates)
481 max_rates = sband->n_bitrates; 481 max_rates = sband->n_bitrates;
482 } 482 }
483 483
diff --git a/net/mac80211/rc80211_pid_algo.c b/net/mac80211/rc80211_pid_algo.c
index b16801cde06f..8bef9a1262ff 100644
--- a/net/mac80211/rc80211_pid_algo.c
+++ b/net/mac80211/rc80211_pid_algo.c
@@ -317,13 +317,44 @@ rate_control_pid_rate_init(void *priv, struct ieee80211_supported_band *sband,
317 struct ieee80211_sta *sta, void *priv_sta) 317 struct ieee80211_sta *sta, void *priv_sta)
318{ 318{
319 struct rc_pid_sta_info *spinfo = priv_sta; 319 struct rc_pid_sta_info *spinfo = priv_sta;
320 struct rc_pid_info *pinfo = priv;
321 struct rc_pid_rateinfo *rinfo = pinfo->rinfo;
320 struct sta_info *si; 322 struct sta_info *si;
323 int i, j, tmp;
324 bool s;
321 325
322 /* TODO: This routine should consider using RSSI from previous packets 326 /* TODO: This routine should consider using RSSI from previous packets
323 * as we need to have IEEE 802.1X auth succeed immediately after assoc.. 327 * as we need to have IEEE 802.1X auth succeed immediately after assoc..
324 * Until that method is implemented, we will use the lowest supported 328 * Until that method is implemented, we will use the lowest supported
325 * rate as a workaround. */ 329 * rate as a workaround. */
326 330
331 /* Sort the rates. This is optimized for the most common case (i.e.
332 * almost-sorted CCK+OFDM rates). Kind of bubble-sort with reversed
333 * mapping too. */
334 for (i = 0; i < sband->n_bitrates; i++) {
335 rinfo[i].index = i;
336 rinfo[i].rev_index = i;
337 if (RC_PID_FAST_START)
338 rinfo[i].diff = 0;
339 else
340 rinfo[i].diff = i * pinfo->norm_offset;
341 }
342 for (i = 1; i < sband->n_bitrates; i++) {
343 s = 0;
344 for (j = 0; j < sband->n_bitrates - i; j++)
345 if (unlikely(sband->bitrates[rinfo[j].index].bitrate >
346 sband->bitrates[rinfo[j + 1].index].bitrate)) {
347 tmp = rinfo[j].index;
348 rinfo[j].index = rinfo[j + 1].index;
349 rinfo[j + 1].index = tmp;
350 rinfo[rinfo[j].index].rev_index = j;
351 rinfo[rinfo[j + 1].index].rev_index = j + 1;
352 s = 1;
353 }
354 if (!s)
355 break;
356 }
357
327 spinfo->txrate_idx = rate_lowest_index(sband, sta); 358 spinfo->txrate_idx = rate_lowest_index(sband, sta);
328 /* HACK */ 359 /* HACK */
329 si = container_of(sta, struct sta_info, sta); 360 si = container_of(sta, struct sta_info, sta);
@@ -336,21 +367,22 @@ static void *rate_control_pid_alloc(struct ieee80211_hw *hw,
336 struct rc_pid_info *pinfo; 367 struct rc_pid_info *pinfo;
337 struct rc_pid_rateinfo *rinfo; 368 struct rc_pid_rateinfo *rinfo;
338 struct ieee80211_supported_band *sband; 369 struct ieee80211_supported_band *sband;
339 int i, j, tmp; 370 int i, max_rates = 0;
340 bool s;
341#ifdef CONFIG_MAC80211_DEBUGFS 371#ifdef CONFIG_MAC80211_DEBUGFS
342 struct rc_pid_debugfs_entries *de; 372 struct rc_pid_debugfs_entries *de;
343#endif 373#endif
344 374
345 sband = hw->wiphy->bands[hw->conf.channel->band];
346
347 pinfo = kmalloc(sizeof(*pinfo), GFP_ATOMIC); 375 pinfo = kmalloc(sizeof(*pinfo), GFP_ATOMIC);
348 if (!pinfo) 376 if (!pinfo)
349 return NULL; 377 return NULL;
350 378
351 /* We can safely assume that sband won't change unless we get 379 for (i = 0; i < IEEE80211_NUM_BANDS; i++) {
352 * reinitialized. */ 380 sband = hw->wiphy->bands[i];
353 rinfo = kmalloc(sizeof(*rinfo) * sband->n_bitrates, GFP_ATOMIC); 381 if (sband && sband->n_bitrates > max_rates)
382 max_rates = sband->n_bitrates;
383 }
384
385 rinfo = kmalloc(sizeof(*rinfo) * max_rates, GFP_ATOMIC);
354 if (!rinfo) { 386 if (!rinfo) {
355 kfree(pinfo); 387 kfree(pinfo);
356 return NULL; 388 return NULL;
@@ -368,33 +400,6 @@ static void *rate_control_pid_alloc(struct ieee80211_hw *hw,
368 pinfo->rinfo = rinfo; 400 pinfo->rinfo = rinfo;
369 pinfo->oldrate = 0; 401 pinfo->oldrate = 0;
370 402
371 /* Sort the rates. This is optimized for the most common case (i.e.
372 * almost-sorted CCK+OFDM rates). Kind of bubble-sort with reversed
373 * mapping too. */
374 for (i = 0; i < sband->n_bitrates; i++) {
375 rinfo[i].index = i;
376 rinfo[i].rev_index = i;
377 if (RC_PID_FAST_START)
378 rinfo[i].diff = 0;
379 else
380 rinfo[i].diff = i * pinfo->norm_offset;
381 }
382 for (i = 1; i < sband->n_bitrates; i++) {
383 s = 0;
384 for (j = 0; j < sband->n_bitrates - i; j++)
385 if (unlikely(sband->bitrates[rinfo[j].index].bitrate >
386 sband->bitrates[rinfo[j + 1].index].bitrate)) {
387 tmp = rinfo[j].index;
388 rinfo[j].index = rinfo[j + 1].index;
389 rinfo[j + 1].index = tmp;
390 rinfo[rinfo[j].index].rev_index = j;
391 rinfo[rinfo[j + 1].index].rev_index = j + 1;
392 s = 1;
393 }
394 if (!s)
395 break;
396 }
397
398#ifdef CONFIG_MAC80211_DEBUGFS 403#ifdef CONFIG_MAC80211_DEBUGFS
399 de = &pinfo->dentries; 404 de = &pinfo->dentries;
400 de->target = debugfs_create_u32("target_pf", S_IRUSR | S_IWUSR, 405 de->target = debugfs_create_u32("target_pf", S_IRUSR | S_IWUSR,
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 3fb04a86444d..63656266d567 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -772,7 +772,7 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *tx)
772 hdrlen = ieee80211_hdrlen(hdr->frame_control); 772 hdrlen = ieee80211_hdrlen(hdr->frame_control);
773 773
774 /* internal error, why is TX_FRAGMENTED set? */ 774 /* internal error, why is TX_FRAGMENTED set? */
775 if (WARN_ON(skb->len <= frag_threshold)) 775 if (WARN_ON(skb->len + FCS_LEN <= frag_threshold))
776 return TX_DROP; 776 return TX_DROP;
777 777
778 /* 778 /*
diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
index 60aba45023ff..77bfdfeb966e 100644
--- a/net/netfilter/ipvs/ip_vs_conn.c
+++ b/net/netfilter/ipvs/ip_vs_conn.c
@@ -260,7 +260,10 @@ struct ip_vs_conn *ip_vs_ct_in_get
260 list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) { 260 list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) {
261 if (cp->af == af && 261 if (cp->af == af &&
262 ip_vs_addr_equal(af, s_addr, &cp->caddr) && 262 ip_vs_addr_equal(af, s_addr, &cp->caddr) &&
263 ip_vs_addr_equal(af, d_addr, &cp->vaddr) && 263 /* protocol should only be IPPROTO_IP if
264 * d_addr is a fwmark */
265 ip_vs_addr_equal(protocol == IPPROTO_IP ? AF_UNSPEC : af,
266 d_addr, &cp->vaddr) &&
264 s_port == cp->cport && d_port == cp->vport && 267 s_port == cp->cport && d_port == cp->vport &&
265 cp->flags & IP_VS_CONN_F_TEMPLATE && 268 cp->flags & IP_VS_CONN_F_TEMPLATE &&
266 protocol == cp->protocol) { 269 protocol == cp->protocol) {
@@ -698,7 +701,9 @@ ip_vs_conn_new(int af, int proto, const union nf_inet_addr *caddr, __be16 cport,
698 cp->cport = cport; 701 cp->cport = cport;
699 ip_vs_addr_copy(af, &cp->vaddr, vaddr); 702 ip_vs_addr_copy(af, &cp->vaddr, vaddr);
700 cp->vport = vport; 703 cp->vport = vport;
701 ip_vs_addr_copy(af, &cp->daddr, daddr); 704 /* proto should only be IPPROTO_IP if d_addr is a fwmark */
705 ip_vs_addr_copy(proto == IPPROTO_IP ? AF_UNSPEC : af,
706 &cp->daddr, daddr);
702 cp->dport = dport; 707 cp->dport = dport;
703 cp->flags = flags; 708 cp->flags = flags;
704 spin_lock_init(&cp->lock); 709 spin_lock_init(&cp->lock);
diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
index cb3e031335eb..8dddb17a947a 100644
--- a/net/netfilter/ipvs/ip_vs_core.c
+++ b/net/netfilter/ipvs/ip_vs_core.c
@@ -278,7 +278,7 @@ ip_vs_sched_persist(struct ip_vs_service *svc,
278 */ 278 */
279 if (svc->fwmark) { 279 if (svc->fwmark) {
280 union nf_inet_addr fwmark = { 280 union nf_inet_addr fwmark = {
281 .all = { 0, 0, 0, htonl(svc->fwmark) } 281 .ip = htonl(svc->fwmark)
282 }; 282 };
283 283
284 ct = ip_vs_ct_in_get(svc->af, IPPROTO_IP, &snet, 0, 284 ct = ip_vs_ct_in_get(svc->af, IPPROTO_IP, &snet, 0,
@@ -306,7 +306,7 @@ ip_vs_sched_persist(struct ip_vs_service *svc,
306 */ 306 */
307 if (svc->fwmark) { 307 if (svc->fwmark) {
308 union nf_inet_addr fwmark = { 308 union nf_inet_addr fwmark = {
309 .all = { 0, 0, 0, htonl(svc->fwmark) } 309 .ip = htonl(svc->fwmark)
310 }; 310 };
311 311
312 ct = ip_vs_conn_new(svc->af, IPPROTO_IP, 312 ct = ip_vs_conn_new(svc->af, IPPROTO_IP,
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index f13fc57e1ecb..c523f0b8cee5 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -1186,28 +1186,6 @@ ctnetlink_change_conntrack(struct nf_conn *ct, struct nlattr *cda[])
1186 return 0; 1186 return 0;
1187} 1187}
1188 1188
1189static inline void
1190ctnetlink_event_report(struct nf_conn *ct, u32 pid, int report)
1191{
1192 unsigned int events = 0;
1193
1194 if (test_bit(IPS_EXPECTED_BIT, &ct->status))
1195 events |= IPCT_RELATED;
1196 else
1197 events |= IPCT_NEW;
1198
1199 nf_conntrack_event_report(IPCT_STATUS |
1200 IPCT_HELPER |
1201 IPCT_REFRESH |
1202 IPCT_PROTOINFO |
1203 IPCT_NATSEQADJ |
1204 IPCT_MARK |
1205 events,
1206 ct,
1207 pid,
1208 report);
1209}
1210
1211static struct nf_conn * 1189static struct nf_conn *
1212ctnetlink_create_conntrack(struct nlattr *cda[], 1190ctnetlink_create_conntrack(struct nlattr *cda[],
1213 struct nf_conntrack_tuple *otuple, 1191 struct nf_conntrack_tuple *otuple,
@@ -1373,6 +1351,7 @@ ctnetlink_new_conntrack(struct sock *ctnl, struct sk_buff *skb,
1373 err = -ENOENT; 1351 err = -ENOENT;
1374 if (nlh->nlmsg_flags & NLM_F_CREATE) { 1352 if (nlh->nlmsg_flags & NLM_F_CREATE) {
1375 struct nf_conn *ct; 1353 struct nf_conn *ct;
1354 enum ip_conntrack_events events;
1376 1355
1377 ct = ctnetlink_create_conntrack(cda, &otuple, 1356 ct = ctnetlink_create_conntrack(cda, &otuple,
1378 &rtuple, u3); 1357 &rtuple, u3);
@@ -1383,9 +1362,18 @@ ctnetlink_new_conntrack(struct sock *ctnl, struct sk_buff *skb,
1383 err = 0; 1362 err = 0;
1384 nf_conntrack_get(&ct->ct_general); 1363 nf_conntrack_get(&ct->ct_general);
1385 spin_unlock_bh(&nf_conntrack_lock); 1364 spin_unlock_bh(&nf_conntrack_lock);
1386 ctnetlink_event_report(ct, 1365 if (test_bit(IPS_EXPECTED_BIT, &ct->status))
1387 NETLINK_CB(skb).pid, 1366 events = IPCT_RELATED;
1388 nlmsg_report(nlh)); 1367 else
1368 events = IPCT_NEW;
1369
1370 nf_conntrack_event_report(IPCT_STATUS |
1371 IPCT_HELPER |
1372 IPCT_PROTOINFO |
1373 IPCT_NATSEQADJ |
1374 IPCT_MARK | events,
1375 ct, NETLINK_CB(skb).pid,
1376 nlmsg_report(nlh));
1389 nf_ct_put(ct); 1377 nf_ct_put(ct);
1390 } else 1378 } else
1391 spin_unlock_bh(&nf_conntrack_lock); 1379 spin_unlock_bh(&nf_conntrack_lock);
@@ -1404,9 +1392,13 @@ ctnetlink_new_conntrack(struct sock *ctnl, struct sk_buff *skb,
1404 if (err == 0) { 1392 if (err == 0) {
1405 nf_conntrack_get(&ct->ct_general); 1393 nf_conntrack_get(&ct->ct_general);
1406 spin_unlock_bh(&nf_conntrack_lock); 1394 spin_unlock_bh(&nf_conntrack_lock);
1407 ctnetlink_event_report(ct, 1395 nf_conntrack_event_report(IPCT_STATUS |
1408 NETLINK_CB(skb).pid, 1396 IPCT_HELPER |
1409 nlmsg_report(nlh)); 1397 IPCT_PROTOINFO |
1398 IPCT_NATSEQADJ |
1399 IPCT_MARK,
1400 ct, NETLINK_CB(skb).pid,
1401 nlmsg_report(nlh));
1410 nf_ct_put(ct); 1402 nf_ct_put(ct);
1411 } else 1403 } else
1412 spin_unlock_bh(&nf_conntrack_lock); 1404 spin_unlock_bh(&nf_conntrack_lock);
diff --git a/net/netfilter/nf_conntrack_proto_dccp.c b/net/netfilter/nf_conntrack_proto_dccp.c
index 8e757dd53396..aee0d6bea309 100644
--- a/net/netfilter/nf_conntrack_proto_dccp.c
+++ b/net/netfilter/nf_conntrack_proto_dccp.c
@@ -22,6 +22,7 @@
22#include <linux/netfilter/nfnetlink_conntrack.h> 22#include <linux/netfilter/nfnetlink_conntrack.h>
23#include <net/netfilter/nf_conntrack.h> 23#include <net/netfilter/nf_conntrack.h>
24#include <net/netfilter/nf_conntrack_l4proto.h> 24#include <net/netfilter/nf_conntrack_l4proto.h>
25#include <net/netfilter/nf_conntrack_ecache.h>
25#include <net/netfilter/nf_log.h> 26#include <net/netfilter/nf_log.h>
26 27
27static DEFINE_RWLOCK(dccp_lock); 28static DEFINE_RWLOCK(dccp_lock);
@@ -553,6 +554,9 @@ static int dccp_packet(struct nf_conn *ct, const struct sk_buff *skb,
553 ct->proto.dccp.state = new_state; 554 ct->proto.dccp.state = new_state;
554 write_unlock_bh(&dccp_lock); 555 write_unlock_bh(&dccp_lock);
555 556
557 if (new_state != old_state)
558 nf_conntrack_event_cache(IPCT_PROTOINFO, ct);
559
556 dn = dccp_pernet(net); 560 dn = dccp_pernet(net);
557 nf_ct_refresh_acct(ct, ctinfo, skb, dn->dccp_timeout[new_state]); 561 nf_ct_refresh_acct(ct, ctinfo, skb, dn->dccp_timeout[new_state]);
558 562
diff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c
index b5ccf2b4b2e7..97a6e93d742e 100644
--- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c
@@ -634,6 +634,14 @@ static bool tcp_in_window(const struct nf_conn *ct,
634 sender->td_end = end; 634 sender->td_end = end;
635 sender->flags |= IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED; 635 sender->flags |= IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED;
636 } 636 }
637 if (tcph->ack) {
638 if (!(sender->flags & IP_CT_TCP_FLAG_MAXACK_SET)) {
639 sender->td_maxack = ack;
640 sender->flags |= IP_CT_TCP_FLAG_MAXACK_SET;
641 } else if (after(ack, sender->td_maxack))
642 sender->td_maxack = ack;
643 }
644
637 /* 645 /*
638 * Update receiver data. 646 * Update receiver data.
639 */ 647 */
@@ -919,6 +927,16 @@ static int tcp_packet(struct nf_conn *ct,
919 return -NF_ACCEPT; 927 return -NF_ACCEPT;
920 case TCP_CONNTRACK_CLOSE: 928 case TCP_CONNTRACK_CLOSE:
921 if (index == TCP_RST_SET 929 if (index == TCP_RST_SET
930 && (ct->proto.tcp.seen[!dir].flags & IP_CT_TCP_FLAG_MAXACK_SET)
931 && before(ntohl(th->seq), ct->proto.tcp.seen[!dir].td_maxack)) {
932 /* Invalid RST */
933 write_unlock_bh(&tcp_lock);
934 if (LOG_INVALID(net, IPPROTO_TCP))
935 nf_log_packet(pf, 0, skb, NULL, NULL, NULL,
936 "nf_ct_tcp: invalid RST ");
937 return -NF_ACCEPT;
938 }
939 if (index == TCP_RST_SET
922 && ((test_bit(IPS_SEEN_REPLY_BIT, &ct->status) 940 && ((test_bit(IPS_SEEN_REPLY_BIT, &ct->status)
923 && ct->proto.tcp.last_index == TCP_SYN_SET) 941 && ct->proto.tcp.last_index == TCP_SYN_SET)
924 || (!test_bit(IPS_ASSURED_BIT, &ct->status) 942 || (!test_bit(IPS_ASSURED_BIT, &ct->status)
diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
index fd326ac27ec8..66a6dd5c519a 100644
--- a/net/netfilter/nfnetlink_log.c
+++ b/net/netfilter/nfnetlink_log.c
@@ -581,6 +581,12 @@ nfulnl_log_packet(u_int8_t pf,
581 + nla_total_size(sizeof(struct nfulnl_msg_packet_hw)) 581 + nla_total_size(sizeof(struct nfulnl_msg_packet_hw))
582 + nla_total_size(sizeof(struct nfulnl_msg_packet_timestamp)); 582 + nla_total_size(sizeof(struct nfulnl_msg_packet_timestamp));
583 583
584 if (in && skb_mac_header_was_set(skb)) {
585 size += nla_total_size(skb->dev->hard_header_len)
586 + nla_total_size(sizeof(u_int16_t)) /* hwtype */
587 + nla_total_size(sizeof(u_int16_t)); /* hwlen */
588 }
589
584 spin_lock_bh(&inst->lock); 590 spin_lock_bh(&inst->lock);
585 591
586 if (inst->flags & NFULNL_CFG_F_SEQ) 592 if (inst->flags & NFULNL_CFG_F_SEQ)
diff --git a/net/netfilter/xt_cluster.c b/net/netfilter/xt_cluster.c
index 6c4847662b85..69a639f35403 100644
--- a/net/netfilter/xt_cluster.c
+++ b/net/netfilter/xt_cluster.c
@@ -135,7 +135,13 @@ static bool xt_cluster_mt_checkentry(const struct xt_mtchk_param *par)
135{ 135{
136 struct xt_cluster_match_info *info = par->matchinfo; 136 struct xt_cluster_match_info *info = par->matchinfo;
137 137
138 if (info->node_mask >= (1 << info->total_nodes)) { 138 if (info->total_nodes > XT_CLUSTER_NODES_MAX) {
139 printk(KERN_ERR "xt_cluster: you have exceeded the maximum "
140 "number of cluster nodes (%u > %u)\n",
141 info->total_nodes, XT_CLUSTER_NODES_MAX);
142 return false;
143 }
144 if (info->node_mask >= (1ULL << info->total_nodes)) {
139 printk(KERN_ERR "xt_cluster: this node mask cannot be " 145 printk(KERN_ERR "xt_cluster: this node mask cannot be "
140 "higher than the total number of nodes\n"); 146 "higher than the total number of nodes\n");
141 return false; 147 return false;
diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
index a5b5369c30f9..219dcdbe388c 100644
--- a/net/netfilter/xt_hashlimit.c
+++ b/net/netfilter/xt_hashlimit.c
@@ -926,7 +926,7 @@ static int dl_seq_show(struct seq_file *s, void *v)
926 if (!hlist_empty(&htable->hash[*bucket])) { 926 if (!hlist_empty(&htable->hash[*bucket])) {
927 hlist_for_each_entry(ent, pos, &htable->hash[*bucket], node) 927 hlist_for_each_entry(ent, pos, &htable->hash[*bucket], node)
928 if (dl_seq_real_show(ent, htable->family, s)) 928 if (dl_seq_real_show(ent, htable->family, s))
929 return 1; 929 return -1;
930 } 930 }
931 return 0; 931 return 0;
932} 932}
diff --git a/net/rxrpc/ar-connection.c b/net/rxrpc/ar-connection.c
index 0f1218b8d289..67e38a056240 100644
--- a/net/rxrpc/ar-connection.c
+++ b/net/rxrpc/ar-connection.c
@@ -343,9 +343,9 @@ static int rxrpc_connect_exclusive(struct rxrpc_sock *rx,
343 /* not yet present - create a candidate for a new connection 343 /* not yet present - create a candidate for a new connection
344 * and then redo the check */ 344 * and then redo the check */
345 conn = rxrpc_alloc_connection(gfp); 345 conn = rxrpc_alloc_connection(gfp);
346 if (IS_ERR(conn)) { 346 if (!conn) {
347 _leave(" = %ld", PTR_ERR(conn)); 347 _leave(" = -ENOMEM");
348 return PTR_ERR(conn); 348 return -ENOMEM;
349 } 349 }
350 350
351 conn->trans = trans; 351 conn->trans = trans;
@@ -508,9 +508,9 @@ int rxrpc_connect_call(struct rxrpc_sock *rx,
508 /* not yet present - create a candidate for a new connection and then 508 /* not yet present - create a candidate for a new connection and then
509 * redo the check */ 509 * redo the check */
510 candidate = rxrpc_alloc_connection(gfp); 510 candidate = rxrpc_alloc_connection(gfp);
511 if (IS_ERR(candidate)) { 511 if (!candidate) {
512 _leave(" = %ld", PTR_ERR(candidate)); 512 _leave(" = -ENOMEM");
513 return PTR_ERR(candidate); 513 return -ENOMEM;
514 } 514 }
515 515
516 candidate->trans = trans; 516 candidate->trans = trans;
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 0759f32e9dca..09cdcdfe7e91 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -135,6 +135,7 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
135 unsigned long cl; 135 unsigned long cl;
136 unsigned long fh; 136 unsigned long fh;
137 int err; 137 int err;
138 int tp_created = 0;
138 139
139 if (net != &init_net) 140 if (net != &init_net)
140 return -EINVAL; 141 return -EINVAL;
@@ -266,10 +267,7 @@ replay:
266 goto errout; 267 goto errout;
267 } 268 }
268 269
269 spin_lock_bh(root_lock); 270 tp_created = 1;
270 tp->next = *back;
271 *back = tp;
272 spin_unlock_bh(root_lock);
273 271
274 } else if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], tp->ops->kind)) 272 } else if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], tp->ops->kind))
275 goto errout; 273 goto errout;
@@ -296,8 +294,11 @@ replay:
296 switch (n->nlmsg_type) { 294 switch (n->nlmsg_type) {
297 case RTM_NEWTFILTER: 295 case RTM_NEWTFILTER:
298 err = -EEXIST; 296 err = -EEXIST;
299 if (n->nlmsg_flags & NLM_F_EXCL) 297 if (n->nlmsg_flags & NLM_F_EXCL) {
298 if (tp_created)
299 tcf_destroy(tp);
300 goto errout; 300 goto errout;
301 }
301 break; 302 break;
302 case RTM_DELTFILTER: 303 case RTM_DELTFILTER:
303 err = tp->ops->delete(tp, fh); 304 err = tp->ops->delete(tp, fh);
@@ -314,8 +315,18 @@ replay:
314 } 315 }
315 316
316 err = tp->ops->change(tp, cl, t->tcm_handle, tca, &fh); 317 err = tp->ops->change(tp, cl, t->tcm_handle, tca, &fh);
317 if (err == 0) 318 if (err == 0) {
319 if (tp_created) {
320 spin_lock_bh(root_lock);
321 tp->next = *back;
322 *back = tp;
323 spin_unlock_bh(root_lock);
324 }
318 tfilter_notify(skb, n, tp, fh, RTM_NEWTFILTER); 325 tfilter_notify(skb, n, tp, fh, RTM_NEWTFILTER);
326 } else {
327 if (tp_created)
328 tcf_destroy(tp);
329 }
319 330
320errout: 331errout:
321 if (cl) 332 if (cl)
diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c
index 91a3db4a76f8..e5becb92b3e7 100644
--- a/net/sched/cls_cgroup.c
+++ b/net/sched/cls_cgroup.c
@@ -104,8 +104,7 @@ static int cls_cgroup_classify(struct sk_buff *skb, struct tcf_proto *tp,
104 struct tcf_result *res) 104 struct tcf_result *res)
105{ 105{
106 struct cls_cgroup_head *head = tp->root; 106 struct cls_cgroup_head *head = tp->root;
107 struct cgroup_cls_state *cs; 107 u32 classid;
108 int ret = 0;
109 108
110 /* 109 /*
111 * Due to the nature of the classifier it is required to ignore all 110 * Due to the nature of the classifier it is required to ignore all
@@ -121,17 +120,18 @@ static int cls_cgroup_classify(struct sk_buff *skb, struct tcf_proto *tp,
121 return -1; 120 return -1;
122 121
123 rcu_read_lock(); 122 rcu_read_lock();
124 cs = task_cls_state(current); 123 classid = task_cls_state(current)->classid;
125 if (cs->classid && tcf_em_tree_match(skb, &head->ematches, NULL)) {
126 res->classid = cs->classid;
127 res->class = 0;
128 ret = tcf_exts_exec(skb, &head->exts, res);
129 } else
130 ret = -1;
131
132 rcu_read_unlock(); 124 rcu_read_unlock();
133 125
134 return ret; 126 if (!classid)
127 return -1;
128
129 if (!tcf_em_tree_match(skb, &head->ematches, NULL))
130 return -1;
131
132 res->classid = classid;
133 res->class = 0;
134 return tcf_exts_exec(skb, &head->exts, res);
135} 135}
136 136
137static unsigned long cls_cgroup_get(struct tcf_proto *tp, u32 handle) 137static unsigned long cls_cgroup_get(struct tcf_proto *tp, u32 handle)
@@ -167,6 +167,9 @@ static int cls_cgroup_change(struct tcf_proto *tp, unsigned long base,
167 struct tcf_exts e; 167 struct tcf_exts e;
168 int err; 168 int err;
169 169
170 if (!tca[TCA_OPTIONS])
171 return -EINVAL;
172
170 if (head == NULL) { 173 if (head == NULL) {
171 if (!handle) 174 if (!handle)
172 return -EINVAL; 175 return -EINVAL;
diff --git a/net/sched/sch_fifo.c b/net/sched/sch_fifo.c
index 92cfc9d7e3b9..69188e8358b4 100644
--- a/net/sched/sch_fifo.c
+++ b/net/sched/sch_fifo.c
@@ -51,7 +51,7 @@ static int fifo_init(struct Qdisc *sch, struct nlattr *opt)
51 u32 limit = qdisc_dev(sch)->tx_queue_len ? : 1; 51 u32 limit = qdisc_dev(sch)->tx_queue_len ? : 1;
52 52
53 if (sch->ops == &bfifo_qdisc_ops) 53 if (sch->ops == &bfifo_qdisc_ops)
54 limit *= qdisc_dev(sch)->mtu; 54 limit *= psched_mtu(qdisc_dev(sch));
55 55
56 q->limit = limit; 56 q->limit = limit;
57 } else { 57 } else {
diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c
index ec697cebb63b..3b6418297231 100644
--- a/net/sched/sch_teql.c
+++ b/net/sched/sch_teql.c
@@ -303,6 +303,8 @@ restart:
303 switch (teql_resolve(skb, skb_res, slave)) { 303 switch (teql_resolve(skb, skb_res, slave)) {
304 case 0: 304 case 0:
305 if (__netif_tx_trylock(slave_txq)) { 305 if (__netif_tx_trylock(slave_txq)) {
306 unsigned int length = qdisc_pkt_len(skb);
307
306 if (!netif_tx_queue_stopped(slave_txq) && 308 if (!netif_tx_queue_stopped(slave_txq) &&
307 !netif_tx_queue_frozen(slave_txq) && 309 !netif_tx_queue_frozen(slave_txq) &&
308 slave_ops->ndo_start_xmit(skb, slave) == 0) { 310 slave_ops->ndo_start_xmit(skb, slave) == 0) {
@@ -310,8 +312,7 @@ restart:
310 master->slaves = NEXT_SLAVE(q); 312 master->slaves = NEXT_SLAVE(q);
311 netif_wake_queue(dev); 313 netif_wake_queue(dev);
312 master->stats.tx_packets++; 314 master->stats.tx_packets++;
313 master->stats.tx_bytes += 315 master->stats.tx_bytes += length;
314 qdisc_pkt_len(skb);
315 return 0; 316 return 0;
316 } 317 }
317 __netif_tx_unlock(slave_txq); 318 __netif_tx_unlock(slave_txq);
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index af3198814c15..9d504234af4a 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -345,6 +345,7 @@ static void svc_sock_setbufsize(struct socket *sock, unsigned int snd,
345 lock_sock(sock->sk); 345 lock_sock(sock->sk);
346 sock->sk->sk_sndbuf = snd * 2; 346 sock->sk->sk_sndbuf = snd * 2;
347 sock->sk->sk_rcvbuf = rcv * 2; 347 sock->sk->sk_rcvbuf = rcv * 2;
348 sock->sk->sk_userlocks |= SOCK_SNDBUF_LOCK|SOCK_RCVBUF_LOCK;
348 release_sock(sock->sk); 349 release_sock(sock->sk);
349#endif 350#endif
350} 351}
@@ -796,6 +797,23 @@ static int svc_tcp_recvfrom(struct svc_rqst *rqstp)
796 test_bit(XPT_CONN, &svsk->sk_xprt.xpt_flags), 797 test_bit(XPT_CONN, &svsk->sk_xprt.xpt_flags),
797 test_bit(XPT_CLOSE, &svsk->sk_xprt.xpt_flags)); 798 test_bit(XPT_CLOSE, &svsk->sk_xprt.xpt_flags));
798 799
800 if (test_and_clear_bit(XPT_CHNGBUF, &svsk->sk_xprt.xpt_flags))
801 /* sndbuf needs to have room for one request
802 * per thread, otherwise we can stall even when the
803 * network isn't a bottleneck.
804 *
805 * We count all threads rather than threads in a
806 * particular pool, which provides an upper bound
807 * on the number of threads which will access the socket.
808 *
809 * rcvbuf just needs to be able to hold a few requests.
810 * Normally they will be removed from the queue
811 * as soon a a complete request arrives.
812 */
813 svc_sock_setbufsize(svsk->sk_sock,
814 (serv->sv_nrthreads+3) * serv->sv_max_mesg,
815 3 * serv->sv_max_mesg);
816
799 clear_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags); 817 clear_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags);
800 818
801 /* Receive data. If we haven't got the record length yet, get 819 /* Receive data. If we haven't got the record length yet, get
@@ -1043,6 +1061,15 @@ static void svc_tcp_init(struct svc_sock *svsk, struct svc_serv *serv)
1043 1061
1044 tcp_sk(sk)->nonagle |= TCP_NAGLE_OFF; 1062 tcp_sk(sk)->nonagle |= TCP_NAGLE_OFF;
1045 1063
1064 /* initialise setting must have enough space to
1065 * receive and respond to one request.
1066 * svc_tcp_recvfrom will re-adjust if necessary
1067 */
1068 svc_sock_setbufsize(svsk->sk_sock,
1069 3 * svsk->sk_xprt.xpt_server->sv_max_mesg,
1070 3 * svsk->sk_xprt.xpt_server->sv_max_mesg);
1071
1072 set_bit(XPT_CHNGBUF, &svsk->sk_xprt.xpt_flags);
1046 set_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags); 1073 set_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags);
1047 if (sk->sk_state != TCP_ESTABLISHED) 1074 if (sk->sk_state != TCP_ESTABLISHED)
1048 set_bit(XPT_CLOSE, &svsk->sk_xprt.xpt_flags); 1075 set_bit(XPT_CLOSE, &svsk->sk_xprt.xpt_flags);
@@ -1112,14 +1139,8 @@ static struct svc_sock *svc_setup_socket(struct svc_serv *serv,
1112 /* Initialize the socket */ 1139 /* Initialize the socket */
1113 if (sock->type == SOCK_DGRAM) 1140 if (sock->type == SOCK_DGRAM)
1114 svc_udp_init(svsk, serv); 1141 svc_udp_init(svsk, serv);
1115 else { 1142 else
1116 /* initialise setting must have enough space to
1117 * receive and respond to one request.
1118 */
1119 svc_sock_setbufsize(svsk->sk_sock, 4 * serv->sv_max_mesg,
1120 4 * serv->sv_max_mesg);
1121 svc_tcp_init(svsk, serv); 1143 svc_tcp_init(svsk, serv);
1122 }
1123 1144
1124 dprintk("svc: svc_setup_socket created %p (inet %p)\n", 1145 dprintk("svc: svc_setup_socket created %p (inet %p)\n",
1125 svsk, svsk->sk_sk); 1146 svsk, svsk->sk_sk);
diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
index 629a28764da9..42a6f9f20285 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
@@ -265,7 +265,7 @@ static int fast_reg_read_chunks(struct svcxprt_rdma *xprt,
265 frmr->page_list->page_list[page_no] = 265 frmr->page_list->page_list[page_no] =
266 ib_dma_map_single(xprt->sc_cm_id->device, 266 ib_dma_map_single(xprt->sc_cm_id->device,
267 page_address(rqstp->rq_arg.pages[page_no]), 267 page_address(rqstp->rq_arg.pages[page_no]),
268 PAGE_SIZE, DMA_TO_DEVICE); 268 PAGE_SIZE, DMA_FROM_DEVICE);
269 if (ib_dma_mapping_error(xprt->sc_cm_id->device, 269 if (ib_dma_mapping_error(xprt->sc_cm_id->device,
270 frmr->page_list->page_list[page_no])) 270 frmr->page_list->page_list[page_no]))
271 goto fatal_err; 271 goto fatal_err;
diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
index 6c26a675435a..f11be72a1a80 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
@@ -128,7 +128,8 @@ static int fast_reg_xdr(struct svcxprt_rdma *xprt,
128 page_bytes -= sge_bytes; 128 page_bytes -= sge_bytes;
129 129
130 frmr->page_list->page_list[page_no] = 130 frmr->page_list->page_list[page_no] =
131 ib_dma_map_page(xprt->sc_cm_id->device, page, 0, 131 ib_dma_map_single(xprt->sc_cm_id->device,
132 page_address(page),
132 PAGE_SIZE, DMA_TO_DEVICE); 133 PAGE_SIZE, DMA_TO_DEVICE);
133 if (ib_dma_mapping_error(xprt->sc_cm_id->device, 134 if (ib_dma_mapping_error(xprt->sc_cm_id->device,
134 frmr->page_list->page_list[page_no])) 135 frmr->page_list->page_list[page_no]))
@@ -183,6 +184,7 @@ static int fast_reg_xdr(struct svcxprt_rdma *xprt,
183 184
184 fatal_err: 185 fatal_err:
185 printk("svcrdma: Error fast registering memory for xprt %p\n", xprt); 186 printk("svcrdma: Error fast registering memory for xprt %p\n", xprt);
187 vec->frmr = NULL;
186 svc_rdma_put_frmr(xprt, frmr); 188 svc_rdma_put_frmr(xprt, frmr);
187 return -EIO; 189 return -EIO;
188} 190}
@@ -516,6 +518,7 @@ static int send_reply(struct svcxprt_rdma *rdma,
516 "svcrdma: could not post a receive buffer, err=%d." 518 "svcrdma: could not post a receive buffer, err=%d."
517 "Closing transport %p.\n", ret, rdma); 519 "Closing transport %p.\n", ret, rdma);
518 set_bit(XPT_CLOSE, &rdma->sc_xprt.xpt_flags); 520 set_bit(XPT_CLOSE, &rdma->sc_xprt.xpt_flags);
521 svc_rdma_put_frmr(rdma, vec->frmr);
519 svc_rdma_put_context(ctxt, 0); 522 svc_rdma_put_context(ctxt, 0);
520 return -ENOTCONN; 523 return -ENOTCONN;
521 } 524 }
@@ -530,18 +533,17 @@ static int send_reply(struct svcxprt_rdma *rdma,
530 clear_bit(RDMACTXT_F_FAST_UNREG, &ctxt->flags); 533 clear_bit(RDMACTXT_F_FAST_UNREG, &ctxt->flags);
531 534
532 /* Prepare the SGE for the RPCRDMA Header */ 535 /* Prepare the SGE for the RPCRDMA Header */
536 ctxt->sge[0].lkey = rdma->sc_dma_lkey;
537 ctxt->sge[0].length = svc_rdma_xdr_get_reply_hdr_len(rdma_resp);
533 ctxt->sge[0].addr = 538 ctxt->sge[0].addr =
534 ib_dma_map_page(rdma->sc_cm_id->device, 539 ib_dma_map_single(rdma->sc_cm_id->device, page_address(page),
535 page, 0, PAGE_SIZE, DMA_TO_DEVICE); 540 ctxt->sge[0].length, DMA_TO_DEVICE);
536 if (ib_dma_mapping_error(rdma->sc_cm_id->device, ctxt->sge[0].addr)) 541 if (ib_dma_mapping_error(rdma->sc_cm_id->device, ctxt->sge[0].addr))
537 goto err; 542 goto err;
538 atomic_inc(&rdma->sc_dma_used); 543 atomic_inc(&rdma->sc_dma_used);
539 544
540 ctxt->direction = DMA_TO_DEVICE; 545 ctxt->direction = DMA_TO_DEVICE;
541 546
542 ctxt->sge[0].length = svc_rdma_xdr_get_reply_hdr_len(rdma_resp);
543 ctxt->sge[0].lkey = rdma->sc_dma_lkey;
544
545 /* Determine how many of our SGE are to be transmitted */ 547 /* Determine how many of our SGE are to be transmitted */
546 for (sge_no = 1; byte_count && sge_no < vec->count; sge_no++) { 548 for (sge_no = 1; byte_count && sge_no < vec->count; sge_no++) {
547 sge_bytes = min_t(size_t, vec->sge[sge_no].iov_len, byte_count); 549 sge_bytes = min_t(size_t, vec->sge[sge_no].iov_len, byte_count);
@@ -606,6 +608,7 @@ static int send_reply(struct svcxprt_rdma *rdma,
606 return 0; 608 return 0;
607 609
608 err: 610 err:
611 svc_rdma_unmap_dma(ctxt);
609 svc_rdma_put_frmr(rdma, vec->frmr); 612 svc_rdma_put_frmr(rdma, vec->frmr);
610 svc_rdma_put_context(ctxt, 1); 613 svc_rdma_put_context(ctxt, 1);
611 return -EIO; 614 return -EIO;
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
index 3d810e7df3fb..5151f9f6c573 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
@@ -500,8 +500,8 @@ int svc_rdma_post_recv(struct svcxprt_rdma *xprt)
500 BUG_ON(sge_no >= xprt->sc_max_sge); 500 BUG_ON(sge_no >= xprt->sc_max_sge);
501 page = svc_rdma_get_page(); 501 page = svc_rdma_get_page();
502 ctxt->pages[sge_no] = page; 502 ctxt->pages[sge_no] = page;
503 pa = ib_dma_map_page(xprt->sc_cm_id->device, 503 pa = ib_dma_map_single(xprt->sc_cm_id->device,
504 page, 0, PAGE_SIZE, 504 page_address(page), PAGE_SIZE,
505 DMA_FROM_DEVICE); 505 DMA_FROM_DEVICE);
506 if (ib_dma_mapping_error(xprt->sc_cm_id->device, pa)) 506 if (ib_dma_mapping_error(xprt->sc_cm_id->device, pa))
507 goto err_put_ctxt; 507 goto err_put_ctxt;
@@ -520,8 +520,9 @@ int svc_rdma_post_recv(struct svcxprt_rdma *xprt)
520 svc_xprt_get(&xprt->sc_xprt); 520 svc_xprt_get(&xprt->sc_xprt);
521 ret = ib_post_recv(xprt->sc_qp, &recv_wr, &bad_recv_wr); 521 ret = ib_post_recv(xprt->sc_qp, &recv_wr, &bad_recv_wr);
522 if (ret) { 522 if (ret) {
523 svc_xprt_put(&xprt->sc_xprt); 523 svc_rdma_unmap_dma(ctxt);
524 svc_rdma_put_context(ctxt, 1); 524 svc_rdma_put_context(ctxt, 1);
525 svc_xprt_put(&xprt->sc_xprt);
525 } 526 }
526 return ret; 527 return ret;
527 528
@@ -1314,8 +1315,8 @@ void svc_rdma_send_error(struct svcxprt_rdma *xprt, struct rpcrdma_msg *rmsgp,
1314 length = svc_rdma_xdr_encode_error(xprt, rmsgp, err, va); 1315 length = svc_rdma_xdr_encode_error(xprt, rmsgp, err, va);
1315 1316
1316 /* Prepare SGE for local address */ 1317 /* Prepare SGE for local address */
1317 sge.addr = ib_dma_map_page(xprt->sc_cm_id->device, 1318 sge.addr = ib_dma_map_single(xprt->sc_cm_id->device,
1318 p, 0, PAGE_SIZE, DMA_FROM_DEVICE); 1319 page_address(p), PAGE_SIZE, DMA_FROM_DEVICE);
1319 if (ib_dma_mapping_error(xprt->sc_cm_id->device, sge.addr)) { 1320 if (ib_dma_mapping_error(xprt->sc_cm_id->device, sge.addr)) {
1320 put_page(p); 1321 put_page(p);
1321 return; 1322 return;
@@ -1342,7 +1343,7 @@ void svc_rdma_send_error(struct svcxprt_rdma *xprt, struct rpcrdma_msg *rmsgp,
1342 if (ret) { 1343 if (ret) {
1343 dprintk("svcrdma: Error %d posting send for protocol error\n", 1344 dprintk("svcrdma: Error %d posting send for protocol error\n",
1344 ret); 1345 ret);
1345 ib_dma_unmap_page(xprt->sc_cm_id->device, 1346 ib_dma_unmap_single(xprt->sc_cm_id->device,
1346 sge.addr, PAGE_SIZE, 1347 sge.addr, PAGE_SIZE,
1347 DMA_FROM_DEVICE); 1348 DMA_FROM_DEVICE);
1348 svc_rdma_put_context(ctxt, 1); 1349 svc_rdma_put_context(ctxt, 1);
diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
index 3b21e0cc5e69..465aafc2007f 100644
--- a/net/sunrpc/xprtrdma/verbs.c
+++ b/net/sunrpc/xprtrdma/verbs.c
@@ -1495,7 +1495,8 @@ rpcrdma_register_frmr_external(struct rpcrdma_mr_seg *seg,
1495 frmr_wr.wr.fast_reg.page_shift = PAGE_SHIFT; 1495 frmr_wr.wr.fast_reg.page_shift = PAGE_SHIFT;
1496 frmr_wr.wr.fast_reg.length = i << PAGE_SHIFT; 1496 frmr_wr.wr.fast_reg.length = i << PAGE_SHIFT;
1497 frmr_wr.wr.fast_reg.access_flags = (writing ? 1497 frmr_wr.wr.fast_reg.access_flags = (writing ?
1498 IB_ACCESS_REMOTE_WRITE : IB_ACCESS_REMOTE_READ); 1498 IB_ACCESS_REMOTE_WRITE | IB_ACCESS_LOCAL_WRITE :
1499 IB_ACCESS_REMOTE_READ);
1499 frmr_wr.wr.fast_reg.rkey = seg1->mr_chunk.rl_mw->r.frmr.fr_mr->rkey; 1500 frmr_wr.wr.fast_reg.rkey = seg1->mr_chunk.rl_mw->r.frmr.fr_mr->rkey;
1500 DECR_CQCOUNT(&r_xprt->rx_ep); 1501 DECR_CQCOUNT(&r_xprt->rx_ep);
1501 1502
diff --git a/net/wimax/op-msg.c b/net/wimax/op-msg.c
index 5d149c1b5f0d..9ad4d893a566 100644
--- a/net/wimax/op-msg.c
+++ b/net/wimax/op-msg.c
@@ -149,7 +149,8 @@ struct sk_buff *wimax_msg_alloc(struct wimax_dev *wimax_dev,
149 } 149 }
150 result = nla_put(skb, WIMAX_GNL_MSG_DATA, size, msg); 150 result = nla_put(skb, WIMAX_GNL_MSG_DATA, size, msg);
151 if (result < 0) { 151 if (result < 0) {
152 dev_err(dev, "no memory to add payload in attribute\n"); 152 dev_err(dev, "no memory to add payload (msg %p size %zu) in "
153 "attribute: %d\n", msg, size, result);
153 goto error_nla_put; 154 goto error_nla_put;
154 } 155 }
155 genlmsg_end(skb, genl_msg); 156 genlmsg_end(skb, genl_msg);
@@ -299,10 +300,10 @@ int wimax_msg(struct wimax_dev *wimax_dev, const char *pipe_name,
299 struct sk_buff *skb; 300 struct sk_buff *skb;
300 301
301 skb = wimax_msg_alloc(wimax_dev, pipe_name, buf, size, gfp_flags); 302 skb = wimax_msg_alloc(wimax_dev, pipe_name, buf, size, gfp_flags);
302 if (skb == NULL) 303 if (IS_ERR(skb))
303 goto error_msg_new; 304 result = PTR_ERR(skb);
304 result = wimax_msg_send(wimax_dev, skb); 305 else
305error_msg_new: 306 result = wimax_msg_send(wimax_dev, skb);
306 return result; 307 return result;
307} 308}
308EXPORT_SYMBOL_GPL(wimax_msg); 309EXPORT_SYMBOL_GPL(wimax_msg);
diff --git a/net/wimax/stack.c b/net/wimax/stack.c
index a0ee76b52510..933e1422b09f 100644
--- a/net/wimax/stack.c
+++ b/net/wimax/stack.c
@@ -338,8 +338,21 @@ out:
338 */ 338 */
339void wimax_state_change(struct wimax_dev *wimax_dev, enum wimax_st new_state) 339void wimax_state_change(struct wimax_dev *wimax_dev, enum wimax_st new_state)
340{ 340{
341 /*
342 * A driver cannot take the wimax_dev out of the
343 * __WIMAX_ST_NULL state unless by calling wimax_dev_add(). If
344 * the wimax_dev's state is still NULL, we ignore any request
345 * to change its state because it means it hasn't been yet
346 * registered.
347 *
348 * There is no need to complain about it, as routines that
349 * call this might be shared from different code paths that
350 * are called before or after wimax_dev_add() has done its
351 * job.
352 */
341 mutex_lock(&wimax_dev->mutex); 353 mutex_lock(&wimax_dev->mutex);
342 __wimax_state_change(wimax_dev, new_state); 354 if (wimax_dev->state > __WIMAX_ST_NULL)
355 __wimax_state_change(wimax_dev, new_state);
343 mutex_unlock(&wimax_dev->mutex); 356 mutex_unlock(&wimax_dev->mutex);
344 return; 357 return;
345} 358}
@@ -376,7 +389,7 @@ EXPORT_SYMBOL_GPL(wimax_state_get);
376void wimax_dev_init(struct wimax_dev *wimax_dev) 389void wimax_dev_init(struct wimax_dev *wimax_dev)
377{ 390{
378 INIT_LIST_HEAD(&wimax_dev->id_table_node); 391 INIT_LIST_HEAD(&wimax_dev->id_table_node);
379 __wimax_state_set(wimax_dev, WIMAX_ST_UNINITIALIZED); 392 __wimax_state_set(wimax_dev, __WIMAX_ST_NULL);
380 mutex_init(&wimax_dev->mutex); 393 mutex_init(&wimax_dev->mutex);
381 mutex_init(&wimax_dev->mutex_reset); 394 mutex_init(&wimax_dev->mutex_reset);
382} 395}
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 6c1993d99902..487cb627ddba 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -907,6 +907,7 @@ EXPORT_SYMBOL(freq_reg_info);
907int freq_reg_info(struct wiphy *wiphy, u32 center_freq, u32 *bandwidth, 907int freq_reg_info(struct wiphy *wiphy, u32 center_freq, u32 *bandwidth,
908 const struct ieee80211_reg_rule **reg_rule) 908 const struct ieee80211_reg_rule **reg_rule)
909{ 909{
910 assert_cfg80211_lock();
910 return freq_reg_info_regd(wiphy, center_freq, 911 return freq_reg_info_regd(wiphy, center_freq,
911 bandwidth, reg_rule, NULL); 912 bandwidth, reg_rule, NULL);
912} 913}
@@ -1133,7 +1134,8 @@ static bool reg_is_world_roaming(struct wiphy *wiphy)
1133 if (is_world_regdom(cfg80211_regdomain->alpha2) || 1134 if (is_world_regdom(cfg80211_regdomain->alpha2) ||
1134 (wiphy->regd && is_world_regdom(wiphy->regd->alpha2))) 1135 (wiphy->regd && is_world_regdom(wiphy->regd->alpha2)))
1135 return true; 1136 return true;
1136 if (last_request->initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE && 1137 if (last_request &&
1138 last_request->initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE &&
1137 wiphy->custom_regulatory) 1139 wiphy->custom_regulatory)
1138 return true; 1140 return true;
1139 return false; 1141 return false;
@@ -1142,6 +1144,12 @@ static bool reg_is_world_roaming(struct wiphy *wiphy)
1142/* Reap the advantages of previously found beacons */ 1144/* Reap the advantages of previously found beacons */
1143static void reg_process_beacons(struct wiphy *wiphy) 1145static void reg_process_beacons(struct wiphy *wiphy)
1144{ 1146{
1147 /*
1148 * Means we are just firing up cfg80211, so no beacons would
1149 * have been processed yet.
1150 */
1151 if (!last_request)
1152 return;
1145 if (!reg_is_world_roaming(wiphy)) 1153 if (!reg_is_world_roaming(wiphy))
1146 return; 1154 return;
1147 wiphy_update_beacon_reg(wiphy); 1155 wiphy_update_beacon_reg(wiphy);
@@ -1176,6 +1184,8 @@ static void handle_channel_custom(struct wiphy *wiphy,
1176 struct ieee80211_supported_band *sband; 1184 struct ieee80211_supported_band *sband;
1177 struct ieee80211_channel *chan; 1185 struct ieee80211_channel *chan;
1178 1186
1187 assert_cfg80211_lock();
1188
1179 sband = wiphy->bands[band]; 1189 sband = wiphy->bands[band];
1180 BUG_ON(chan_idx >= sband->n_channels); 1190 BUG_ON(chan_idx >= sband->n_channels);
1181 chan = &sband->channels[chan_idx]; 1191 chan = &sband->channels[chan_idx];
@@ -1214,10 +1224,13 @@ void wiphy_apply_custom_regulatory(struct wiphy *wiphy,
1214 const struct ieee80211_regdomain *regd) 1224 const struct ieee80211_regdomain *regd)
1215{ 1225{
1216 enum ieee80211_band band; 1226 enum ieee80211_band band;
1227
1228 mutex_lock(&cfg80211_mutex);
1217 for (band = 0; band < IEEE80211_NUM_BANDS; band++) { 1229 for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
1218 if (wiphy->bands[band]) 1230 if (wiphy->bands[band])
1219 handle_band_custom(wiphy, band, regd); 1231 handle_band_custom(wiphy, band, regd);
1220 } 1232 }
1233 mutex_unlock(&cfg80211_mutex);
1221} 1234}
1222EXPORT_SYMBOL(wiphy_apply_custom_regulatory); 1235EXPORT_SYMBOL(wiphy_apply_custom_regulatory);
1223 1236
@@ -1423,7 +1436,7 @@ new_request:
1423 return call_crda(last_request->alpha2); 1436 return call_crda(last_request->alpha2);
1424} 1437}
1425 1438
1426/* This currently only processes user and driver regulatory hints */ 1439/* This processes *all* regulatory hints */
1427static void reg_process_hint(struct regulatory_request *reg_request) 1440static void reg_process_hint(struct regulatory_request *reg_request)
1428{ 1441{
1429 int r = 0; 1442 int r = 0;
@@ -1538,6 +1551,13 @@ static int regulatory_hint_core(const char *alpha2)
1538 1551
1539 queue_regulatory_request(request); 1552 queue_regulatory_request(request);
1540 1553
1554 /*
1555 * This ensures last_request is populated once modules
1556 * come swinging in and calling regulatory hints and
1557 * wiphy_apply_custom_regulatory().
1558 */
1559 flush_scheduled_work();
1560
1541 return 0; 1561 return 0;
1542} 1562}
1543 1563
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 2ae65b39b529..1f260c40b6ca 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -395,6 +395,7 @@ cfg80211_bss_update(struct cfg80211_registered_device *dev,
395 memcpy(ies, res->pub.information_elements, ielen); 395 memcpy(ies, res->pub.information_elements, ielen);
396 found->ies_allocated = true; 396 found->ies_allocated = true;
397 found->pub.information_elements = ies; 397 found->pub.information_elements = ies;
398 found->pub.len_information_elements = ielen;
398 } 399 }
399 } 400 }
400 } 401 }
diff --git a/net/wireless/wext.c b/net/wireless/wext.c
index cb6a5bb85d80..0e59f9ae9b81 100644
--- a/net/wireless/wext.c
+++ b/net/wireless/wext.c
@@ -786,6 +786,13 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
786 err = -EFAULT; 786 err = -EFAULT;
787 goto out; 787 goto out;
788 } 788 }
789
790 if (cmd == SIOCSIWENCODEEXT) {
791 struct iw_encode_ext *ee = (void *) extra;
792
793 if (iwp->length < sizeof(*ee) + ee->key_len)
794 return -EFAULT;
795 }
789 } 796 }
790 797
791 err = handler(dev, info, (union iwreq_data *) iwp, extra); 798 err = handler(dev, info, (union iwreq_data *) iwp, extra);
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
index 32c8554f3946..00790472f641 100755
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
@@ -1,5 +1,13 @@
1#!/bin/sh 1#!/bin/sh
2# Print additional version information for non-release trees. 2#
3# This scripts adds local version information from the version
4# control systems git, mercurial (hg) and subversion (svn).
5#
6# If something goes wrong, send a mail the kernel build mailinglist
7# (see MAINTAINERS) and CC Nico Schottelius
8# <nico-linuxsetlocalversion -at- schottelius.org>.
9#
10#
3 11
4usage() { 12usage() {
5 echo "Usage: $0 [srctree]" >&2 13 echo "Usage: $0 [srctree]" >&2
@@ -10,12 +18,20 @@ cd "${1:-.}" || usage
10 18
11# Check for git and a git repo. 19# Check for git and a git repo.
12if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then 20if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
13 # Do we have an untagged tag? 21
14 if atag=`git describe 2>/dev/null`; then 22 # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore it,
15 echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' 23 # because this version is defined in the top level Makefile.
16 # add -g${head}, if there is no usable tag 24 if [ -z "`git describe --exact-match 2>/dev/null`" ]; then
17 else 25
18 printf '%s%s' -g $head 26 # If we are past a tagged commit (like "v2.6.30-rc5-302-g72357d5"),
27 # we pretty print it.
28 if atag="`git describe 2>/dev/null`"; then
29 echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
30
31 # If we don't have a tag at all we print -g{commitish}.
32 else
33 printf '%s%s' -g $head
34 fi
19 fi 35 fi
20 36
21 # Is this git on svn? 37 # Is this git on svn?
diff --git a/security/tomoyo/common.c b/security/tomoyo/common.c
index d4d41b3efc7c..ddfb9cccf468 100644
--- a/security/tomoyo/common.c
+++ b/security/tomoyo/common.c
@@ -1720,14 +1720,14 @@ static bool tomoyo_policy_loader_exists(void)
1720 * policies are not loaded yet. 1720 * policies are not loaded yet.
1721 * Thus, let do_execve() call this function everytime. 1721 * Thus, let do_execve() call this function everytime.
1722 */ 1722 */
1723 struct nameidata nd; 1723 struct path path;
1724 1724
1725 if (path_lookup(tomoyo_loader, LOOKUP_FOLLOW, &nd)) { 1725 if (kern_path(tomoyo_loader, LOOKUP_FOLLOW, &path)) {
1726 printk(KERN_INFO "Not activating Mandatory Access Control now " 1726 printk(KERN_INFO "Not activating Mandatory Access Control now "
1727 "since %s doesn't exist.\n", tomoyo_loader); 1727 "since %s doesn't exist.\n", tomoyo_loader);
1728 return false; 1728 return false;
1729 } 1729 }
1730 path_put(&nd.path); 1730 path_put(&path);
1731 return true; 1731 return true;
1732} 1732}
1733 1733
diff --git a/security/tomoyo/realpath.c b/security/tomoyo/realpath.c
index bf8e2b451687..40927a84cb6e 100644
--- a/security/tomoyo/realpath.c
+++ b/security/tomoyo/realpath.c
@@ -165,11 +165,11 @@ char *tomoyo_realpath_from_path(struct path *path)
165 */ 165 */
166char *tomoyo_realpath(const char *pathname) 166char *tomoyo_realpath(const char *pathname)
167{ 167{
168 struct nameidata nd; 168 struct path path;
169 169
170 if (pathname && path_lookup(pathname, LOOKUP_FOLLOW, &nd) == 0) { 170 if (pathname && kern_path(pathname, LOOKUP_FOLLOW, &path) == 0) {
171 char *buf = tomoyo_realpath_from_path(&nd.path); 171 char *buf = tomoyo_realpath_from_path(&path);
172 path_put(&nd.path); 172 path_put(&path);
173 return buf; 173 return buf;
174 } 174 }
175 return NULL; 175 return NULL;
@@ -184,11 +184,11 @@ char *tomoyo_realpath(const char *pathname)
184 */ 184 */
185char *tomoyo_realpath_nofollow(const char *pathname) 185char *tomoyo_realpath_nofollow(const char *pathname)
186{ 186{
187 struct nameidata nd; 187 struct path path;
188 188
189 if (pathname && path_lookup(pathname, 0, &nd) == 0) { 189 if (pathname && kern_path(pathname, 0, &path) == 0) {
190 char *buf = tomoyo_realpath_from_path(&nd.path); 190 char *buf = tomoyo_realpath_from_path(&path);
191 path_put(&nd.path); 191 path_put(&path);
192 return buf; 192 return buf;
193 } 193 }
194 return NULL; 194 return NULL;
diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c
index 5b481912752a..e42be5c4f055 100644
--- a/security/tomoyo/tomoyo.c
+++ b/security/tomoyo/tomoyo.c
@@ -27,6 +27,12 @@ static int tomoyo_cred_prepare(struct cred *new, const struct cred *old,
27 27
28static int tomoyo_bprm_set_creds(struct linux_binprm *bprm) 28static int tomoyo_bprm_set_creds(struct linux_binprm *bprm)
29{ 29{
30 int rc;
31
32 rc = cap_bprm_set_creds(bprm);
33 if (rc)
34 return rc;
35
30 /* 36 /*
31 * Do only if this function is called for the first time of an execve 37 * Do only if this function is called for the first time of an execve
32 * operation. 38 * operation.
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c
index 7fbd68fab944..5c48e36038f2 100644
--- a/sound/arm/aaci.c
+++ b/sound/arm/aaci.c
@@ -1074,7 +1074,7 @@ static unsigned int __devinit aaci_size_fifo(struct aaci *aaci)
1074 return i; 1074 return i;
1075} 1075}
1076 1076
1077static int __devinit aaci_probe(struct amba_device *dev, void *id) 1077static int __devinit aaci_probe(struct amba_device *dev, struct amba_id *id)
1078{ 1078{
1079 struct aaci *aaci; 1079 struct aaci *aaci;
1080 int ret, i; 1080 int ret, i;
diff --git a/sound/arm/pxa2xx-ac97-lib.c b/sound/arm/pxa2xx-ac97-lib.c
index a2c12d105c9a..6fdca97186e7 100644
--- a/sound/arm/pxa2xx-ac97-lib.c
+++ b/sound/arm/pxa2xx-ac97-lib.c
@@ -65,7 +65,7 @@ static void set_resetgpio_mode(int resetgpio_action)
65 switch (resetgpio_action) { 65 switch (resetgpio_action) {
66 case RESETGPIO_NORMAL_ALTFUNC: 66 case RESETGPIO_NORMAL_ALTFUNC:
67 if (reset_gpio == 113) 67 if (reset_gpio == 113)
68 mode = 113 | GPIO_OUT | GPIO_DFLT_LOW; 68 mode = 113 | GPIO_ALT_FN_2_OUT;
69 if (reset_gpio == 95) 69 if (reset_gpio == 95)
70 mode = 95 | GPIO_ALT_FN_1_OUT; 70 mode = 95 | GPIO_ALT_FN_1_OUT;
71 break; 71 break;
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index a2a792c18c40..d659995ac3ac 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -249,6 +249,11 @@ static int snd_pcm_update_hw_ptr_interrupt(struct snd_pcm_substream *substream)
249 new_hw_ptr = hw_base + pos; 249 new_hw_ptr = hw_base + pos;
250 } 250 }
251 } 251 }
252
253 /* Do jiffies check only in xrun_debug mode */
254 if (!xrun_debug(substream))
255 goto no_jiffies_check;
256
252 /* Skip the jiffies check for hardwares with BATCH flag. 257 /* Skip the jiffies check for hardwares with BATCH flag.
253 * Such hardware usually just increases the position at each IRQ, 258 * Such hardware usually just increases the position at each IRQ,
254 * thus it can't give any strange position. 259 * thus it can't give any strange position.
@@ -336,7 +341,9 @@ int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream)
336 hw_base = 0; 341 hw_base = 0;
337 new_hw_ptr = hw_base + pos; 342 new_hw_ptr = hw_base + pos;
338 } 343 }
339 if (((delta * HZ) / runtime->rate) > jdelta + HZ/100) { 344 /* Do jiffies check only in xrun_debug mode */
345 if (xrun_debug(substream) &&
346 ((delta * HZ) / runtime->rate) > jdelta + HZ/100) {
340 hw_ptr_error(substream, 347 hw_ptr_error(substream,
341 "hw_ptr skipping! " 348 "hw_ptr skipping! "
342 "(pos=%ld, delta=%ld, period=%ld, jdelta=%lu/%lu)\n", 349 "(pos=%ld, delta=%ld, period=%ld, jdelta=%lu/%lu)\n",
@@ -1478,7 +1485,6 @@ static int snd_pcm_lib_ioctl_reset(struct snd_pcm_substream *substream,
1478 runtime->status->hw_ptr %= runtime->buffer_size; 1485 runtime->status->hw_ptr %= runtime->buffer_size;
1479 else 1486 else
1480 runtime->status->hw_ptr = 0; 1487 runtime->status->hw_ptr = 0;
1481 runtime->hw_ptr_jiffies = jiffies;
1482 snd_pcm_stream_unlock_irqrestore(substream, flags); 1488 snd_pcm_stream_unlock_irqrestore(substream, flags);
1483 return 0; 1489 return 0;
1484} 1490}
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index fc6f98e257df..b5da656d1ece 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -848,6 +848,7 @@ static void snd_pcm_post_start(struct snd_pcm_substream *substream, int state)
848{ 848{
849 struct snd_pcm_runtime *runtime = substream->runtime; 849 struct snd_pcm_runtime *runtime = substream->runtime;
850 snd_pcm_trigger_tstamp(substream); 850 snd_pcm_trigger_tstamp(substream);
851 runtime->hw_ptr_jiffies = jiffies;
851 runtime->status->state = state; 852 runtime->status->state = state;
852 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && 853 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
853 runtime->silence_size > 0) 854 runtime->silence_size > 0)
@@ -961,6 +962,11 @@ static int snd_pcm_do_pause(struct snd_pcm_substream *substream, int push)
961{ 962{
962 if (substream->runtime->trigger_master != substream) 963 if (substream->runtime->trigger_master != substream)
963 return 0; 964 return 0;
965 /* The jiffies check in snd_pcm_update_hw_ptr*() is done by
966 * a delta betwen the current jiffies, this gives a large enough
967 * delta, effectively to skip the check once.
968 */
969 substream->runtime->hw_ptr_jiffies = jiffies - HZ * 1000;
964 return substream->ops->trigger(substream, 970 return substream->ops->trigger(substream,
965 push ? SNDRV_PCM_TRIGGER_PAUSE_PUSH : 971 push ? SNDRV_PCM_TRIGGER_PAUSE_PUSH :
966 SNDRV_PCM_TRIGGER_PAUSE_RELEASE); 972 SNDRV_PCM_TRIGGER_PAUSE_RELEASE);
diff --git a/sound/drivers/pcsp/pcsp_mixer.c b/sound/drivers/pcsp/pcsp_mixer.c
index caeb0f57fcca..199b03377142 100644
--- a/sound/drivers/pcsp/pcsp_mixer.c
+++ b/sound/drivers/pcsp/pcsp_mixer.c
@@ -50,8 +50,8 @@ static int pcsp_treble_info(struct snd_kcontrol *kcontrol,
50 uinfo->value.enumerated.items = chip->max_treble + 1; 50 uinfo->value.enumerated.items = chip->max_treble + 1;
51 if (uinfo->value.enumerated.item > chip->max_treble) 51 if (uinfo->value.enumerated.item > chip->max_treble)
52 uinfo->value.enumerated.item = chip->max_treble; 52 uinfo->value.enumerated.item = chip->max_treble;
53 sprintf(uinfo->value.enumerated.name, "%d", 53 sprintf(uinfo->value.enumerated.name, "%lu",
54 PCSP_CALC_RATE(uinfo->value.enumerated.item)); 54 (unsigned long)PCSP_CALC_RATE(uinfo->value.enumerated.item));
55 return 0; 55 return 0;
56} 56}
57 57
diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c
index b2b6d50c9425..a25fb7b1f441 100644
--- a/sound/drivers/serial-u16550.c
+++ b/sound/drivers/serial-u16550.c
@@ -963,16 +963,11 @@ static int __devinit snd_serial_probe(struct platform_device *devptr)
963 if (err < 0) 963 if (err < 0)
964 goto _err; 964 goto _err;
965 965
966 sprintf(card->longname, "%s at 0x%lx, irq %d speed %d div %d outs %d ins %d adaptor %s droponfull %d", 966 sprintf(card->longname, "%s [%s] at %#lx, irq %d",
967 card->shortname, 967 card->shortname,
968 uart->base,
969 uart->irq,
970 uart->speed,
971 (int)uart->divisor,
972 outs[dev],
973 ins[dev],
974 adaptor_names[uart->adaptor], 968 adaptor_names[uart->adaptor],
975 uart->drop_on_full); 969 uart->base,
970 uart->irq);
976 971
977 snd_card_set_dev(card, &devptr->dev); 972 snd_card_set_dev(card, &devptr->dev);
978 973
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c
index 81bc93e5f1e3..7337abdbe4e3 100644
--- a/sound/pci/ac97/ac97_patch.c
+++ b/sound/pci/ac97/ac97_patch.c
@@ -958,10 +958,13 @@ static int patch_sigmatel_stac9708_3d(struct snd_ac97 * ac97)
958} 958}
959 959
960static const struct snd_kcontrol_new snd_ac97_sigmatel_4speaker = 960static const struct snd_kcontrol_new snd_ac97_sigmatel_4speaker =
961AC97_SINGLE("Sigmatel 4-Speaker Stereo Playback Switch", AC97_SIGMATEL_DAC2INVERT, 2, 1, 0); 961AC97_SINGLE("Sigmatel 4-Speaker Stereo Playback Switch",
962 AC97_SIGMATEL_DAC2INVERT, 2, 1, 0);
962 963
964/* "Sigmatel " removed due to excessive name length: */
963static const struct snd_kcontrol_new snd_ac97_sigmatel_phaseinvert = 965static const struct snd_kcontrol_new snd_ac97_sigmatel_phaseinvert =
964AC97_SINGLE("Sigmatel Surround Phase Inversion Playback Switch", AC97_SIGMATEL_DAC2INVERT, 3, 1, 0); 966AC97_SINGLE("Surround Phase Inversion Playback Switch",
967 AC97_SIGMATEL_DAC2INVERT, 3, 1, 0);
965 968
966static const struct snd_kcontrol_new snd_ac97_sigmatel_controls[] = { 969static const struct snd_kcontrol_new snd_ac97_sigmatel_controls[] = {
967AC97_SINGLE("Sigmatel DAC 6dB Attenuate", AC97_SIGMATEL_ANALOG, 1, 1, 0), 970AC97_SINGLE("Sigmatel DAC 6dB Attenuate", AC97_SIGMATEL_ANALOG, 1, 1, 0),
diff --git a/sound/pci/ca0106/ca0106_mixer.c b/sound/pci/ca0106/ca0106_mixer.c
index ad2888705d2a..c111efe61c3c 100644
--- a/sound/pci/ca0106/ca0106_mixer.c
+++ b/sound/pci/ca0106/ca0106_mixer.c
@@ -800,7 +800,7 @@ int __devinit snd_ca0106_mixer(struct snd_ca0106 *emu)
800 "Capture Volume", 800 "Capture Volume",
801 "External Amplifier", 801 "External Amplifier",
802 "Sigmatel 4-Speaker Stereo Playback Switch", 802 "Sigmatel 4-Speaker Stereo Playback Switch",
803 "Sigmatel Surround Phase Inversion Playback ", 803 "Surround Phase Inversion Playback Switch",
804 NULL 804 NULL
805 }; 805 };
806 static char *ca0106_rename_ctls[] = { 806 static char *ca0106_rename_ctls[] = {
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 21e99cfa8c49..3128e1a6bc65 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2141,6 +2141,7 @@ static struct snd_pci_quirk probe_mask_list[] __devinitdata = {
2141 /* including bogus ALC268 in slot#2 that conflicts with ALC888 */ 2141 /* including bogus ALC268 in slot#2 that conflicts with ALC888 */
2142 SND_PCI_QUIRK(0x17c0, 0x4085, "Medion MD96630", 0x01), 2142 SND_PCI_QUIRK(0x17c0, 0x4085, "Medion MD96630", 0x01),
2143 /* forced codec slots */ 2143 /* forced codec slots */
2144 SND_PCI_QUIRK(0x1043, 0x1262, "ASUS W5Fm", 0x103),
2144 SND_PCI_QUIRK(0x1046, 0x1262, "ASUS W5F", 0x103), 2145 SND_PCI_QUIRK(0x1046, 0x1262, "ASUS W5F", 0x103),
2145 {} 2146 {}
2146}; 2147};
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 56ce19e68cb5..4fcbe21829ab 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -1848,6 +1848,7 @@ static const char *cxt5051_models[CXT5051_MODELS] = {
1848 1848
1849static struct snd_pci_quirk cxt5051_cfg_tbl[] = { 1849static struct snd_pci_quirk cxt5051_cfg_tbl[] = {
1850 SND_PCI_QUIRK(0x103c, 0x30cf, "HP DV6736", CXT5051_HP_DV6736), 1850 SND_PCI_QUIRK(0x103c, 0x30cf, "HP DV6736", CXT5051_HP_DV6736),
1851 SND_PCI_QUIRK(0x103c, 0x360b, "Compaq Presario CQ60", CXT5051_HP),
1851 SND_PCI_QUIRK(0x14f1, 0x0101, "Conexant Reference board", 1852 SND_PCI_QUIRK(0x14f1, 0x0101, "Conexant Reference board",
1852 CXT5051_LAPTOP), 1853 CXT5051_LAPTOP),
1853 SND_PCI_QUIRK(0x14f1, 0x5051, "HP Spartan 1.1", CXT5051_HP), 1854 SND_PCI_QUIRK(0x14f1, 0x5051, "HP Spartan 1.1", CXT5051_HP),
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index b8a0d3e79272..0fd258eba3a5 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -776,6 +776,12 @@ static void alc_set_input_pin(struct hda_codec *codec, hda_nid_t nid,
776 pincap = (pincap & AC_PINCAP_VREF) >> AC_PINCAP_VREF_SHIFT; 776 pincap = (pincap & AC_PINCAP_VREF) >> AC_PINCAP_VREF_SHIFT;
777 if (pincap & AC_PINCAP_VREF_80) 777 if (pincap & AC_PINCAP_VREF_80)
778 val = PIN_VREF80; 778 val = PIN_VREF80;
779 else if (pincap & AC_PINCAP_VREF_50)
780 val = PIN_VREF50;
781 else if (pincap & AC_PINCAP_VREF_100)
782 val = PIN_VREF100;
783 else if (pincap & AC_PINCAP_VREF_GRD)
784 val = PIN_VREFGRD;
779 } 785 }
780 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, val); 786 snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, val);
781} 787}
@@ -12058,6 +12064,7 @@ static struct snd_pci_quirk alc268_cfg_tbl[] = {
12058 SND_PCI_QUIRK(0x1028, 0x0253, "Dell OEM", ALC268_DELL), 12064 SND_PCI_QUIRK(0x1028, 0x0253, "Dell OEM", ALC268_DELL),
12059 SND_PCI_QUIRK(0x1028, 0x02b0, "Dell Inspiron Mini9", ALC268_DELL), 12065 SND_PCI_QUIRK(0x1028, 0x02b0, "Dell Inspiron Mini9", ALC268_DELL),
12060 SND_PCI_QUIRK(0x103c, 0x30cc, "TOSHIBA", ALC268_TOSHIBA), 12066 SND_PCI_QUIRK(0x103c, 0x30cc, "TOSHIBA", ALC268_TOSHIBA),
12067 SND_PCI_QUIRK(0x103c, 0x30f1, "HP TX25xx series", ALC268_TOSHIBA),
12061 SND_PCI_QUIRK(0x1043, 0x1205, "ASUS W7J", ALC268_3ST), 12068 SND_PCI_QUIRK(0x1043, 0x1205, "ASUS W7J", ALC268_3ST),
12062 SND_PCI_QUIRK(0x1179, 0xff10, "TOSHIBA A205", ALC268_TOSHIBA), 12069 SND_PCI_QUIRK(0x1179, 0xff10, "TOSHIBA A205", ALC268_TOSHIBA),
12063 SND_PCI_QUIRK(0x1179, 0xff50, "TOSHIBA A305", ALC268_TOSHIBA), 12070 SND_PCI_QUIRK(0x1179, 0xff50, "TOSHIBA A305", ALC268_TOSHIBA),
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 917bc5d3ac2c..d2fd8ef6aef8 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -150,6 +150,7 @@ enum {
150 STAC_D965_REF, 150 STAC_D965_REF,
151 STAC_D965_3ST, 151 STAC_D965_3ST,
152 STAC_D965_5ST, 152 STAC_D965_5ST,
153 STAC_D965_5ST_NO_FP,
153 STAC_DELL_3ST, 154 STAC_DELL_3ST,
154 STAC_DELL_BIOS, 155 STAC_DELL_BIOS,
155 STAC_927X_MODELS 156 STAC_927X_MODELS
@@ -2154,6 +2155,13 @@ static unsigned int d965_5st_pin_configs[14] = {
2154 0x40000100, 0x40000100 2155 0x40000100, 0x40000100
2155}; 2156};
2156 2157
2158static unsigned int d965_5st_no_fp_pin_configs[14] = {
2159 0x40000100, 0x40000100, 0x0181304e, 0x01014010,
2160 0x01a19040, 0x01011012, 0x01016011, 0x40000100,
2161 0x40000100, 0x40000100, 0x40000100, 0x01442070,
2162 0x40000100, 0x40000100
2163};
2164
2157static unsigned int dell_3st_pin_configs[14] = { 2165static unsigned int dell_3st_pin_configs[14] = {
2158 0x02211230, 0x02a11220, 0x01a19040, 0x01114210, 2166 0x02211230, 0x02a11220, 0x01a19040, 0x01114210,
2159 0x01111212, 0x01116211, 0x01813050, 0x01112214, 2167 0x01111212, 0x01116211, 0x01813050, 0x01112214,
@@ -2166,6 +2174,7 @@ static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
2166 [STAC_D965_REF] = ref927x_pin_configs, 2174 [STAC_D965_REF] = ref927x_pin_configs,
2167 [STAC_D965_3ST] = d965_3st_pin_configs, 2175 [STAC_D965_3ST] = d965_3st_pin_configs,
2168 [STAC_D965_5ST] = d965_5st_pin_configs, 2176 [STAC_D965_5ST] = d965_5st_pin_configs,
2177 [STAC_D965_5ST_NO_FP] = d965_5st_no_fp_pin_configs,
2169 [STAC_DELL_3ST] = dell_3st_pin_configs, 2178 [STAC_DELL_3ST] = dell_3st_pin_configs,
2170 [STAC_DELL_BIOS] = NULL, 2179 [STAC_DELL_BIOS] = NULL,
2171}; 2180};
@@ -2176,6 +2185,7 @@ static const char *stac927x_models[STAC_927X_MODELS] = {
2176 [STAC_D965_REF] = "ref", 2185 [STAC_D965_REF] = "ref",
2177 [STAC_D965_3ST] = "3stack", 2186 [STAC_D965_3ST] = "3stack",
2178 [STAC_D965_5ST] = "5stack", 2187 [STAC_D965_5ST] = "5stack",
2188 [STAC_D965_5ST_NO_FP] = "5stack-no-fp",
2179 [STAC_DELL_3ST] = "dell-3stack", 2189 [STAC_DELL_3ST] = "dell-3stack",
2180 [STAC_DELL_BIOS] = "dell-bios", 2190 [STAC_DELL_BIOS] = "dell-bios",
2181}; 2191};
@@ -4079,7 +4089,12 @@ static int stac92xx_init(struct hda_codec *codec)
4079 pinctl = snd_hda_codec_read(codec, nid, 0, 4089 pinctl = snd_hda_codec_read(codec, nid, 0,
4080 AC_VERB_GET_PIN_WIDGET_CONTROL, 0); 4090 AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
4081 /* if PINCTL already set then skip */ 4091 /* if PINCTL already set then skip */
4082 if (!(pinctl & AC_PINCTL_IN_EN)) { 4092 /* Also, if both INPUT and OUTPUT are set,
4093 * it must be a BIOS bug; need to override, too
4094 */
4095 if (!(pinctl & AC_PINCTL_IN_EN) ||
4096 (pinctl & AC_PINCTL_OUT_EN)) {
4097 pinctl &= ~AC_PINCTL_OUT_EN;
4083 pinctl |= AC_PINCTL_IN_EN; 4098 pinctl |= AC_PINCTL_IN_EN;
4084 stac92xx_auto_set_pinctl(codec, nid, 4099 stac92xx_auto_set_pinctl(codec, nid,
4085 pinctl); 4100 pinctl);
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c
index 6f1034417a02..e51a5ef1954d 100644
--- a/sound/pci/riptide/riptide.c
+++ b/sound/pci/riptide/riptide.c
@@ -889,7 +889,7 @@ static int sendcmd(struct cmdif *cif, u32 flags, u32 cmd, u32 parm,
889 spin_lock_irqsave(&cif->lock, irqflags); 889 spin_lock_irqsave(&cif->lock, irqflags);
890 while (i++ < CMDIF_TIMEOUT && !IS_READY(cif->hwport)) 890 while (i++ < CMDIF_TIMEOUT && !IS_READY(cif->hwport))
891 udelay(10); 891 udelay(10);
892 if (i >= CMDIF_TIMEOUT) { 892 if (i > CMDIF_TIMEOUT) {
893 err = -EBUSY; 893 err = -EBUSY;
894 goto errout; 894 goto errout;
895 } 895 }
@@ -907,8 +907,10 @@ static int sendcmd(struct cmdif *cif, u32 flags, u32 cmd, u32 parm,
907 WRITE_PORT_ULONG(cmdport->data1, cmd); /* write cmd */ 907 WRITE_PORT_ULONG(cmdport->data1, cmd); /* write cmd */
908 if ((flags & RESP) && ret) { 908 if ((flags & RESP) && ret) {
909 while (!IS_DATF(cmdport) && 909 while (!IS_DATF(cmdport) &&
910 time++ < CMDIF_TIMEOUT) 910 time < CMDIF_TIMEOUT) {
911 udelay(10); 911 udelay(10);
912 time++;
913 }
912 if (time < CMDIF_TIMEOUT) { /* read response */ 914 if (time < CMDIF_TIMEOUT) { /* read response */
913 ret->retlongs[0] = 915 ret->retlongs[0] =
914 READ_PORT_ULONG(cmdport->data1); 916 READ_PORT_ULONG(cmdport->data1);
@@ -1454,7 +1456,7 @@ static int snd_riptide_trigger(struct snd_pcm_substream *substream, int cmd)
1454 SEND_GPOS(cif, 0, data->id, &rptr); 1456 SEND_GPOS(cif, 0, data->id, &rptr);
1455 udelay(1); 1457 udelay(1);
1456 } while (i != rptr.retlongs[1] && j++ < MAX_WRITE_RETRY); 1458 } while (i != rptr.retlongs[1] && j++ < MAX_WRITE_RETRY);
1457 if (j >= MAX_WRITE_RETRY) 1459 if (j > MAX_WRITE_RETRY)
1458 snd_printk(KERN_ERR "Riptide: Could not stop stream!"); 1460 snd_printk(KERN_ERR "Riptide: Could not stop stream!");
1459 break; 1461 break;
1460 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 1462 case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
@@ -1783,7 +1785,7 @@ snd_riptide_codec_write(struct snd_ac97 *ac97, unsigned short reg,
1783 SEND_SACR(cif, val, reg); 1785 SEND_SACR(cif, val, reg);
1784 SEND_RACR(cif, reg, &rptr); 1786 SEND_RACR(cif, reg, &rptr);
1785 } while (rptr.retwords[1] != val && i++ < MAX_WRITE_RETRY); 1787 } while (rptr.retwords[1] != val && i++ < MAX_WRITE_RETRY);
1786 if (i == MAX_WRITE_RETRY) 1788 if (i > MAX_WRITE_RETRY)
1787 snd_printdd("Write AC97 reg failed\n"); 1789 snd_printdd("Write AC97 reg failed\n");
1788} 1790}
1789 1791
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 809b233dd4a3..1ef58c51c213 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -1687,7 +1687,7 @@ static int snd_via8233_pcmdxs_volume_put(struct snd_kcontrol *kcontrol,
1687 return change; 1687 return change;
1688} 1688}
1689 1689
1690static const DECLARE_TLV_DB_SCALE(db_scale_dxs, -9450, 150, 1); 1690static const DECLARE_TLV_DB_SCALE(db_scale_dxs, -4650, 150, 1);
1691 1691
1692static struct snd_kcontrol_new snd_via8233_pcmdxs_volume_control __devinitdata = { 1692static struct snd_kcontrol_new snd_via8233_pcmdxs_volume_control __devinitdata = {
1693 .name = "PCM Playback Volume", 1693 .name = "PCM Playback Volume",
diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c
index c518c3e5aa3f..40cd274eb1ef 100644
--- a/sound/soc/codecs/wm8990.c
+++ b/sound/soc/codecs/wm8990.c
@@ -729,7 +729,7 @@ SND_SOC_DAPM_MIXER_E("INMIXL", WM8990_INTDRIVBITS, WM8990_INMIXL_PWR_BIT, 0,
729 inmixer_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), 729 inmixer_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
730 730
731/* AINLMUX */ 731/* AINLMUX */
732SND_SOC_DAPM_MUX_E("AILNMUX", WM8990_INTDRIVBITS, WM8990_AINLMUX_PWR_BIT, 0, 732SND_SOC_DAPM_MUX_E("AINLMUX", WM8990_INTDRIVBITS, WM8990_AINLMUX_PWR_BIT, 0,
733 &wm8990_dapm_ainlmux_controls, inmixer_event, 733 &wm8990_dapm_ainlmux_controls, inmixer_event,
734 SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), 734 SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
735 735
@@ -740,7 +740,7 @@ SND_SOC_DAPM_MIXER_E("INMIXR", WM8990_INTDRIVBITS, WM8990_INMIXR_PWR_BIT, 0,
740 inmixer_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), 740 inmixer_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
741 741
742/* AINRMUX */ 742/* AINRMUX */
743SND_SOC_DAPM_MUX_E("AIRNMUX", WM8990_INTDRIVBITS, WM8990_AINRMUX_PWR_BIT, 0, 743SND_SOC_DAPM_MUX_E("AINRMUX", WM8990_INTDRIVBITS, WM8990_AINRMUX_PWR_BIT, 0,
744 &wm8990_dapm_ainrmux_controls, inmixer_event, 744 &wm8990_dapm_ainrmux_controls, inmixer_event,
745 SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), 745 SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
746 746
@@ -848,40 +848,40 @@ static const struct snd_soc_dapm_route audio_map[] = {
848 {"LIN12 PGA", "LIN2 Switch", "LIN2"}, 848 {"LIN12 PGA", "LIN2 Switch", "LIN2"},
849 /* LIN34 PGA */ 849 /* LIN34 PGA */
850 {"LIN34 PGA", "LIN3 Switch", "LIN3"}, 850 {"LIN34 PGA", "LIN3 Switch", "LIN3"},
851 {"LIN34 PGA", "LIN4 Switch", "LIN4"}, 851 {"LIN34 PGA", "LIN4 Switch", "LIN4/RXN"},
852 /* INMIXL */ 852 /* INMIXL */
853 {"INMIXL", "Record Left Volume", "LOMIX"}, 853 {"INMIXL", "Record Left Volume", "LOMIX"},
854 {"INMIXL", "LIN2 Volume", "LIN2"}, 854 {"INMIXL", "LIN2 Volume", "LIN2"},
855 {"INMIXL", "LINPGA12 Switch", "LIN12 PGA"}, 855 {"INMIXL", "LINPGA12 Switch", "LIN12 PGA"},
856 {"INMIXL", "LINPGA34 Switch", "LIN34 PGA"}, 856 {"INMIXL", "LINPGA34 Switch", "LIN34 PGA"},
857 /* AILNMUX */ 857 /* AINLMUX */
858 {"AILNMUX", "INMIXL Mix", "INMIXL"}, 858 {"AINLMUX", "INMIXL Mix", "INMIXL"},
859 {"AILNMUX", "DIFFINL Mix", "LIN12PGA"}, 859 {"AINLMUX", "DIFFINL Mix", "LIN12 PGA"},
860 {"AILNMUX", "DIFFINL Mix", "LIN34PGA"}, 860 {"AINLMUX", "DIFFINL Mix", "LIN34 PGA"},
861 {"AILNMUX", "RXVOICE Mix", "LIN4/RXN"}, 861 {"AINLMUX", "RXVOICE Mix", "LIN4/RXN"},
862 {"AILNMUX", "RXVOICE Mix", "RIN4/RXP"}, 862 {"AINLMUX", "RXVOICE Mix", "RIN4/RXP"},
863 /* ADC */ 863 /* ADC */
864 {"Left ADC", NULL, "AILNMUX"}, 864 {"Left ADC", NULL, "AINLMUX"},
865 865
866 /* RIN12 PGA */ 866 /* RIN12 PGA */
867 {"RIN12 PGA", "RIN1 Switch", "RIN1"}, 867 {"RIN12 PGA", "RIN1 Switch", "RIN1"},
868 {"RIN12 PGA", "RIN2 Switch", "RIN2"}, 868 {"RIN12 PGA", "RIN2 Switch", "RIN2"},
869 /* RIN34 PGA */ 869 /* RIN34 PGA */
870 {"RIN34 PGA", "RIN3 Switch", "RIN3"}, 870 {"RIN34 PGA", "RIN3 Switch", "RIN3"},
871 {"RIN34 PGA", "RIN4 Switch", "RIN4"}, 871 {"RIN34 PGA", "RIN4 Switch", "RIN4/RXP"},
872 /* INMIXL */ 872 /* INMIXL */
873 {"INMIXR", "Record Right Volume", "ROMIX"}, 873 {"INMIXR", "Record Right Volume", "ROMIX"},
874 {"INMIXR", "RIN2 Volume", "RIN2"}, 874 {"INMIXR", "RIN2 Volume", "RIN2"},
875 {"INMIXR", "RINPGA12 Switch", "RIN12 PGA"}, 875 {"INMIXR", "RINPGA12 Switch", "RIN12 PGA"},
876 {"INMIXR", "RINPGA34 Switch", "RIN34 PGA"}, 876 {"INMIXR", "RINPGA34 Switch", "RIN34 PGA"},
877 /* AIRNMUX */ 877 /* AINRMUX */
878 {"AIRNMUX", "INMIXR Mix", "INMIXR"}, 878 {"AINRMUX", "INMIXR Mix", "INMIXR"},
879 {"AIRNMUX", "DIFFINR Mix", "RIN12PGA"}, 879 {"AINRMUX", "DIFFINR Mix", "RIN12 PGA"},
880 {"AIRNMUX", "DIFFINR Mix", "RIN34PGA"}, 880 {"AINRMUX", "DIFFINR Mix", "RIN34 PGA"},
881 {"AIRNMUX", "RXVOICE Mix", "RIN4/RXN"}, 881 {"AINRMUX", "RXVOICE Mix", "LIN4/RXN"},
882 {"AIRNMUX", "RXVOICE Mix", "RIN4/RXP"}, 882 {"AINRMUX", "RXVOICE Mix", "RIN4/RXP"},
883 /* ADC */ 883 /* ADC */
884 {"Right ADC", NULL, "AIRNMUX"}, 884 {"Right ADC", NULL, "AINRMUX"},
885 885
886 /* LOMIX */ 886 /* LOMIX */
887 {"LOMIX", "LOMIX RIN3 Bypass Switch", "RIN3"}, 887 {"LOMIX", "LOMIX RIN3 Bypass Switch", "RIN3"},
@@ -922,7 +922,7 @@ static const struct snd_soc_dapm_route audio_map[] = {
922 {"LOPMIX", "LOPMIX Left Mixer PGA Switch", "LOPGA"}, 922 {"LOPMIX", "LOPMIX Left Mixer PGA Switch", "LOPGA"},
923 923
924 /* OUT3MIX */ 924 /* OUT3MIX */
925 {"OUT3MIX", "OUT3MIX LIN4/RXP Bypass Switch", "LIN4/RXP"}, 925 {"OUT3MIX", "OUT3MIX LIN4/RXP Bypass Switch", "LIN4/RXN"},
926 {"OUT3MIX", "OUT3MIX Left Out PGA Switch", "LOPGA"}, 926 {"OUT3MIX", "OUT3MIX Left Out PGA Switch", "LOPGA"},
927 927
928 /* OUT4MIX */ 928 /* OUT4MIX */
@@ -949,7 +949,7 @@ static const struct snd_soc_dapm_route audio_map[] = {
949 /* Output Pins */ 949 /* Output Pins */
950 {"LON", NULL, "LONMIX"}, 950 {"LON", NULL, "LONMIX"},
951 {"LOP", NULL, "LOPMIX"}, 951 {"LOP", NULL, "LOPMIX"},
952 {"OUT", NULL, "OUT3MIX"}, 952 {"OUT3", NULL, "OUT3MIX"},
953 {"LOUT", NULL, "LOUT PGA"}, 953 {"LOUT", NULL, "LOUT PGA"},
954 {"SPKN", NULL, "SPKMIX"}, 954 {"SPKN", NULL, "SPKMIX"},
955 {"ROUT", NULL, "ROUT PGA"}, 955 {"ROUT", NULL, "ROUT PGA"},
diff --git a/sound/soc/davinci/Kconfig b/sound/soc/davinci/Kconfig
index bd7392c9657e..411a710be660 100644
--- a/sound/soc/davinci/Kconfig
+++ b/sound/soc/davinci/Kconfig
@@ -10,13 +10,14 @@ config SND_DAVINCI_SOC_I2S
10 tristate 10 tristate
11 11
12config SND_DAVINCI_SOC_EVM 12config SND_DAVINCI_SOC_EVM
13 tristate "SoC Audio support for DaVinci EVM" 13 tristate "SoC Audio support for DaVinci DM6446 or DM355 EVM"
14 depends on SND_DAVINCI_SOC && MACH_DAVINCI_EVM 14 depends on SND_DAVINCI_SOC
15 depends on MACH_DAVINCI_EVM || MACH_DAVINCI_DM355_EVM
15 select SND_DAVINCI_SOC_I2S 16 select SND_DAVINCI_SOC_I2S
16 select SND_SOC_TLV320AIC3X 17 select SND_SOC_TLV320AIC3X
17 help 18 help
18 Say Y if you want to add support for SoC audio on TI 19 Say Y if you want to add support for SoC audio on TI
19 DaVinci EVM platform. 20 DaVinci DM6446 or DM355 EVM platforms.
20 21
21config SND_DAVINCI_SOC_SFFSDR 22config SND_DAVINCI_SOC_SFFSDR
22 tristate "SoC Audio support for SFFSDR" 23 tristate "SoC Audio support for SFFSDR"
diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
index 9b90b347007c..58fd1cbedd88 100644
--- a/sound/soc/davinci/davinci-evm.c
+++ b/sound/soc/davinci/davinci-evm.c
@@ -20,7 +20,11 @@
20#include <sound/soc-dapm.h> 20#include <sound/soc-dapm.h>
21 21
22#include <asm/dma.h> 22#include <asm/dma.h>
23#include <mach/hardware.h> 23#include <asm/mach-types.h>
24
25#include <mach/asp.h>
26#include <mach/edma.h>
27#include <mach/mux.h>
24 28
25#include "../codecs/tlv320aic3x.h" 29#include "../codecs/tlv320aic3x.h"
26#include "davinci-pcm.h" 30#include "davinci-pcm.h"
@@ -150,7 +154,7 @@ static struct snd_soc_card snd_soc_card_evm = {
150 154
151/* evm audio private data */ 155/* evm audio private data */
152static struct aic3x_setup_data evm_aic3x_setup = { 156static struct aic3x_setup_data evm_aic3x_setup = {
153 .i2c_bus = 0, 157 .i2c_bus = 1,
154 .i2c_address = 0x1b, 158 .i2c_address = 0x1b,
155}; 159};
156 160
@@ -161,36 +165,73 @@ static struct snd_soc_device evm_snd_devdata = {
161 .codec_data = &evm_aic3x_setup, 165 .codec_data = &evm_aic3x_setup,
162}; 166};
163 167
168/* DM6446 EVM uses ASP0; line-out is a pair of RCA jacks */
164static struct resource evm_snd_resources[] = { 169static struct resource evm_snd_resources[] = {
165 { 170 {
166 .start = DAVINCI_MCBSP_BASE, 171 .start = DAVINCI_ASP0_BASE,
167 .end = DAVINCI_MCBSP_BASE + SZ_8K - 1, 172 .end = DAVINCI_ASP0_BASE + SZ_8K - 1,
168 .flags = IORESOURCE_MEM, 173 .flags = IORESOURCE_MEM,
169 }, 174 },
170}; 175};
171 176
172static struct evm_snd_platform_data evm_snd_data = { 177static struct evm_snd_platform_data evm_snd_data = {
173 .tx_dma_ch = DM644X_DMACH_MCBSP_TX, 178 .tx_dma_ch = DAVINCI_DMA_ASP0_TX,
174 .rx_dma_ch = DM644X_DMACH_MCBSP_RX, 179 .rx_dma_ch = DAVINCI_DMA_ASP0_RX,
180};
181
182/* DM335 EVM uses ASP1; line-out is a stereo mini-jack */
183static struct resource dm335evm_snd_resources[] = {
184 {
185 .start = DAVINCI_ASP1_BASE,
186 .end = DAVINCI_ASP1_BASE + SZ_8K - 1,
187 .flags = IORESOURCE_MEM,
188 },
189};
190
191static struct evm_snd_platform_data dm335evm_snd_data = {
192 .tx_dma_ch = DAVINCI_DMA_ASP1_TX,
193 .rx_dma_ch = DAVINCI_DMA_ASP1_RX,
175}; 194};
176 195
177static struct platform_device *evm_snd_device; 196static struct platform_device *evm_snd_device;
178 197
179static int __init evm_init(void) 198static int __init evm_init(void)
180{ 199{
200 struct resource *resources;
201 unsigned num_resources;
202 struct evm_snd_platform_data *data;
203 int index;
181 int ret; 204 int ret;
182 205
183 evm_snd_device = platform_device_alloc("soc-audio", 0); 206 if (machine_is_davinci_evm()) {
207 davinci_cfg_reg(DM644X_MCBSP);
208
209 resources = evm_snd_resources;
210 num_resources = ARRAY_SIZE(evm_snd_resources);
211 data = &evm_snd_data;
212 index = 0;
213 } else if (machine_is_davinci_dm355_evm()) {
214 /* we don't use ASP1 IRQs, or we'd need to mux them ... */
215 davinci_cfg_reg(DM355_EVT8_ASP1_TX);
216 davinci_cfg_reg(DM355_EVT9_ASP1_RX);
217
218 resources = dm335evm_snd_resources;
219 num_resources = ARRAY_SIZE(dm335evm_snd_resources);
220 data = &dm335evm_snd_data;
221 index = 1;
222 } else
223 return -EINVAL;
224
225 evm_snd_device = platform_device_alloc("soc-audio", index);
184 if (!evm_snd_device) 226 if (!evm_snd_device)
185 return -ENOMEM; 227 return -ENOMEM;
186 228
187 platform_set_drvdata(evm_snd_device, &evm_snd_devdata); 229 platform_set_drvdata(evm_snd_device, &evm_snd_devdata);
188 evm_snd_devdata.dev = &evm_snd_device->dev; 230 evm_snd_devdata.dev = &evm_snd_device->dev;
189 platform_device_add_data(evm_snd_device, &evm_snd_data, 231 platform_device_add_data(evm_snd_device, data, sizeof(*data));
190 sizeof(evm_snd_data));
191 232
192 ret = platform_device_add_resources(evm_snd_device, evm_snd_resources, 233 ret = platform_device_add_resources(evm_snd_device, resources,
193 ARRAY_SIZE(evm_snd_resources)); 234 num_resources);
194 if (ret) { 235 if (ret) {
195 platform_device_put(evm_snd_device); 236 platform_device_put(evm_snd_device);
196 return ret; 237 return ret;
diff --git a/sound/soc/davinci/davinci-i2s.c b/sound/soc/davinci/davinci-i2s.c
index ffdb9439d3d8..b1ea52fc83c7 100644
--- a/sound/soc/davinci/davinci-i2s.c
+++ b/sound/soc/davinci/davinci-i2s.c
@@ -24,6 +24,26 @@
24 24
25#include "davinci-pcm.h" 25#include "davinci-pcm.h"
26 26
27
28/*
29 * NOTE: terminology here is confusing.
30 *
31 * - This driver supports the "Audio Serial Port" (ASP),
32 * found on dm6446, dm355, and other DaVinci chips.
33 *
34 * - But it labels it a "Multi-channel Buffered Serial Port"
35 * (McBSP) as on older chips like the dm642 ... which was
36 * backward-compatible, possibly explaining that confusion.
37 *
38 * - OMAP chips have a controller called McBSP, which is
39 * incompatible with the DaVinci flavor of McBSP.
40 *
41 * - Newer DaVinci chips have a controller called McASP,
42 * incompatible with ASP and with either McBSP.
43 *
44 * In short: this uses ASP to implement I2S, not McBSP.
45 * And it won't be the only DaVinci implemention of I2S.
46 */
27#define DAVINCI_MCBSP_DRR_REG 0x00 47#define DAVINCI_MCBSP_DRR_REG 0x00
28#define DAVINCI_MCBSP_DXR_REG 0x04 48#define DAVINCI_MCBSP_DXR_REG 0x04
29#define DAVINCI_MCBSP_SPCR_REG 0x08 49#define DAVINCI_MCBSP_SPCR_REG 0x08
@@ -421,7 +441,7 @@ static int davinci_i2s_probe(struct platform_device *pdev,
421{ 441{
422 struct snd_soc_device *socdev = platform_get_drvdata(pdev); 442 struct snd_soc_device *socdev = platform_get_drvdata(pdev);
423 struct snd_soc_card *card = socdev->card; 443 struct snd_soc_card *card = socdev->card;
424 struct snd_soc_dai *cpu_dai = card->dai_link[pdev->id].cpu_dai; 444 struct snd_soc_dai *cpu_dai = card->dai_link->cpu_dai;
425 struct davinci_mcbsp_dev *dev; 445 struct davinci_mcbsp_dev *dev;
426 struct resource *mem, *ioarea; 446 struct resource *mem, *ioarea;
427 struct evm_snd_platform_data *pdata; 447 struct evm_snd_platform_data *pdata;
@@ -448,7 +468,7 @@ static int davinci_i2s_probe(struct platform_device *pdev,
448 468
449 cpu_dai->private_data = dev; 469 cpu_dai->private_data = dev;
450 470
451 dev->clk = clk_get(&pdev->dev, "McBSPCLK"); 471 dev->clk = clk_get(&pdev->dev, NULL);
452 if (IS_ERR(dev->clk)) { 472 if (IS_ERR(dev->clk)) {
453 ret = -ENODEV; 473 ret = -ENODEV;
454 goto err_free_mem; 474 goto err_free_mem;
@@ -483,7 +503,7 @@ static void davinci_i2s_remove(struct platform_device *pdev,
483{ 503{
484 struct snd_soc_device *socdev = platform_get_drvdata(pdev); 504 struct snd_soc_device *socdev = platform_get_drvdata(pdev);
485 struct snd_soc_card *card = socdev->card; 505 struct snd_soc_card *card = socdev->card;
486 struct snd_soc_dai *cpu_dai = card->dai_link[pdev->id].cpu_dai; 506 struct snd_soc_dai *cpu_dai = card->dai_link->cpu_dai;
487 struct davinci_mcbsp_dev *dev = cpu_dai->private_data; 507 struct davinci_mcbsp_dev *dev = cpu_dai->private_data;
488 struct resource *mem; 508 struct resource *mem;
489 509
diff --git a/sound/soc/davinci/davinci-pcm.c b/sound/soc/davinci/davinci-pcm.c
index 7af3b5b3a53d..a05996588489 100644
--- a/sound/soc/davinci/davinci-pcm.c
+++ b/sound/soc/davinci/davinci-pcm.c
@@ -22,6 +22,7 @@
22#include <sound/soc.h> 22#include <sound/soc.h>
23 23
24#include <asm/dma.h> 24#include <asm/dma.h>
25#include <mach/edma.h>
25 26
26#include "davinci-pcm.h" 27#include "davinci-pcm.h"
27 28
@@ -51,7 +52,7 @@ struct davinci_runtime_data {
51 spinlock_t lock; 52 spinlock_t lock;
52 int period; /* current DMA period */ 53 int period; /* current DMA period */
53 int master_lch; /* Master DMA channel */ 54 int master_lch; /* Master DMA channel */
54 int slave_lch; /* Slave DMA channel */ 55 int slave_lch; /* linked parameter RAM reload slot */
55 struct davinci_pcm_dma_params *params; /* DMA params */ 56 struct davinci_pcm_dma_params *params; /* DMA params */
56}; 57};
57 58
@@ -90,18 +91,18 @@ static void davinci_pcm_enqueue_dma(struct snd_pcm_substream *substream)
90 dst_bidx = data_type; 91 dst_bidx = data_type;
91 } 92 }
92 93
93 davinci_set_dma_src_params(lch, src, INCR, W8BIT); 94 edma_set_src(lch, src, INCR, W8BIT);
94 davinci_set_dma_dest_params(lch, dst, INCR, W8BIT); 95 edma_set_dest(lch, dst, INCR, W8BIT);
95 davinci_set_dma_src_index(lch, src_bidx, 0); 96 edma_set_src_index(lch, src_bidx, 0);
96 davinci_set_dma_dest_index(lch, dst_bidx, 0); 97 edma_set_dest_index(lch, dst_bidx, 0);
97 davinci_set_dma_transfer_params(lch, data_type, count, 1, 0, ASYNC); 98 edma_set_transfer_params(lch, data_type, count, 1, 0, ASYNC);
98 99
99 prtd->period++; 100 prtd->period++;
100 if (unlikely(prtd->period >= runtime->periods)) 101 if (unlikely(prtd->period >= runtime->periods))
101 prtd->period = 0; 102 prtd->period = 0;
102} 103}
103 104
104static void davinci_pcm_dma_irq(int lch, u16 ch_status, void *data) 105static void davinci_pcm_dma_irq(unsigned lch, u16 ch_status, void *data)
105{ 106{
106 struct snd_pcm_substream *substream = data; 107 struct snd_pcm_substream *substream = data;
107 struct davinci_runtime_data *prtd = substream->runtime->private_data; 108 struct davinci_runtime_data *prtd = substream->runtime->private_data;
@@ -125,7 +126,7 @@ static int davinci_pcm_dma_request(struct snd_pcm_substream *substream)
125 struct davinci_runtime_data *prtd = substream->runtime->private_data; 126 struct davinci_runtime_data *prtd = substream->runtime->private_data;
126 struct snd_soc_pcm_runtime *rtd = substream->private_data; 127 struct snd_soc_pcm_runtime *rtd = substream->private_data;
127 struct davinci_pcm_dma_params *dma_data = rtd->dai->cpu_dai->dma_data; 128 struct davinci_pcm_dma_params *dma_data = rtd->dai->cpu_dai->dma_data;
128 int tcc = TCC_ANY; 129 struct edmacc_param p_ram;
129 int ret; 130 int ret;
130 131
131 if (!dma_data) 132 if (!dma_data)
@@ -134,22 +135,34 @@ static int davinci_pcm_dma_request(struct snd_pcm_substream *substream)
134 prtd->params = dma_data; 135 prtd->params = dma_data;
135 136
136 /* Request master DMA channel */ 137 /* Request master DMA channel */
137 ret = davinci_request_dma(prtd->params->channel, prtd->params->name, 138 ret = edma_alloc_channel(prtd->params->channel,
138 davinci_pcm_dma_irq, substream, 139 davinci_pcm_dma_irq, substream,
139 &prtd->master_lch, &tcc, EVENTQ_0); 140 EVENTQ_0);
140 if (ret) 141 if (ret < 0)
141 return ret; 142 return ret;
143 prtd->master_lch = ret;
142 144
143 /* Request slave DMA channel */ 145 /* Request parameter RAM reload slot */
144 ret = davinci_request_dma(PARAM_ANY, "Link", 146 ret = edma_alloc_slot(EDMA_SLOT_ANY);
145 NULL, NULL, &prtd->slave_lch, &tcc, EVENTQ_0); 147 if (ret < 0) {
146 if (ret) { 148 edma_free_channel(prtd->master_lch);
147 davinci_free_dma(prtd->master_lch);
148 return ret; 149 return ret;
149 } 150 }
150 151 prtd->slave_lch = ret;
151 /* Link slave DMA channel in loopback */ 152
152 davinci_dma_link_lch(prtd->slave_lch, prtd->slave_lch); 153 /* Issue transfer completion IRQ when the channel completes a
154 * transfer, then always reload from the same slot (by a kind
155 * of loopback link). The completion IRQ handler will update
156 * the reload slot with a new buffer.
157 *
158 * REVISIT save p_ram here after setting up everything except
159 * the buffer and its length (ccnt) ... use it as a template
160 * so davinci_pcm_enqueue_dma() takes less time in IRQ.
161 */
162 edma_read_slot(prtd->slave_lch, &p_ram);
163 p_ram.opt |= TCINTEN | EDMA_TCC(prtd->master_lch);
164 p_ram.link_bcntrld = prtd->slave_lch << 5;
165 edma_write_slot(prtd->slave_lch, &p_ram);
153 166
154 return 0; 167 return 0;
155} 168}
@@ -165,12 +178,12 @@ static int davinci_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
165 case SNDRV_PCM_TRIGGER_START: 178 case SNDRV_PCM_TRIGGER_START:
166 case SNDRV_PCM_TRIGGER_RESUME: 179 case SNDRV_PCM_TRIGGER_RESUME:
167 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: 180 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
168 davinci_start_dma(prtd->master_lch); 181 edma_start(prtd->master_lch);
169 break; 182 break;
170 case SNDRV_PCM_TRIGGER_STOP: 183 case SNDRV_PCM_TRIGGER_STOP:
171 case SNDRV_PCM_TRIGGER_SUSPEND: 184 case SNDRV_PCM_TRIGGER_SUSPEND:
172 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 185 case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
173 davinci_stop_dma(prtd->master_lch); 186 edma_stop(prtd->master_lch);
174 break; 187 break;
175 default: 188 default:
176 ret = -EINVAL; 189 ret = -EINVAL;
@@ -185,14 +198,14 @@ static int davinci_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
185static int davinci_pcm_prepare(struct snd_pcm_substream *substream) 198static int davinci_pcm_prepare(struct snd_pcm_substream *substream)
186{ 199{
187 struct davinci_runtime_data *prtd = substream->runtime->private_data; 200 struct davinci_runtime_data *prtd = substream->runtime->private_data;
188 struct paramentry_descriptor temp; 201 struct edmacc_param temp;
189 202
190 prtd->period = 0; 203 prtd->period = 0;
191 davinci_pcm_enqueue_dma(substream); 204 davinci_pcm_enqueue_dma(substream);
192 205
193 /* Get slave channel dma params for master channel startup */ 206 /* Copy self-linked parameter RAM entry into master channel */
194 davinci_get_dma_params(prtd->slave_lch, &temp); 207 edma_read_slot(prtd->slave_lch, &temp);
195 davinci_set_dma_params(prtd->master_lch, &temp); 208 edma_write_slot(prtd->master_lch, &temp);
196 209
197 return 0; 210 return 0;
198} 211}
@@ -208,7 +221,7 @@ davinci_pcm_pointer(struct snd_pcm_substream *substream)
208 221
209 spin_lock(&prtd->lock); 222 spin_lock(&prtd->lock);
210 223
211 davinci_dma_getposition(prtd->master_lch, &src, &dst); 224 edma_get_position(prtd->master_lch, &src, &dst);
212 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) 225 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
213 count = src - runtime->dma_addr; 226 count = src - runtime->dma_addr;
214 else 227 else
@@ -253,10 +266,10 @@ static int davinci_pcm_close(struct snd_pcm_substream *substream)
253 struct snd_pcm_runtime *runtime = substream->runtime; 266 struct snd_pcm_runtime *runtime = substream->runtime;
254 struct davinci_runtime_data *prtd = runtime->private_data; 267 struct davinci_runtime_data *prtd = runtime->private_data;
255 268
256 davinci_dma_unlink_lch(prtd->slave_lch, prtd->slave_lch); 269 edma_unlink(prtd->slave_lch);
257 270
258 davinci_free_dma(prtd->slave_lch); 271 edma_free_slot(prtd->slave_lch);
259 davinci_free_dma(prtd->master_lch); 272 edma_free_channel(prtd->master_lch);
260 273
261 kfree(prtd); 274 kfree(prtd);
262 275
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 99712f652d0d..1cd149b9ce69 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -954,6 +954,9 @@ static int soc_remove(struct platform_device *pdev)
954 struct snd_soc_platform *platform = card->platform; 954 struct snd_soc_platform *platform = card->platform;
955 struct snd_soc_codec_device *codec_dev = socdev->codec_dev; 955 struct snd_soc_codec_device *codec_dev = socdev->codec_dev;
956 956
957 if (!card->instantiated)
958 return 0;
959
957 run_delayed_work(&card->delayed_work); 960 run_delayed_work(&card->delayed_work);
958 961
959 if (platform->remove) 962 if (platform->remove)
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index 823296d7d578..a6b88482637b 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -3347,7 +3347,7 @@ static int snd_usb_create_quirk(struct snd_usb_audio *chip,
3347 [QUIRK_MIDI_YAMAHA] = snd_usb_create_midi_interface, 3347 [QUIRK_MIDI_YAMAHA] = snd_usb_create_midi_interface,
3348 [QUIRK_MIDI_MIDIMAN] = snd_usb_create_midi_interface, 3348 [QUIRK_MIDI_MIDIMAN] = snd_usb_create_midi_interface,
3349 [QUIRK_MIDI_NOVATION] = snd_usb_create_midi_interface, 3349 [QUIRK_MIDI_NOVATION] = snd_usb_create_midi_interface,
3350 [QUIRK_MIDI_RAW] = snd_usb_create_midi_interface, 3350 [QUIRK_MIDI_FASTLANE] = snd_usb_create_midi_interface,
3351 [QUIRK_MIDI_EMAGIC] = snd_usb_create_midi_interface, 3351 [QUIRK_MIDI_EMAGIC] = snd_usb_create_midi_interface,
3352 [QUIRK_MIDI_CME] = snd_usb_create_midi_interface, 3352 [QUIRK_MIDI_CME] = snd_usb_create_midi_interface,
3353 [QUIRK_AUDIO_STANDARD_INTERFACE] = create_standard_audio_quirk, 3353 [QUIRK_AUDIO_STANDARD_INTERFACE] = create_standard_audio_quirk,
diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h
index 36e4f7a29adc..8e7f78941ba6 100644
--- a/sound/usb/usbaudio.h
+++ b/sound/usb/usbaudio.h
@@ -153,7 +153,7 @@ enum quirk_type {
153 QUIRK_MIDI_YAMAHA, 153 QUIRK_MIDI_YAMAHA,
154 QUIRK_MIDI_MIDIMAN, 154 QUIRK_MIDI_MIDIMAN,
155 QUIRK_MIDI_NOVATION, 155 QUIRK_MIDI_NOVATION,
156 QUIRK_MIDI_RAW, 156 QUIRK_MIDI_FASTLANE,
157 QUIRK_MIDI_EMAGIC, 157 QUIRK_MIDI_EMAGIC,
158 QUIRK_MIDI_CME, 158 QUIRK_MIDI_CME,
159 QUIRK_MIDI_US122L, 159 QUIRK_MIDI_US122L,
diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c
index 26bad373fe65..2fb35cc22a30 100644
--- a/sound/usb/usbmidi.c
+++ b/sound/usb/usbmidi.c
@@ -1778,8 +1778,18 @@ int snd_usb_create_midi_interface(struct snd_usb_audio* chip,
1778 umidi->usb_protocol_ops = &snd_usbmidi_novation_ops; 1778 umidi->usb_protocol_ops = &snd_usbmidi_novation_ops;
1779 err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); 1779 err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints);
1780 break; 1780 break;
1781 case QUIRK_MIDI_RAW: 1781 case QUIRK_MIDI_FASTLANE:
1782 umidi->usb_protocol_ops = &snd_usbmidi_raw_ops; 1782 umidi->usb_protocol_ops = &snd_usbmidi_raw_ops;
1783 /*
1784 * Interface 1 contains isochronous endpoints, but with the same
1785 * numbers as in interface 0. Since it is interface 1 that the
1786 * USB core has most recently seen, these descriptors are now
1787 * associated with the endpoint numbers. This will foul up our
1788 * attempts to submit bulk/interrupt URBs to the endpoints in
1789 * interface 0, so we have to make sure that the USB core looks
1790 * again at interface 0 by calling usb_set_interface() on it.
1791 */
1792 usb_set_interface(umidi->chip->dev, 0, 0);
1783 err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); 1793 err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints);
1784 break; 1794 break;
1785 case QUIRK_MIDI_EMAGIC: 1795 case QUIRK_MIDI_EMAGIC:
diff --git a/sound/usb/usbquirks.h b/sound/usb/usbquirks.h
index 647ef5029651..5d955aaad85f 100644
--- a/sound/usb/usbquirks.h
+++ b/sound/usb/usbquirks.h
@@ -1868,7 +1868,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
1868 .data = & (const struct snd_usb_audio_quirk[]) { 1868 .data = & (const struct snd_usb_audio_quirk[]) {
1869 { 1869 {
1870 .ifnum = 0, 1870 .ifnum = 0,
1871 .type = QUIRK_MIDI_RAW 1871 .type = QUIRK_MIDI_FASTLANE
1872 }, 1872 },
1873 { 1873 {
1874 .ifnum = 1, 1874 .ifnum = 1,
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 1ecbe2391c8b..4d0dd390aa50 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -2301,10 +2301,11 @@ int kvm_init(void *opaque, unsigned int vcpu_size,
2301 2301
2302 bad_pfn = page_to_pfn(bad_page); 2302 bad_pfn = page_to_pfn(bad_page);
2303 2303
2304 if (!alloc_cpumask_var(&cpus_hardware_enabled, GFP_KERNEL)) { 2304 if (!zalloc_cpumask_var(&cpus_hardware_enabled, GFP_KERNEL)) {
2305 r = -ENOMEM; 2305 r = -ENOMEM;
2306 goto out_free_0; 2306 goto out_free_0;
2307 } 2307 }
2308 cpumask_clear(cpus_hardware_enabled);
2308 2309
2309 r = kvm_arch_hardware_setup(); 2310 r = kvm_arch_hardware_setup();
2310 if (r < 0) 2311 if (r < 0)